{"version":3,"file":"aepp-sdk.browser-script.cjs","mappings":";CAAA,SAA2CA,EAAMC,GAC1B,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,IACQ,mBAAXG,QAAyBA,OAAOC,IAC9CD,OAAO,GAAIH,GACe,iBAAZC,QACdA,QAAmB,UAAID,IAEvBD,EAAgB,UAAIC,GACrB,CATD,CASGK,MAAM,WACT,O,kDCRAJ,EAAQK,WAuCR,SAAqBC,GACnB,IAAIC,EAAOC,EAAQF,GACfG,EAAWF,EAAK,GAChBG,EAAkBH,EAAK,GAC3B,OAAuC,GAA9BE,EAAWC,GAAuB,EAAKA,CAClD,EA3CAV,EAAQW,YAiDR,SAAsBL,GACpB,IAAIM,EAcAC,EAbAN,EAAOC,EAAQF,GACfG,EAAWF,EAAK,GAChBG,EAAkBH,EAAK,GAEvBO,EAAM,IAAIC,EAVhB,SAAsBT,EAAKG,EAAUC,GACnC,OAAuC,GAA9BD,EAAWC,GAAuB,EAAKA,CAClD,CAQoBM,CAAYV,EAAKG,EAAUC,IAEzCO,EAAU,EAGVC,EAAMR,EAAkB,EACxBD,EAAW,EACXA,EAGJ,IAAKI,EAAI,EAAGA,EAAIK,EAAKL,GAAK,EACxBD,EACGO,EAAUb,EAAIc,WAAWP,KAAO,GAChCM,EAAUb,EAAIc,WAAWP,EAAI,KAAO,GACpCM,EAAUb,EAAIc,WAAWP,EAAI,KAAO,EACrCM,EAAUb,EAAIc,WAAWP,EAAI,IAC/BC,EAAIG,KAAcL,GAAO,GAAM,IAC/BE,EAAIG,KAAcL,GAAO,EAAK,IAC9BE,EAAIG,KAAmB,IAANL,EAmBnB,OAhBwB,IAApBF,IACFE,EACGO,EAAUb,EAAIc,WAAWP,KAAO,EAChCM,EAAUb,EAAIc,WAAWP,EAAI,KAAO,EACvCC,EAAIG,KAAmB,IAANL,GAGK,IAApBF,IACFE,EACGO,EAAUb,EAAIc,WAAWP,KAAO,GAChCM,EAAUb,EAAIc,WAAWP,EAAI,KAAO,EACpCM,EAAUb,EAAIc,WAAWP,EAAI,KAAO,EACvCC,EAAIG,KAAcL,GAAO,EAAK,IAC9BE,EAAIG,KAAmB,IAANL,GAGZE,CACT,EA5FAd,EAAQqB,cAkHR,SAAwBC,GAQtB,IAPA,IAAIV,EACAM,EAAMI,EAAMC,OACZC,EAAaN,EAAM,EACnBO,EAAQ,GACRC,EAAiB,MAGZb,EAAI,EAAGc,EAAOT,EAAMM,EAAYX,EAAIc,EAAMd,GAAKa,EACtDD,EAAMG,KAAKC,EAAYP,EAAOT,EAAIA,EAAIa,EAAkBC,EAAOA,EAAQd,EAAIa,IAqB7E,OAjBmB,IAAfF,GACFZ,EAAMU,EAAMJ,EAAM,GAClBO,EAAMG,KACJE,EAAOlB,GAAO,GACdkB,EAAQlB,GAAO,EAAK,IACpB,OAEsB,IAAfY,IACTZ,GAAOU,EAAMJ,EAAM,IAAM,GAAKI,EAAMJ,EAAM,GAC1CO,EAAMG,KACJE,EAAOlB,GAAO,IACdkB,EAAQlB,GAAO,EAAK,IACpBkB,EAAQlB,GAAO,EAAK,IACpB,MAIGa,EAAMM,KAAK,GACpB,EA1IA,IALA,IAAID,EAAS,GACTX,EAAY,GACZJ,EAA4B,oBAAfiB,WAA6BA,WAAaC,MAEvDC,EAAO,mEACFrB,EAAI,EAAsBA,EAAbqB,KAAwBrB,EAC5CiB,EAAOjB,GAAKqB,EAAKrB,GACjBM,EAAUe,EAAKd,WAAWP,IAAMA,EAQlC,SAASL,EAASF,GAChB,IAAIY,EAAMZ,EAAIiB,OAEd,GAAIL,EAAM,EAAI,EACZ,MAAM,IAAIiB,MAAM,kDAKlB,IAAI1B,EAAWH,EAAI8B,QAAQ,KAO3B,OANkB,IAAd3B,IAAiBA,EAAWS,GAMzB,CAACT,EAJcA,IAAaS,EAC/B,EACA,EAAKT,EAAW,EAGtB,CAmEA,SAASoB,EAAaP,EAAOe,EAAOC,GAGlC,IAFA,IAAI1B,EARoB2B,EASpBC,EAAS,GACJ3B,EAAIwB,EAAOxB,EAAIyB,EAAKzB,GAAK,EAChCD,GACIU,EAAMT,IAAM,GAAM,WAClBS,EAAMT,EAAI,IAAM,EAAK,QACP,IAAfS,EAAMT,EAAI,IACb2B,EAAOZ,KAdFE,GADiBS,EAeM3B,IAdT,GAAK,IACxBkB,EAAOS,GAAO,GAAK,IACnBT,EAAOS,GAAO,EAAI,IAClBT,EAAa,GAANS,IAaT,OAAOC,EAAOT,KAAK,GACrB,CAlGAZ,EAAU,IAAIC,WAAW,IAAM,GAC/BD,EAAU,IAAIC,WAAW,IAAM,E,uBCnB/B,OAAC,WACC,aAkDA,IAAIqB,EACFC,EAAY,6CACZC,EAAWC,KAAKC,KAChBC,EAAYF,KAAKG,MAEjBC,EAAiB,qBACjBC,EAAgBD,EAAiB,yDAEjCE,EAAO,KACPC,EAAW,GACXC,EAAmB,iBAEnBC,EAAW,CAAC,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,MAC7EC,EAAY,IAKZC,EAAM,IAqpFR,SAASC,EAASC,GAChB,IAAI5C,EAAQ,EAAJ4C,EACR,OAAOA,EAAI,GAAKA,IAAM5C,EAAIA,EAAIA,EAAI,CACpC,CAIA,SAAS6C,EAAcC,GAMrB,IALA,IAAIC,EAAGC,EACLhD,EAAI,EACJiD,EAAIH,EAAEpC,OACNwC,EAAIJ,EAAE,GAAK,GAEN9C,EAAIiD,GAAI,CAGb,IAFAF,EAAID,EAAE9C,KAAO,GACbgD,EAAIV,EAAWS,EAAErC,OACVsC,IAAKD,EAAI,IAAMA,GACtBG,GAAKH,CACP,CAGA,IAAKE,EAAIC,EAAExC,OAA8B,KAAtBwC,EAAE3C,aAAa0C,KAElC,OAAOC,EAAEC,MAAM,EAAGF,EAAI,GAAK,EAC7B,CAIA,SAASG,EAAQC,EAAGC,GAClB,IAAIR,EAAGS,EACLC,EAAKH,EAAEI,EACPC,EAAKJ,EAAEG,EACPzD,EAAIqD,EAAEN,EACNE,EAAIK,EAAEP,EACNY,EAAIN,EAAEO,EACNC,EAAIP,EAAEM,EAGR,IAAK5D,IAAMiD,EAAG,OAAO,KAMrB,GAJAH,EAAIU,IAAOA,EAAG,GACdD,EAAIG,IAAOA,EAAG,GAGVZ,GAAKS,EAAG,OAAOT,EAAIS,EAAI,GAAKN,EAAIjD,EAGpC,GAAIA,GAAKiD,EAAG,OAAOjD,EAMnB,GAJA8C,EAAI9C,EAAI,EACRuD,EAAII,GAAKE,GAGJL,IAAOE,EAAI,OAAOH,EAAI,GAAKC,EAAKV,EAAI,GAAK,EAG9C,IAAKS,EAAG,OAAOI,EAAIE,EAAIf,EAAI,GAAK,EAKhC,IAHAG,GAAKU,EAAIH,EAAG9C,SAAWmD,EAAIH,EAAGhD,QAAUiD,EAAIE,EAGvC7D,EAAI,EAAGA,EAAIiD,EAAGjD,IAAK,GAAIwD,EAAGxD,IAAM0D,EAAG1D,GAAI,OAAOwD,EAAGxD,GAAK0D,EAAG1D,GAAK8C,EAAI,GAAK,EAG5E,OAAOa,GAAKE,EAAI,EAAIF,EAAIE,EAAIf,EAAI,GAAK,CACvC,CAMA,SAASgB,EAASlB,EAAGmB,EAAKC,EAAKC,GAC7B,GAAIrB,EAAImB,GAAOnB,EAAIoB,GAAOpB,IAAMX,EAAUW,GACxC,MAAMtB,MACJa,GAAkB8B,GAAQ,aAA2B,iBAALrB,EAC7CA,EAAImB,GAAOnB,EAAIoB,EAAM,kBAAoB,oBACzC,6BAA+BE,OAAOtB,GAE/C,CAIA,SAASuB,EAAMvB,GACb,IAAIe,EAAIf,EAAEa,EAAE/C,OAAS,EACrB,OAAOiC,EAASC,EAAEgB,EAAItB,IAAaqB,GAAKf,EAAEa,EAAEE,GAAK,GAAK,CACxD,CAGA,SAASS,EAAcC,EAAKT,GAC1B,OAAQS,EAAI3D,OAAS,EAAI2D,EAAIC,OAAO,GAAK,IAAMD,EAAIlB,MAAM,GAAKkB,IAC5DT,EAAI,EAAI,IAAM,MAAQA,CAC1B,CAGA,SAASW,EAAaF,EAAKT,EAAGZ,GAC5B,IAAI3C,EAAKmE,EAGT,GAAIZ,EAAI,EAAG,CAGT,IAAKY,EAAKxB,EAAI,MAAOY,EAAGY,GAAMxB,GAC9BqB,EAAMG,EAAKH,CAGb,MAIE,KAAMT,GAHNvD,EAAMgE,EAAI3D,QAGK,CACb,IAAK8D,EAAKxB,EAAGY,GAAKvD,IAAOuD,EAAGY,GAAMxB,GAClCqB,GAAOG,CACT,MAAWZ,EAAIvD,IACbgE,EAAMA,EAAIlB,MAAM,EAAGS,GAAK,IAAMS,EAAIlB,MAAMS,IAI5C,OAAOS,CACT,CAMAzC,EA3wFA,SAAS6C,EAAMC,GACb,IAAIC,EAAKC,EAAaC,EA4kBhBC,EAMAC,EAoqBAC,EACFC,EACAC,EACAC,EACAC,EAzvCFC,EAAIzD,EAAU0D,UAAY,CAAEC,YAAa3D,EAAW4D,SAAU,KAAMC,QAAS,MAC7EC,EAAM,IAAI9D,EAAU,GAUpB+D,EAAiB,GAajBC,EAAgB,EAMhBC,GAAc,EAIdC,EAAa,GAMbC,GAAW,IAKXC,EAAU,IAGVC,GAAS,EAkBTC,EAAc,EAIdC,EAAgB,EAGhBC,EAAS,CACPC,OAAQ,GACRC,UAAW,EACXC,mBAAoB,EACpBC,eAAgB,IAChBC,iBAAkB,IAClBC,kBAAmB,EACnBC,uBAAwB,IACxBC,OAAQ,IAMVC,EAAW,uCACXC,GAAiC,EAgBnC,SAASlF,EAAUmF,EAAGxD,GACpB,IAAIyD,EAAUvD,EAAGwD,EAAarD,EAAG5D,EAAGkH,EAAO7G,EAAKgE,EAC9ChB,EAAI8D,KAGN,KAAM9D,aAAazB,GAAY,OAAO,IAAIA,EAAUmF,EAAGxD,GAEvD,GAAS,MAALA,EAAW,CAEb,GAAIwD,IAAwB,IAAnBA,EAAEK,aAYT,OAXA/D,EAAEN,EAAIgE,EAAEhE,QAEHgE,EAAEtD,GAAKsD,EAAEnD,EAAIoC,EAChB3C,EAAEI,EAAIJ,EAAEO,EAAI,KACHmD,EAAEnD,EAAImC,EACf1C,EAAEI,EAAI,CAACJ,EAAEO,EAAI,IAEbP,EAAEO,EAAImD,EAAEnD,EACRP,EAAEI,EAAIsD,EAAEtD,EAAEN,UAMd,IAAK+D,EAAoB,iBAALH,IAAsB,EAAJA,GAAS,EAAG,CAMhD,GAHA1D,EAAEN,EAAI,EAAIgE,EAAI,GAAKA,GAAKA,GAAI,GAAK,EAG7BA,MAAQA,EAAG,CACb,IAAKnD,EAAI,EAAG5D,EAAI+G,EAAG/G,GAAK,GAAIA,GAAK,GAAI4D,KASrC,YAPIA,EAAIoC,EACN3C,EAAEI,EAAIJ,EAAEO,EAAI,MAEZP,EAAEO,EAAIA,EACNP,EAAEI,EAAI,CAACsD,IAIX,CAEA1C,EAAMH,OAAO6C,EACf,KAAO,CAEL,IAAKlF,EAAUwF,KAAKhD,EAAMH,OAAO6C,IAAK,OAAOlC,EAAaxB,EAAGgB,EAAK6C,GAElE7D,EAAEN,EAAyB,IAArBsB,EAAI9D,WAAW,IAAY8D,EAAMA,EAAIlB,MAAM,IAAK,GAAK,CAC7D,EAGKS,EAAIS,EAAI9C,QAAQ,OAAS,IAAG8C,EAAMA,EAAIiD,QAAQ,IAAK,MAGnDtH,EAAIqE,EAAIkD,OAAO,OAAS,GAGvB3D,EAAI,IAAGA,EAAI5D,GACf4D,IAAMS,EAAIlB,MAAMnD,EAAI,GACpBqE,EAAMA,EAAImD,UAAU,EAAGxH,IACd4D,EAAI,IAGbA,EAAIS,EAAI3D,OAGZ,KAAO,CAOL,GAJAoD,EAASP,EAAG,EAAGsD,EAASnG,OAAQ,QAIvB,IAAL6C,GAAWuD,EAEb,OAAOW,EADPpE,EAAI,IAAIzB,EAAUmF,GACFpB,EAAiBtC,EAAEO,EAAI,EAAGgC,GAK5C,GAFAvB,EAAMH,OAAO6C,GAETG,EAAoB,iBAALH,EAAe,CAGhC,GAAQ,EAAJA,GAAS,EAAG,OAAOlC,EAAaxB,EAAGgB,EAAK6C,EAAO3D,GAKnD,GAHAF,EAAEN,EAAI,EAAIgE,EAAI,GAAK1C,EAAMA,EAAIlB,MAAM,IAAK,GAAK,EAGzCvB,EAAU8F,OAASrD,EAAIiD,QAAQ,YAAa,IAAI5G,OAAS,GAC3D,MAAMY,MACJc,EAAgB2E,EAEtB,MACE1D,EAAEN,EAA0B,KAAtBsB,EAAI9D,WAAW,IAAa8D,EAAMA,EAAIlB,MAAM,IAAK,GAAK,EAQ9D,IALA6D,EAAWH,EAAS1D,MAAM,EAAGI,GAC7BK,EAAI5D,EAAI,EAIHK,EAAMgE,EAAI3D,OAAQV,EAAIK,EAAKL,IAC9B,GAAIgH,EAASzF,QAAQkC,EAAIY,EAAIC,OAAOtE,IAAM,EAAG,CAC3C,GAAS,KAALyD,GAGF,GAAIzD,EAAI4D,EAAG,CACTA,EAAIvD,EACJ,QACF,OACK,IAAK4G,IAGN5C,GAAOA,EAAIsD,gBAAkBtD,EAAMA,EAAIuD,gBACvCvD,GAAOA,EAAIuD,gBAAkBvD,EAAMA,EAAIsD,gBAAgB,CACzDV,GAAc,EACdjH,GAAK,EACL4D,EAAI,EACJ,QACF,CAGF,OAAOiB,EAAaxB,EAAGa,OAAO6C,GAAIG,EAAO3D,EAC3C,CAIF2D,GAAQ,GAIHtD,GAHLS,EAAMO,EAAYP,EAAKd,EAAG,GAAIF,EAAEN,IAGnBxB,QAAQ,OAAS,EAAG8C,EAAMA,EAAIiD,QAAQ,IAAK,IACnD1D,EAAIS,EAAI3D,MACf,CAGA,IAAKV,EAAI,EAAyB,KAAtBqE,EAAI9D,WAAWP,GAAWA,KAGtC,IAAKK,EAAMgE,EAAI3D,OAAkC,KAA1B2D,EAAI9D,aAAaF,KAExC,GAAIgE,EAAMA,EAAIlB,MAAMnD,IAAKK,GAAM,CAI7B,GAHAA,GAAOL,EAGHkH,GAAStF,EAAU8F,OACrBrH,EAAM,KAAO0G,EAAIxE,GAAoBwE,IAAM9E,EAAU8E,IACnD,MAAMzF,MACJc,EAAiBiB,EAAEN,EAAIgE,GAI7B,IAAKnD,EAAIA,EAAI5D,EAAI,GAAKgG,EAGpB3C,EAAEI,EAAIJ,EAAEO,EAAI,UAGP,GAAIA,EAAImC,EAGb1C,EAAEI,EAAI,CAACJ,EAAEO,EAAI,OACR,CAWL,GAVAP,EAAEO,EAAIA,EACNP,EAAEI,EAAI,GAMNzD,GAAK4D,EAAI,GAAKtB,EACVsB,EAAI,IAAG5D,GAAKsC,GAEZtC,EAAIK,EAAK,CAGX,IAFIL,GAAGqD,EAAEI,EAAE1C,MAAMsD,EAAIlB,MAAM,EAAGnD,IAEzBK,GAAOiC,EAAUtC,EAAIK,GACxBgD,EAAEI,EAAE1C,MAAMsD,EAAIlB,MAAMnD,EAAGA,GAAKsC,IAG9BtC,EAAIsC,GAAY+B,EAAMA,EAAIlB,MAAMnD,IAAIU,MACtC,MACEV,GAAKK,EAGP,KAAOL,IAAKqE,GAAO,KACnBhB,EAAEI,EAAE1C,MAAMsD,EACZ,CACF,MAGEhB,EAAEI,EAAI,CAACJ,EAAEO,EAAI,EAEjB,CA21BA,SAASiE,EAAOjF,EAAG5C,EAAG8H,EAAIC,GACxB,IAAIC,EAAIpE,EAAGqE,EAAI5H,EAAKgE,EAKpB,GAHU,MAANyD,EAAYA,EAAKlC,EAChB9B,EAASgE,EAAI,EAAG,IAEhBlF,EAAEa,EAAG,OAAOb,EAAE4C,WAKnB,GAHAwC,EAAKpF,EAAEa,EAAE,GACTwE,EAAKrF,EAAEgB,EAEE,MAAL5D,EACFqE,EAAMxB,EAAcD,EAAEa,GACtBY,EAAY,GAAN0D,GAAiB,GAANA,IAAYE,GAAMpC,GAAcoC,GAAMnC,GACpD1B,EAAcC,EAAK4D,GACnB1D,EAAaF,EAAK4D,EAAI,UAezB,GAVArE,GAHAhB,EAAI6E,EAAM,IAAI7F,EAAUgB,GAAI5C,EAAG8H,IAGzBlE,EAGNvD,GADAgE,EAAMxB,EAAcD,EAAEa,IACZ/C,OAOA,GAANqH,GAAiB,GAANA,IAAY/H,GAAK4D,GAAKA,GAAKiC,GAAa,CAGrD,KAAOxF,EAAML,EAAGqE,GAAO,IAAKhE,KAC5BgE,EAAMD,EAAcC,EAAKT,EAG3B,MAKE,GAJA5D,GAAKiI,EACL5D,EAAME,EAAaF,EAAKT,EAAG,KAGvBA,EAAI,EAAIvD,GACV,KAAML,EAAI,EAAG,IAAKqE,GAAO,IAAKrE,IAAKqE,GAAO,WAG1C,IADArE,GAAK4D,EAAIvD,GACD,EAEN,IADIuD,EAAI,GAAKvD,IAAKgE,GAAO,KAClBrE,IAAKqE,GAAO,KAM3B,OAAOzB,EAAEG,EAAI,GAAKiF,EAAK,IAAM3D,EAAMA,CACrC,CAKA,SAAS6D,EAASC,EAAMvF,GAKtB,IAJA,IAAIe,EAAGL,EACLtD,EAAI,EACJqD,EAAI,IAAIzB,EAAUuG,EAAK,IAElBnI,EAAImI,EAAKzH,OAAQV,OACtBsD,EAAI,IAAI1B,EAAUuG,EAAKnI,KAChB+C,IAAMY,EAAIP,EAAQC,EAAGC,MAAQV,GAAW,IAANe,GAAWN,EAAEN,IAAMH,KAC1DS,EAAIC,GAIR,OAAOD,CACT,CAOA,SAAS+E,EAAUxF,EAAGa,EAAGG,GAKvB,IAJA,IAAI5D,EAAI,EACNiD,EAAIQ,EAAE/C,QAGA+C,IAAIR,GAAIQ,EAAE4E,OAGlB,IAAKpF,EAAIQ,EAAE,GAAIR,GAAK,GAAIA,GAAK,GAAIjD,KAkBjC,OAfK4D,EAAI5D,EAAI4D,EAAItB,EAAW,GAAK0D,EAG/BpD,EAAEa,EAAIb,EAAEgB,EAAI,KAGHA,EAAImC,EAGbnD,EAAEa,EAAI,CAACb,EAAEgB,EAAI,IAEbhB,EAAEgB,EAAIA,EACNhB,EAAEa,EAAIA,GAGDb,CACT,CAyDA,SAAS6E,EAAMpE,EAAGiF,EAAIR,EAAI5E,GACxB,IAAIqF,EAAGvI,EAAGiD,EAAGU,EAAGf,EAAG4F,EAAIC,EACrBjF,EAAKH,EAAEI,EACPiF,EAASlG,EAGX,GAAIgB,EAAI,CAQNmF,EAAK,CAGH,IAAKJ,EAAI,EAAG5E,EAAIH,EAAG,GAAIG,GAAK,GAAIA,GAAK,GAAI4E,KAIzC,IAHAvI,EAAIsI,EAAKC,GAGD,EACNvI,GAAKsC,EACLW,EAAIqF,EACJ1F,EAAIY,EAAGgF,EAAK,GAGZC,EAAKxG,EAAUW,EAAI8F,EAAOH,EAAItF,EAAI,GAAK,SAIvC,IAFAuF,EAAK1G,GAAU9B,EAAI,GAAKsC,KAEdkB,EAAG9C,OAAQ,CAEnB,IAAIwC,EASF,MAAMyF,EANN,KAAOnF,EAAG9C,QAAU8H,EAAIhF,EAAGzC,KAAK,IAChC6B,EAAI6F,EAAK,EACTF,EAAI,EAEJtF,GADAjD,GAAKsC,GACGA,EAAW,CAIvB,KAAO,CAIL,IAHAM,EAAIe,EAAIH,EAAGgF,GAGND,EAAI,EAAG5E,GAAK,GAAIA,GAAK,GAAI4E,KAU9BE,GAHAxF,GAJAjD,GAAKsC,GAIGA,EAAWiG,GAGV,EAAI,EAAItG,EAAUW,EAAI8F,EAAOH,EAAItF,EAAI,GAAK,GACrD,CAkBF,GAfAC,EAAIA,GAAKoF,EAAK,GAKC,MAAd9E,EAAGgF,EAAK,KAAevF,EAAI,EAAIL,EAAIA,EAAI8F,EAAOH,EAAItF,EAAI,IAEvDC,EAAI4E,EAAK,GACLW,GAAMvF,KAAa,GAAN4E,GAAWA,IAAOzE,EAAEN,EAAI,EAAI,EAAI,IAC9C0F,EAAK,GAAW,GAANA,IAAkB,GAANX,GAAW5E,GAAW,GAAN4E,IAGrC9H,EAAI,EAAIiD,EAAI,EAAIL,EAAI8F,EAAOH,EAAItF,GAAK,EAAIO,EAAGgF,EAAK,IAAM,GAAM,GAC7DV,IAAOzE,EAAEN,EAAI,EAAI,EAAI,IAEpBuF,EAAK,IAAM9E,EAAG,GAiBhB,OAhBAA,EAAG9C,OAAS,EAERwC,GAGFoF,GAAMjF,EAAEO,EAAI,EAGZJ,EAAG,GAAKkF,GAAQpG,EAAWgG,EAAKhG,GAAYA,GAC5Ce,EAAEO,GAAK0E,GAAM,GAIb9E,EAAG,GAAKH,EAAEO,EAAI,EAGTP,EAkBT,GAdS,GAALrD,GACFwD,EAAG9C,OAAS8H,EACZ7E,EAAI,EACJ6E,MAEAhF,EAAG9C,OAAS8H,EAAK,EACjB7E,EAAI+E,EAAOpG,EAAWtC,GAItBwD,EAAGgF,GAAMvF,EAAI,EAAIhB,EAAUW,EAAI8F,EAAOH,EAAItF,GAAKyF,EAAOzF,IAAMU,EAAI,GAI9DT,EAEF,OAAU,CAGR,GAAU,GAANsF,EAAS,CAGX,IAAKxI,EAAI,EAAGiD,EAAIO,EAAG,GAAIP,GAAK,GAAIA,GAAK,GAAIjD,KAEzC,IADAiD,EAAIO,EAAG,IAAMG,EACRA,EAAI,EAAGV,GAAK,GAAIA,GAAK,GAAIU,KAG1B3D,GAAK2D,IACPN,EAAEO,IACEJ,EAAG,IAAMnB,IAAMmB,EAAG,GAAK,IAG7B,KACF,CAEE,GADAA,EAAGgF,IAAO7E,EACNH,EAAGgF,IAAOnG,EAAM,MACpBmB,EAAGgF,KAAQ,EACX7E,EAAI,CAER,CAIF,IAAK3D,EAAIwD,EAAG9C,OAAoB,IAAZ8C,IAAKxD,GAAUwD,EAAG6E,OACxC,CAGIhF,EAAEO,EAAIoC,EACR3C,EAAEI,EAAIJ,EAAEO,EAAI,KAGHP,EAAEO,EAAImC,IACf1C,EAAEI,EAAI,CAACJ,EAAEO,EAAI,GAEjB,CAEA,OAAOP,CACT,CAGA,SAASoC,EAAQ7C,GACf,IAAIyB,EACFT,EAAIhB,EAAEgB,EAER,OAAU,OAANA,EAAmBhB,EAAE4C,YAEzBnB,EAAMxB,EAAcD,EAAEa,GAEtBY,EAAMT,GAAKiC,GAAcjC,GAAKkC,EAC1B1B,EAAcC,EAAKT,GACnBW,EAAaF,EAAKT,EAAG,KAElBhB,EAAEG,EAAI,EAAI,IAAMsB,EAAMA,EAC/B,CA+qCA,OAn1EAzC,EAAU6C,MAAQA,EAElB7C,EAAUgH,SAAW,EACrBhH,EAAUiH,WAAa,EACvBjH,EAAUkH,WAAa,EACvBlH,EAAUmH,YAAc,EACxBnH,EAAUoH,cAAgB,EAC1BpH,EAAUqH,gBAAkB,EAC5BrH,EAAUsH,gBAAkB,EAC5BtH,EAAUuH,gBAAkB,EAC5BvH,EAAUwH,iBAAmB,EAC7BxH,EAAUyH,OAAS,EAqCnBzH,EAAU0H,OAAS1H,EAAU2H,IAAM,SAAUC,GAC3C,IAAIC,EAAG1C,EAEP,GAAW,MAAPyC,EAAa,CAEf,GAAkB,iBAAPA,EA4HT,MAAMlI,MACJa,EAAiB,oBAAsBqH,GAvFzC,GAlCIA,EAAIE,eAAeD,EAAI,oBAEzB3F,EADAiD,EAAIyC,EAAIC,GACI,EAAG/G,EAAK+G,GACpB9D,EAAiBoB,GAKfyC,EAAIE,eAAeD,EAAI,mBAEzB3F,EADAiD,EAAIyC,EAAIC,GACI,EAAG,EAAGA,GAClB7D,EAAgBmB,GAOdyC,EAAIE,eAAeD,EAAI,qBACzB1C,EAAIyC,EAAIC,KACC1C,EAAEsB,KACTvE,EAASiD,EAAE,IAAKrE,EAAK,EAAG+G,GACxB3F,EAASiD,EAAE,GAAI,EAAGrE,EAAK+G,GACvB5D,EAAakB,EAAE,GACfjB,EAAaiB,EAAE,KAEfjD,EAASiD,GAAIrE,EAAKA,EAAK+G,GACvB5D,IAAeC,EAAaiB,EAAI,GAAKA,EAAIA,KAOzCyC,EAAIE,eAAeD,EAAI,SAEzB,IADA1C,EAAIyC,EAAIC,KACC1C,EAAEsB,IACTvE,EAASiD,EAAE,IAAKrE,GAAM,EAAG+G,GACzB3F,EAASiD,EAAE,GAAI,EAAGrE,EAAK+G,GACvB1D,EAAUgB,EAAE,GACZf,EAAUe,EAAE,OACP,CAEL,GADAjD,EAASiD,GAAIrE,EAAKA,EAAK+G,IACnB1C,EAGF,MAAMzF,MACJa,EAAiBsH,EAAI,oBAAsB1C,GAH7ChB,IAAYC,EAAUe,EAAI,GAAKA,EAAIA,EAKvC,CAMF,GAAIyC,EAAIE,eAAeD,EAAI,UAAW,CAEpC,IADA1C,EAAIyC,EAAIC,QACI1C,EAcV,MAAMzF,MACJa,EAAiBsH,EAAI,uBAAyB1C,GAdhD,GAAIA,EAAG,CACL,GAAqB,oBAAV4C,SAAyBA,SAClCA,OAAOC,kBAAmBD,OAAOE,YAIjC,MADA5D,GAAUc,EACJzF,MACJa,EAAiB,sBAJnB8D,EAASc,CAMb,MACEd,EAASc,CAMf,CAoBA,GAhBIyC,EAAIE,eAAeD,EAAI,iBAEzB3F,EADAiD,EAAIyC,EAAIC,GACI,EAAG,EAAGA,GAClBvD,EAAca,GAKZyC,EAAIE,eAAeD,EAAI,mBAEzB3F,EADAiD,EAAIyC,EAAIC,GACI,EAAG/G,EAAK+G,GACpBtD,EAAgBY,GAKdyC,EAAIE,eAAeD,EAAI,UAAW,CAEpC,GAAgB,iBADhB1C,EAAIyC,EAAIC,IAEH,MAAMnI,MACTa,EAAiBsH,EAAI,mBAAqB1C,GAFlBX,EAASW,CAGrC,CAIA,GAAIyC,EAAIE,eAAeD,EAAI,YAAa,CAKtC,GAAgB,iBAJhB1C,EAAIyC,EAAIC,KAIqB,wBAAwBpC,KAAKN,GAIxD,MAAMzF,MACJa,EAAiBsH,EAAI,aAAe1C,GAJtCD,EAAmD,cAAlBC,EAAE5D,MAAM,EAAG,IAC5C0D,EAAWE,CAKf,CAQJ,CAEA,MAAO,CACLpB,eAAgBA,EAChBC,cAAeA,EACfkE,eAAgB,CAACjE,EAAYC,GAC7BiE,MAAO,CAAChE,EAASC,GACjBC,OAAQA,EACRC,YAAaA,EACbC,cAAeA,EACfC,OAAQA,EACRS,SAAUA,EAEd,EAYAjF,EAAUoI,YAAc,SAAUjD,GAChC,IAAKA,IAAwB,IAAnBA,EAAEK,aAAuB,OAAO,EAC1C,IAAKxF,EAAU8F,MAAO,OAAO,EAE7B,IAAI1H,EAAG4C,EACLa,EAAIsD,EAAEtD,EACNG,EAAImD,EAAEnD,EACNb,EAAIgE,EAAEhE,EAER4F,EAAK,GAA2B,kBAAvB,CAAC,EAAEnD,SAASyE,KAAKxG,IAExB,IAAW,IAANV,IAAkB,IAAPA,IAAaa,IAAMlB,GAAOkB,GAAKlB,GAAOkB,IAAM3B,EAAU2B,GAAI,CAGxE,GAAa,IAATH,EAAE,GAAU,CACd,GAAU,IAANG,GAAwB,IAAbH,EAAE/C,OAAc,OAAO,EACtC,MAAMiI,CACR,CAQA,IALA3I,GAAK4D,EAAI,GAAKtB,GACN,IAAGtC,GAAKsC,GAIZ4B,OAAOT,EAAE,IAAI/C,QAAUV,EAAG,CAE5B,IAAKA,EAAI,EAAGA,EAAIyD,EAAE/C,OAAQV,IAExB,IADA4C,EAAIa,EAAEzD,IACE,GAAK4C,GAAKP,GAAQO,IAAMX,EAAUW,GAAI,MAAM+F,EAItD,GAAU,IAAN/F,EAAS,OAAO,CACtB,CACF,OAGK,GAAU,OAANa,GAAoB,OAANG,IAAqB,OAANb,GAAoB,IAANA,IAAkB,IAAPA,GAC/D,OAAO,EAGT,MAAMzB,MACHa,EAAiB,sBAAwB4E,EAC9C,EAQAnF,EAAUsI,QAAUtI,EAAUoC,IAAM,WAClC,OAAOkE,EAASiC,WAAY,EAC9B,EAQAvI,EAAUwI,QAAUxI,EAAUmC,IAAM,WAClC,OAAOmE,EAASiC,UAAW,EAC7B,EAaAvI,EAAUyI,QACJvF,EAAU,iBAMVC,EAAkBhD,KAAKsI,SAAWvF,EAAW,QAC9C,WAAc,OAAO7C,EAAUF,KAAKsI,SAAWvF,EAAU,EACzD,WAAc,OAA2C,SAAlB,WAAhB/C,KAAKsI,SAAwB,IACnC,QAAhBtI,KAAKsI,SAAsB,EAAI,EAE5B,SAAUC,GACf,IAAIxH,EAAGS,EAAGK,EAAGD,EAAGoD,EACd/G,EAAI,EACJyD,EAAI,GACJ8G,EAAO,IAAI3I,EAAU8D,GAOvB,GALU,MAAN4E,EAAYA,EAAK3E,EAChB7B,EAASwG,EAAI,EAAG5H,GAErBiB,EAAI7B,EAASwI,EAAKhI,GAEd2D,EAGF,GAAI0D,OAAOC,gBAAiB,CAI1B,IAFA9G,EAAI6G,OAAOC,gBAAgB,IAAIY,YAAY7G,GAAK,IAEzC3D,EAAI2D,IAQToD,EAAW,OAAPjE,EAAE9C,IAAgB8C,EAAE9C,EAAI,KAAO,MAM1B,MACPuD,EAAIoG,OAAOC,gBAAgB,IAAIY,YAAY,IAC3C1H,EAAE9C,GAAKuD,EAAE,GACTT,EAAE9C,EAAI,GAAKuD,EAAE,KAKbE,EAAE1C,KAAKgG,EAAI,MACX/G,GAAK,GAGTA,EAAI2D,EAAI,CAGV,KAAO,KAAIgG,OAAOE,YA2BhB,MADA5D,GAAS,EACH3E,MACJa,EAAiB,sBAvBnB,IAFAW,EAAI6G,OAAOE,YAAYlG,GAAK,GAErB3D,EAAI2D,IAMToD,EAAmB,iBAAN,GAAPjE,EAAE9C,IAA0C,cAAX8C,EAAE9C,EAAI,GAC9B,WAAX8C,EAAE9C,EAAI,GAAgC,SAAX8C,EAAE9C,EAAI,IACjC8C,EAAE9C,EAAI,IAAM,KAAO8C,EAAE9C,EAAI,IAAM,GAAK8C,EAAE9C,EAAI,KAErC,KACP2J,OAAOE,YAAY,GAAGY,KAAK3H,EAAG9C,IAI9ByD,EAAE1C,KAAKgG,EAAI,MACX/G,GAAK,GAGTA,EAAI2D,EAAI,CAKV,CAIF,IAAKsC,EAEH,KAAOjG,EAAI2D,IACToD,EAAIhC,KACI,OAAMtB,EAAEzD,KAAO+G,EAAI,MAc/B,IAVApD,EAAIF,IAAIzD,GACRsK,GAAMhI,EAGFqB,GAAK2G,IACPvD,EAAIvE,EAASF,EAAWgI,GACxB7G,EAAEzD,GAAKiC,EAAU0B,EAAIoD,GAAKA,GAIZ,IAATtD,EAAEzD,GAAUyD,EAAE4E,MAAOrI,KAG5B,GAAIA,EAAI,EACNyD,EAAI,CAACG,EAAI,OACJ,CAGL,IAAKA,GAAK,EAAa,IAATH,EAAE,GAAUA,EAAEiH,OAAO,EAAG,GAAI9G,GAAKtB,GAG/C,IAAKtC,EAAI,EAAG+G,EAAItD,EAAE,GAAIsD,GAAK,GAAIA,GAAK,GAAI/G,KAGpCA,EAAIsC,IAAUsB,GAAKtB,EAAWtC,EACpC,CAIA,OAFAuK,EAAK3G,EAAIA,EACT2G,EAAK9G,EAAIA,EACF8G,CACT,GASF3I,EAAU+I,IAAM,WAId,IAHA,IAAI3K,EAAI,EACNmI,EAAOgC,UACPQ,EAAM,IAAI/I,EAAUuG,EAAK,IACpBnI,EAAImI,EAAKzH,QAASiK,EAAMA,EAAIC,KAAKzC,EAAKnI,MAC7C,OAAO2K,CACT,EAOA/F,EAAc,WACZ,IAAIiG,EAAU,aAOd,SAASC,EAAUzG,EAAK0G,EAAQC,EAAShE,GAOvC,IANA,IAAI/D,EAEFgI,EADAhL,EAAM,CAAC,GAEPD,EAAI,EACJK,EAAMgE,EAAI3D,OAELV,EAAIK,GAAM,CACf,IAAK4K,EAAOhL,EAAIS,OAAQuK,IAAQhL,EAAIgL,IAASF,GAI7C,IAFA9K,EAAI,IAAM+G,EAASzF,QAAQ8C,EAAIC,OAAOtE,MAEjCiD,EAAI,EAAGA,EAAIhD,EAAIS,OAAQuC,IAEtBhD,EAAIgD,GAAK+H,EAAU,IACH,MAAd/K,EAAIgD,EAAI,KAAYhD,EAAIgD,EAAI,GAAK,GACrChD,EAAIgD,EAAI,IAAMhD,EAAIgD,GAAK+H,EAAU,EACjC/K,EAAIgD,IAAM+H,EAGhB,CAEA,OAAO/K,EAAIiL,SACb,CAKA,OAAO,SAAU7G,EAAK0G,EAAQC,EAASG,EAAMC,GAC3C,IAAIpE,EAAUuB,EAAG3E,EAAGD,EAAGT,EAAGG,EAAGG,EAAIF,EAC/BtD,EAAIqE,EAAI9C,QAAQ,KAChB+I,EAAK3E,EACLmC,EAAKlC,EA+BP,IA5BI5F,GAAK,IACP2D,EAAIwC,EAGJA,EAAgB,EAChB9B,EAAMA,EAAIiD,QAAQ,IAAK,IAEvBjE,GADAC,EAAI,IAAI1B,EAAUmJ,IACZM,IAAIhH,EAAI3D,OAASV,GACvBmG,EAAgBxC,EAKhBL,EAAEG,EAAIqH,EAAUvG,EAAa1B,EAAcQ,EAAEI,GAAIJ,EAAEO,EAAG,KACrD,GAAIoH,EAASH,GACdvH,EAAEM,EAAIN,EAAEG,EAAE/C,QAUZkD,EAAID,GALJH,EAAKsH,EAAUzG,EAAK0G,EAAQC,EAASI,GACjCpE,EAAWH,EAAUgE,IACrB7D,EAAW6D,EAAShE,KAGbnG,OAGO,GAAX8C,IAAKG,GAASH,EAAG6E,OAGxB,IAAK7E,EAAG,GAAI,OAAOwD,EAAS1C,OAAO,GAqCnC,GAlCItE,EAAI,IACJ4D,GAEFP,EAAEI,EAAID,EACNH,EAAEO,EAAIA,EAGNP,EAAEN,EAAIoI,EAEN3H,GADAH,EAAIsB,EAAItB,EAAGC,EAAGgH,EAAIxC,EAAIkD,IACfvH,EACPP,EAAIG,EAAEH,EACNU,EAAIP,EAAEO,GASR5D,EAAIwD,EAHJ+E,EAAI3E,EAAI0G,EAAK,GAOb3G,EAAIqH,EAAU,EACd9H,EAAIA,GAAKqF,EAAI,GAAkB,MAAb/E,EAAG+E,EAAI,GAEzBrF,EAAI4E,EAAK,GAAU,MAAL9H,GAAakD,KAAa,GAAN4E,GAAWA,IAAOzE,EAAEN,EAAI,EAAI,EAAI,IAC1D/C,EAAI2D,GAAK3D,GAAK2D,IAAW,GAANmE,GAAW5E,GAAW,GAAN4E,GAAuB,EAAZtE,EAAG+E,EAAI,IACtDT,IAAOzE,EAAEN,EAAI,EAAI,EAAI,IAKxBwF,EAAI,IAAM/E,EAAG,GAGfa,EAAMnB,EAAIqB,EAAayC,EAAS1C,OAAO,IAAKgG,EAAItD,EAAS1C,OAAO,IAAM0C,EAAS1C,OAAO,OACjF,CAML,GAHAd,EAAG9C,OAAS6H,EAGRrF,EAGF,MAAO8H,IAAWxH,IAAK+E,GAAKyC,GAC1BxH,EAAG+E,GAAK,EAEHA,MACD3E,EACFJ,EAAK,CAAC,GAAG8H,OAAO9H,IAMtB,IAAKG,EAAIH,EAAG9C,QAAS8C,IAAKG,KAG1B,IAAK3D,EAAI,EAAGqE,EAAM,GAAIrE,GAAK2D,EAAGU,GAAO2C,EAAS1C,OAAOd,EAAGxD,OAGxDqE,EAAME,EAAaF,EAAKT,EAAGoD,EAAS1C,OAAO,GAC7C,CAGA,OAAOD,CACT,CACD,CAnJa,GAuJdM,EAAM,WAGJ,SAAS4G,EAASlI,EAAGM,EAAG6H,GACtB,IAAIC,EAAGC,EAAMC,EAAKC,EAChBC,EAAQ,EACR7L,EAAIqD,EAAE3C,OACNoL,EAAMnI,EAAIlB,EACVsJ,EAAMpI,EAAIlB,EAAY,EAExB,IAAKY,EAAIA,EAAEF,QAASnD,KAKlB6L,IADAH,EAAOI,GAHPH,EAAMtI,EAAErD,GAAKyC,IAEbgJ,EAAIM,EAAMJ,GADVC,EAAMvI,EAAErD,GAAKyC,EAAY,GACHqJ,GACGrJ,EAAaA,EAAaoJ,GACnCL,EAAO,IAAMC,EAAIhJ,EAAY,GAAKsJ,EAAMH,EACxDvI,EAAErD,GAAK0L,EAAOF,EAKhB,OAFIK,IAAOxI,EAAI,CAACwI,GAAOP,OAAOjI,IAEvBA,CACT,CAEA,SAASD,EAAQN,EAAGS,EAAGyI,EAAIC,GACzB,IAAIjM,EAAGkM,EAEP,GAAIF,GAAMC,EACRC,EAAMF,EAAKC,EAAK,GAAK,OAGrB,IAAKjM,EAAIkM,EAAM,EAAGlM,EAAIgM,EAAIhM,IAExB,GAAI8C,EAAE9C,IAAMuD,EAAEvD,GAAI,CAChBkM,EAAMpJ,EAAE9C,GAAKuD,EAAEvD,GAAK,GAAK,EACzB,KACF,CAIJ,OAAOkM,CACT,CAEA,SAASC,EAASrJ,EAAGS,EAAGyI,EAAIR,GAI1B,IAHA,IAAIxL,EAAI,EAGDgM,KACLlJ,EAAEkJ,IAAOhM,EACTA,EAAI8C,EAAEkJ,GAAMzI,EAAEyI,GAAM,EAAI,EACxBlJ,EAAEkJ,GAAMhM,EAAIwL,EAAO1I,EAAEkJ,GAAMzI,EAAEyI,GAI/B,MAAQlJ,EAAE,IAAMA,EAAEpC,OAAS,EAAGoC,EAAE4H,OAAO,EAAG,IAC5C,CAGA,OAAO,SAAUrH,EAAGC,EAAGgH,EAAIxC,EAAI0D,GAC7B,IAAIU,EAAKtI,EAAG5D,EAAGoM,EAAMxJ,EAAGyJ,EAAMC,EAAOC,EAAGC,EAAIC,EAAKC,EAAMC,EAAMC,EAAIC,EAAIC,EACnEC,EAAIC,EACJjK,EAAIM,EAAEN,GAAKO,EAAEP,EAAI,GAAK,EACtBS,EAAKH,EAAEI,EACPC,EAAKJ,EAAEG,EAGT,KAAKD,GAAOA,EAAG,IAAOE,GAAOA,EAAG,IAE9B,OAAO,IAAI9B,EAGTyB,EAAEN,GAAMO,EAAEP,IAAMS,GAAKE,GAAMF,EAAG,IAAME,EAAG,GAAMA,GAG7CF,GAAe,GAATA,EAAG,KAAYE,EAAS,EAAJX,EAAQA,EAAI,EAHakK,KAoBvD,IAZAT,GADAD,EAAI,IAAI3K,EAAUmB,IACXU,EAAI,GAEXV,EAAIuH,GADJ1G,EAAIP,EAAEO,EAAIN,EAAEM,GACC,EAER4H,IACHA,EAAOnJ,EACPuB,EAAIjB,EAASU,EAAEO,EAAItB,GAAYK,EAASW,EAAEM,EAAItB,GAC9CS,EAAIA,EAAIT,EAAW,GAKhBtC,EAAI,EAAG0D,EAAG1D,KAAOwD,EAAGxD,IAAM,GAAIA,KAInC,GAFI0D,EAAG1D,IAAMwD,EAAGxD,IAAM,IAAI4D,IAEtBb,EAAI,EACNyJ,EAAGzL,KAAK,GACRqL,GAAO,MACF,CAwBL,IAvBAS,EAAKrJ,EAAG9C,OACRqM,EAAKrJ,EAAGhD,OACRV,EAAI,EACJ+C,GAAK,GAILH,EAAIX,EAAUuJ,GAAQ9H,EAAG,GAAK,KAItB,IACNA,EAAK6H,EAAS7H,EAAId,EAAG4I,GACrBhI,EAAK+H,EAAS/H,EAAIZ,EAAG4I,GACrBuB,EAAKrJ,EAAGhD,OACRmM,EAAKrJ,EAAG9C,QAGVkM,EAAKG,EAELL,GADAD,EAAMjJ,EAAGL,MAAM,EAAG4J,IACPrM,OAGJgM,EAAOK,EAAIN,EAAIC,KAAU,GAChCM,EAAKtJ,EAAGP,QACR6J,EAAK,CAAC,GAAG1B,OAAO0B,GAChBF,EAAMpJ,EAAG,GACLA,EAAG,IAAM8H,EAAO,GAAGsB,IAIvB,EAAG,CAOD,GANAlK,EAAI,GAGJsJ,EAAM9I,EAAQM,EAAI+I,EAAKM,EAAIL,IAGjB,EAAG,CAqBX,GAjBAC,EAAOF,EAAI,GACPM,GAAML,IAAMC,EAAOA,EAAOnB,GAAQiB,EAAI,IAAM,KAGhD7J,EAAIX,EAAU0K,EAAOG,IAab,EAcN,IAXIlK,GAAK4I,IAAM5I,EAAI4I,EAAO,GAI1Bc,GADAD,EAAOd,EAAS7H,EAAId,EAAG4I,IACV9K,OACbgM,EAAOD,EAAI/L,OAM+B,GAAnC0C,EAAQiJ,EAAMI,EAAKH,EAAOI,IAC/B9J,IAGAuJ,EAASE,EAAMU,EAAKT,EAAQU,EAAKtJ,EAAI4I,EAAOd,GAC5Cc,EAAQD,EAAK3L,OACbwL,EAAM,OAQC,GAALtJ,IAGFsJ,EAAMtJ,EAAI,GAKZ0J,GADAD,EAAO3I,EAAGP,SACGzC,OAUf,GAPI4L,EAAQI,IAAML,EAAO,CAAC,GAAGf,OAAOe,IAGpCF,EAASM,EAAKJ,EAAMK,EAAMlB,GAC1BkB,EAAOD,EAAI/L,QAGC,GAARwL,EAMF,KAAO9I,EAAQM,EAAI+I,EAAKM,EAAIL,GAAQ,GAClC9J,IAGAuJ,EAASM,EAAKM,EAAKL,EAAOM,EAAKtJ,EAAIgJ,EAAMlB,GACzCkB,EAAOD,EAAI/L,MAGjB,MAAmB,IAARwL,IACTtJ,IACA6J,EAAM,CAAC,IAITD,EAAGxM,KAAO4C,EAGN6J,EAAI,GACNA,EAAIC,KAAUlJ,EAAGoJ,IAAO,GAExBH,EAAM,CAACjJ,EAAGoJ,IACVF,EAAO,EAEX,QAAUE,IAAOC,GAAgB,MAAVJ,EAAI,KAAe1J,KAE1CqJ,EAAiB,MAAVK,EAAI,GAGND,EAAG,IAAIA,EAAG9B,OAAO,EAAG,EAC3B,CAEA,GAAIc,GAAQnJ,EAAM,CAGhB,IAAKrC,EAAI,EAAG+C,EAAIyJ,EAAG,GAAIzJ,GAAK,GAAIA,GAAK,GAAI/C,KAEzCyH,EAAM8E,EAAGjC,GAAMiC,EAAE3I,EAAI5D,EAAI4D,EAAItB,EAAW,GAAK,EAAGwF,EAAIsE,EAGtD,MACEG,EAAE3I,EAAIA,EACN2I,EAAErJ,GAAKkJ,EAGT,OAAOG,CACT,CACD,CAhQK,GA4XAvH,EAAa,8BACfC,EAAW,cACXC,EAAY,cACZC,EAAkB,qBAClBC,EAAmB,6BALvBP,EAOS,SAAUxB,EAAGgB,EAAK6C,EAAO3D,GAC9B,IAAIiI,EACFzI,EAAImE,EAAQ7C,EAAMA,EAAIiD,QAAQlC,EAAkB,IAGlD,GAAID,EAAgBkC,KAAKtE,GACvBM,EAAEN,EAAImK,MAAMnK,GAAK,KAAOA,EAAI,GAAK,EAAI,MAChC,CACL,IAAKmE,IAGHnE,EAAIA,EAAEuE,QAAQtC,GAAY,SAAUyG,EAAG0B,EAAIC,GAEzC,OADA5B,EAAkC,MAA1B4B,EAAKA,EAAGxF,eAAwB,GAAW,KAANwF,EAAY,EAAI,EACrD7J,GAAKA,GAAKiI,EAAYC,EAAL0B,CAC3B,IAEI5J,IACFiI,EAAOjI,EAGPR,EAAIA,EAAEuE,QAAQrC,EAAU,MAAMqC,QAAQpC,EAAW,SAG/Cb,GAAOtB,GAAG,OAAO,IAAInB,EAAUmB,EAAGyI,GAKxC,GAAI5J,EAAU8F,MACZ,MAAMpG,MACHa,EAAiB,SAAWoB,EAAI,SAAWA,EAAI,IAAM,YAAcc,GAIxEhB,EAAEN,EAAI,IACR,CAEAM,EAAEI,EAAIJ,EAAEO,EAAI,IACd,EA4LFyB,EAAEgI,cAAgBhI,EAAEiI,IAAM,WACxB,IAAIjK,EAAI,IAAIzB,EAAUuF,MAEtB,OADI9D,EAAEN,EAAI,IAAGM,EAAEN,EAAI,GACZM,CACT,EAUAgC,EAAEkI,WAAa,SAAUjK,EAAGC,GAC1B,OAAOH,EAAQ+D,KAAM,IAAIvF,EAAU0B,EAAGC,GACxC,EAgBA8B,EAAEmI,cAAgBnI,EAAEiF,GAAK,SAAUA,EAAIxC,GACrC,IAAIrE,EAAGb,EAAGmE,EACR1D,EAAI8D,KAEN,GAAU,MAANmD,EAKF,OAJAxG,EAASwG,EAAI,EAAG5H,GACN,MAANoF,EAAYA,EAAKlC,EAChB9B,EAASgE,EAAI,EAAG,GAEdL,EAAM,IAAI7F,EAAUyB,GAAIiH,EAAKjH,EAAEO,EAAI,EAAGkE,GAG/C,KAAMrE,EAAIJ,EAAEI,GAAI,OAAO,KAIvB,GAHAb,IAAMmE,EAAItD,EAAE/C,OAAS,GAAKiC,EAASwE,KAAKvD,EAAItB,IAAaA,EAGrDyE,EAAItD,EAAEsD,GAAI,KAAOA,EAAI,IAAM,EAAGA,GAAK,GAAInE,KAG3C,OAFIA,EAAI,IAAGA,EAAI,GAERA,CACT,EAuBAyC,EAAEoI,UAAYpI,EAAEV,IAAM,SAAUrB,EAAGC,GACjC,OAAOoB,EAAIwC,KAAM,IAAIvF,EAAU0B,EAAGC,GAAIoC,EAAgBC,EACxD,EAOAP,EAAEqI,mBAAqBrI,EAAEsI,KAAO,SAAUrK,EAAGC,GAC3C,OAAOoB,EAAIwC,KAAM,IAAIvF,EAAU0B,EAAGC,GAAI,EAAG,EAC3C,EAkBA8B,EAAEuI,gBAAkBvI,EAAEgG,IAAM,SAAUzI,EAAG6I,GACvC,IAAIoC,EAAMC,EAAU9N,EAAG2D,EAASoK,EAAQC,EAAQC,EAAQ3K,EACtDD,EAAI8D,KAKN,IAHAvE,EAAI,IAAIhB,EAAUgB,IAGZa,IAAMb,EAAEsL,YACZ,MAAM5M,MACHa,EAAiB,4BAA8BsD,EAAQ7C,IAS5D,GANS,MAAL6I,IAAWA,EAAI,IAAI7J,EAAU6J,IAGjCsC,EAASnL,EAAEgB,EAAI,IAGVP,EAAEI,IAAMJ,EAAEI,EAAE,IAAgB,GAAVJ,EAAEI,EAAE,KAAYJ,EAAEO,GAAmB,GAAdP,EAAEI,EAAE/C,SAAgBkC,EAAEa,IAAMb,EAAEa,EAAE,GAK5E,OADAH,EAAI,IAAI1B,EAAUG,KAAKsJ,KAAK5F,EAAQpC,GAAI0K,EAASnL,EAAEG,GAAK,EAAIoB,EAAMvB,KAAO6C,EAAQ7C,KAC1E6I,EAAInI,EAAE6K,IAAI1C,GAAKnI,EAKxB,GAFA0K,EAASpL,EAAEG,EAAI,EAEX0I,EAAG,CAGL,GAAIA,EAAEhI,GAAKgI,EAAEhI,EAAE,IAAMgI,EAAE1I,EAAG,OAAO,IAAInB,EAAUqL,MAE/Ca,GAAYE,GAAU3K,EAAE6K,aAAezC,EAAEyC,eAE3B7K,EAAIA,EAAE8K,IAAI1C,GAI1B,KAAO,IAAI7I,EAAEgB,EAAI,IAAMP,EAAEO,EAAI,GAAKP,EAAEO,GAAK,IAAa,GAAPP,EAAEO,EAE7CP,EAAEI,EAAE,GAAK,GAAKsK,GAAU1K,EAAEI,EAAE,IAAM,KAElCJ,EAAEI,EAAE,GAAK,MAAQsK,GAAU1K,EAAEI,EAAE,IAAM,YASvC,OANAE,EAAIN,EAAEN,EAAI,GAAKoB,EAAMvB,IAAM,EAAI,EAG3BS,EAAEO,GAAK,IAAGD,EAAI,EAAIA,GAGf,IAAI/B,EAAUoM,EAAS,EAAIrK,EAAIA,GAE7BwC,IAKTxC,EAAI7B,EAASqE,EAAgB7D,EAAW,GAC1C,CAcA,IAZIyL,GACFF,EAAO,IAAIjM,EAAU,IACjBoM,IAAQpL,EAAEG,EAAI,GAClBkL,EAAS9J,EAAMvB,IAGfqL,GADAjO,EAAI+B,KAAKuL,KAAK7H,EAAQ7C,KACT,EAGfU,EAAI,IAAI1B,EAAU8D,KAGR,CAER,GAAIuI,EAAQ,CAEV,KADA3K,EAAIA,EAAE8K,MAAM/K,IACLI,EAAG,MAENE,EACEL,EAAEG,EAAE/C,OAASiD,IAAGL,EAAEG,EAAE/C,OAASiD,GACxBmK,IACTxK,EAAIA,EAAE6K,IAAI1C,GAEd,CAEA,GAAIzL,EAAG,CAEL,GAAU,KADVA,EAAIiC,EAAUjC,EAAI,IACL,MACbiO,EAASjO,EAAI,CACf,MAIE,GAFAyH,EADA7E,EAAIA,EAAEwL,MAAMP,GACHjL,EAAEgB,EAAI,EAAG,GAEdhB,EAAEgB,EAAI,GACRqK,EAAS9J,EAAMvB,OACV,CAEL,GAAU,IADV5C,GAAKyF,EAAQ7C,IACA,MACbqL,EAASjO,EAAI,CACf,CAGFqD,EAAIA,EAAE+K,MAAM/K,GAERM,EACEN,EAAEI,GAAKJ,EAAEI,EAAE/C,OAASiD,IAAGN,EAAEI,EAAE/C,OAASiD,GAC/BmK,IACTzK,EAAIA,EAAE8K,IAAI1C,GAEd,CAEA,OAAIqC,EAAiBxK,GACjB0K,IAAQ1K,EAAIoC,EAAIf,IAAIrB,IAEjBmI,EAAInI,EAAE6K,IAAI1C,GAAK9H,EAAI8D,EAAMnE,EAAG6C,EAAeP,OAnHxBwG,GAmH+C9I,EAC3E,EAWA+B,EAAEgJ,aAAe,SAAUvG,GACzB,IAAIlF,EAAI,IAAIhB,EAAUuF,MAGtB,OAFU,MAANW,EAAYA,EAAKlC,EAChB9B,EAASgE,EAAI,EAAG,GACdL,EAAM7E,EAAGA,EAAEgB,EAAI,EAAGkE,EAC3B,EAOAzC,EAAEiJ,UAAYjJ,EAAEkJ,GAAK,SAAUjL,EAAGC,GAChC,OAA8C,IAAvCH,EAAQ+D,KAAM,IAAIvF,EAAU0B,EAAGC,GACxC,EAMA8B,EAAEmJ,SAAW,WACX,QAASrH,KAAK1D,CAChB,EAOA4B,EAAEoJ,cAAgBpJ,EAAEqJ,GAAK,SAAUpL,EAAGC,GACpC,OAAOH,EAAQ+D,KAAM,IAAIvF,EAAU0B,EAAGC,IAAM,CAC9C,EAOA8B,EAAEsJ,uBAAyBtJ,EAAEuJ,IAAM,SAAUtL,EAAGC,GAC9C,OAAoD,KAA5CA,EAAIH,EAAQ+D,KAAM,IAAIvF,EAAU0B,EAAGC,MAAoB,IAANA,CAE3D,EAMA8B,EAAE6I,UAAY,WACZ,QAAS/G,KAAK1D,GAAKd,EAASwE,KAAKvD,EAAItB,GAAY6E,KAAK1D,EAAE/C,OAAS,CACnE,EAOA2E,EAAEwJ,WAAaxJ,EAAEyJ,GAAK,SAAUxL,EAAGC,GACjC,OAAOH,EAAQ+D,KAAM,IAAIvF,EAAU0B,EAAGC,IAAM,CAC9C,EAOA8B,EAAE0J,oBAAsB1J,EAAE2J,IAAM,SAAU1L,EAAGC,GAC3C,OAAqD,KAA7CA,EAAIH,EAAQ+D,KAAM,IAAIvF,EAAU0B,EAAGC,MAAqB,IAANA,CAC5D,EAMA8B,EAAE6H,MAAQ,WACR,OAAQ/F,KAAKpE,CACf,EAMAsC,EAAE4J,WAAa,WACb,OAAO9H,KAAKpE,EAAI,CAClB,EAMAsC,EAAE6J,WAAa,WACb,OAAO/H,KAAKpE,EAAI,CAClB,EAMAsC,EAAE8J,OAAS,WACT,QAAShI,KAAK1D,GAAkB,GAAb0D,KAAK1D,EAAE,EAC5B,EAuBA4B,EAAE+J,MAAQ,SAAU9L,EAAGC,GACrB,IAAIvD,EAAGiD,EAAGoM,EAAGC,EACXjM,EAAI8D,KACJrE,EAAIO,EAAEN,EAMR,GAHAQ,GADAD,EAAI,IAAI1B,EAAU0B,EAAGC,IACfR,GAGDD,IAAMS,EAAG,OAAO,IAAI3B,EAAUqL,KAGnC,GAAInK,GAAKS,EAEP,OADAD,EAAEP,GAAKQ,EACAF,EAAEuH,KAAKtH,GAGhB,IAAIiM,EAAKlM,EAAEO,EAAItB,EACbkN,EAAKlM,EAAEM,EAAItB,EACXkB,EAAKH,EAAEI,EACPC,EAAKJ,EAAEG,EAET,IAAK8L,IAAOC,EAAI,CAGd,IAAKhM,IAAOE,EAAI,OAAOF,GAAMF,EAAEP,GAAKQ,EAAGD,GAAK,IAAI1B,EAAU8B,EAAKL,EAAI4J,KAGnE,IAAKzJ,EAAG,KAAOE,EAAG,GAGhB,OAAOA,EAAG,IAAMJ,EAAEP,GAAKQ,EAAGD,GAAK,IAAI1B,EAAU4B,EAAG,GAAKH,EAGnC,GAAjBuC,GAAsB,EAAI,EAE/B,CAOA,GALA2J,EAAK5M,EAAS4M,GACdC,EAAK7M,EAAS6M,GACdhM,EAAKA,EAAGL,QAGJL,EAAIyM,EAAKC,EAAI,CAaf,KAXIF,EAAOxM,EAAI,IACbA,GAAKA,EACLuM,EAAI7L,IAEJgM,EAAKD,EACLF,EAAI3L,GAGN2L,EAAEnE,UAGG3H,EAAIT,EAAGS,IAAK8L,EAAEtO,KAAK,IACxBsO,EAAEnE,SACJ,MAKE,IAFAjI,GAAKqM,GAAQxM,EAAIU,EAAG9C,SAAW6C,EAAIG,EAAGhD,SAAWoC,EAAIS,EAEhDT,EAAIS,EAAI,EAAGA,EAAIN,EAAGM,IAErB,GAAIC,EAAGD,IAAMG,EAAGH,GAAI,CAClB+L,EAAO9L,EAAGD,GAAKG,EAAGH,GAClB,KACF,CAgBJ,GAXI+L,IACFD,EAAI7L,EACJA,EAAKE,EACLA,EAAK2L,EACL/L,EAAEP,GAAKO,EAAEP,IAGXQ,GAAKN,EAAIS,EAAGhD,SAAWV,EAAIwD,EAAG9C,SAItB,EAAG,KAAO6C,IAAKC,EAAGxD,KAAO,GAIjC,IAHAuD,EAAIlB,EAAO,EAGJY,EAAIH,GAAI,CAEb,GAAIU,IAAKP,GAAKS,EAAGT,GAAI,CACnB,IAAKjD,EAAIiD,EAAGjD,IAAMwD,IAAKxD,GAAIwD,EAAGxD,GAAKuD,KACjCC,EAAGxD,GACLwD,EAAGP,IAAMZ,CACX,CAEAmB,EAAGP,IAAMS,EAAGT,EACd,CAGA,KAAgB,GAATO,EAAG,GAASA,EAAGkH,OAAO,EAAG,KAAM8E,GAGtC,OAAKhM,EAAG,GAWD4E,EAAU9E,EAAGE,EAAIgM,IAPtBlM,EAAEP,EAAqB,GAAjB6C,GAAsB,EAAI,EAChCtC,EAAEG,EAAI,CAACH,EAAEM,EAAI,GACNN,EAMX,EAwBA+B,EAAEoK,OAASpK,EAAE8I,IAAM,SAAU7K,EAAGC,GAC9B,IAAIgJ,EAAGxJ,EACLM,EAAI8D,KAKN,OAHA7D,EAAI,IAAI1B,EAAU0B,EAAGC,IAGhBF,EAAEI,IAAMH,EAAEP,GAAKO,EAAEG,IAAMH,EAAEG,EAAE,GACvB,IAAI7B,EAAUqL,MAGX3J,EAAEG,GAAKJ,EAAEI,IAAMJ,EAAEI,EAAE,GACtB,IAAI7B,EAAUyB,IAGJ,GAAf6C,GAIFnD,EAAIO,EAAEP,EACNO,EAAEP,EAAI,EACNwJ,EAAI5H,EAAItB,EAAGC,EAAG,EAAG,GACjBA,EAAEP,EAAIA,EACNwJ,EAAExJ,GAAKA,GAEPwJ,EAAI5H,EAAItB,EAAGC,EAAG,EAAG4C,IAGnB5C,EAAID,EAAE+L,MAAM7C,EAAE6B,MAAM9K,KAGbG,EAAE,IAAqB,GAAfyC,IAAkB5C,EAAEP,EAAIM,EAAEN,GAElCO,EACT,EAuBA+B,EAAEqK,aAAerK,EAAE+I,MAAQ,SAAU9K,EAAGC,GACtC,IAAIE,EAAGG,EAAG5D,EAAGiD,EAAGU,EAAG8H,EAAGkE,EAAKhE,EAAKC,EAAKgE,EAAKC,EAAKC,EAAKC,EAClDvE,EAAMwE,EACN3M,EAAI8D,KACJ3D,EAAKH,EAAEI,EACPC,GAAMJ,EAAI,IAAI1B,EAAU0B,EAAGC,IAAIE,EAGjC,KAAKD,GAAOE,GAAOF,EAAG,IAAOE,EAAG,IAmB9B,OAhBKL,EAAEN,IAAMO,EAAEP,GAAKS,IAAOA,EAAG,KAAOE,GAAMA,IAAOA,EAAG,KAAOF,EAC1DF,EAAEG,EAAIH,EAAEM,EAAIN,EAAEP,EAAI,MAElBO,EAAEP,GAAKM,EAAEN,EAGJS,GAAOE,GAKVJ,EAAEG,EAAI,CAAC,GACPH,EAAEM,EAAI,GALNN,EAAEG,EAAIH,EAAEM,EAAI,MASTN,EAmBT,IAhBAM,EAAIjB,EAASU,EAAEO,EAAItB,GAAYK,EAASW,EAAEM,EAAItB,GAC9CgB,EAAEP,GAAKM,EAAEN,GACT4M,EAAMnM,EAAG9C,SACTkP,EAAMlM,EAAGhD,UAIPqP,EAAKvM,EACLA,EAAKE,EACLA,EAAKqM,EACL/P,EAAI2P,EACJA,EAAMC,EACNA,EAAM5P,GAIHA,EAAI2P,EAAMC,EAAKG,EAAK,GAAI/P,IAAK+P,EAAGhP,KAAK,IAK1C,IAHAyK,EAAOnJ,EACP2N,EAAWvN,EAENzC,EAAI4P,IAAO5P,GAAK,GAAI,CAKvB,IAJAyD,EAAI,EACJoM,EAAMnM,EAAG1D,GAAKgQ,EACdF,EAAMpM,EAAG1D,GAAKgQ,EAAW,EAEX/M,EAAIjD,GAAb2D,EAAIgM,GAAgB1M,EAAIjD,GAK3ByD,IADAkI,EAAMkE,GAHNlE,EAAMnI,IAAKG,GAAKqM,IAEhBvE,EAAIqE,EAAMnE,GADVC,EAAMpI,EAAGG,GAAKqM,EAAW,GACHH,GACEG,EAAYA,EAAYD,EAAG9M,GAAKQ,GAC7C+H,EAAO,IAAMC,EAAIuE,EAAW,GAAKF,EAAMlE,EAClDmE,EAAG9M,KAAO0I,EAAMH,EAGlBuE,EAAG9M,GAAKQ,CACV,CAQA,OANIA,IACAG,EAEFmM,EAAGrF,OAAO,EAAG,GAGRtC,EAAU9E,EAAGyM,EAAInM,EAC1B,EAOAyB,EAAE4K,QAAU,WACV,IAAI5M,EAAI,IAAIzB,EAAUuF,MAEtB,OADA9D,EAAEN,GAAKM,EAAEN,GAAK,KACPM,CACT,EAuBAgC,EAAEuF,KAAO,SAAUtH,EAAGC,GACpB,IAAI8L,EACFhM,EAAI8D,KACJrE,EAAIO,EAAEN,EAMR,GAHAQ,GADAD,EAAI,IAAI1B,EAAU0B,EAAGC,IACfR,GAGDD,IAAMS,EAAG,OAAO,IAAI3B,EAAUqL,KAGlC,GAAInK,GAAKS,EAER,OADAD,EAAEP,GAAKQ,EACAF,EAAE+L,MAAM9L,GAGjB,IAAIiM,EAAKlM,EAAEO,EAAItB,EACbkN,EAAKlM,EAAEM,EAAItB,EACXkB,EAAKH,EAAEI,EACPC,EAAKJ,EAAEG,EAET,IAAK8L,IAAOC,EAAI,CAGd,IAAKhM,IAAOE,EAAI,OAAO,IAAI9B,EAAUkB,EAAI,GAIzC,IAAKU,EAAG,KAAOE,EAAG,GAAI,OAAOA,EAAG,GAAKJ,EAAI,IAAI1B,EAAU4B,EAAG,GAAKH,EAAQ,EAAJP,EACrE,CAOA,GALAyM,EAAK5M,EAAS4M,GACdC,EAAK7M,EAAS6M,GACdhM,EAAKA,EAAGL,QAGJL,EAAIyM,EAAKC,EAAI,CAUf,IATI1M,EAAI,GACN0M,EAAKD,EACLF,EAAI3L,IAEJZ,GAAKA,EACLuM,EAAI7L,GAGN6L,EAAEnE,UACKpI,IAAKuM,EAAEtO,KAAK,IACnBsO,EAAEnE,SACJ,CAcA,KAZApI,EAAIU,EAAG9C,SACP6C,EAAIG,EAAGhD,QAGK,IACV2O,EAAI3L,EACJA,EAAKF,EACLA,EAAK6L,EACL9L,EAAIT,GAIDA,EAAI,EAAGS,GACVT,GAAKU,IAAKD,GAAKC,EAAGD,GAAKG,EAAGH,GAAKT,GAAKT,EAAO,EAC3CmB,EAAGD,GAAKlB,IAASmB,EAAGD,GAAK,EAAIC,EAAGD,GAAKlB,EAUvC,OAPIS,IACFU,EAAK,CAACV,GAAGwI,OAAO9H,KACdgM,GAKGpH,EAAU9E,EAAGE,EAAIgM,EAC1B,EAkBAnK,EAAE6K,UAAY7K,EAAEiD,GAAK,SAAUA,EAAIR,GACjC,IAAIrE,EAAGb,EAAGmE,EACR1D,EAAI8D,KAEN,GAAU,MAANmB,GAAcA,MAASA,EAKzB,OAJAxE,EAASwE,EAAI,EAAG5F,GACN,MAANoF,EAAYA,EAAKlC,EAChB9B,EAASgE,EAAI,EAAG,GAEdL,EAAM,IAAI7F,EAAUyB,GAAIiF,EAAIR,GAGrC,KAAMrE,EAAIJ,EAAEI,GAAI,OAAO,KAIvB,GAFAb,GADAmE,EAAItD,EAAE/C,OAAS,GACP4B,EAAW,EAEfyE,EAAItD,EAAEsD,GAAI,CAGZ,KAAOA,EAAI,IAAM,EAAGA,GAAK,GAAInE,KAG7B,IAAKmE,EAAItD,EAAE,GAAIsD,GAAK,GAAIA,GAAK,GAAInE,KACnC,CAIA,OAFI0F,GAAMjF,EAAEO,EAAI,EAAIhB,IAAGA,EAAIS,EAAEO,EAAI,GAE1BhB,CACT,EAWAyC,EAAE8K,UAAY,SAAUxM,GAEtB,OADAG,EAASH,GAAG,iBAAmBpB,GACxB4E,KAAKiH,MAAM,KAAOzK,EAC3B,EAcA0B,EAAE+K,WAAa/K,EAAEgL,KAAO,WACtB,IAAI5E,EAAG7I,EAAGM,EAAGoN,EAAKjB,EAChBhM,EAAI8D,KACJ1D,EAAIJ,EAAEI,EACNV,EAAIM,EAAEN,EACNa,EAAIP,EAAEO,EACN0G,EAAK3E,EAAiB,EACtBkI,EAAO,IAAIjM,EAAU,OAGvB,GAAU,IAANmB,IAAYU,IAAMA,EAAE,GACtB,OAAO,IAAI7B,GAAWmB,GAAKA,EAAI,KAAOU,GAAKA,EAAE,IAAMwJ,IAAMxJ,EAAIJ,EAAI,KA8BnE,GAtBS,IAJTN,EAAIhB,KAAKsO,MAAM5K,EAAQpC,MAITN,GAAK,OACjBH,EAAIC,EAAcY,IACX/C,OAASkD,GAAK,GAAK,IAAGhB,GAAK,KAClCG,EAAIhB,KAAKsO,MAAMzN,GACfgB,EAAIjB,GAAUiB,EAAI,GAAK,IAAMA,EAAI,GAAKA,EAAI,GAS1CV,EAAI,IAAItB,EANNgB,EADEG,GAAK,IACH,KAAOa,GAEXhB,EAAIG,EAAEqB,iBACAjB,MAAM,EAAGP,EAAErB,QAAQ,KAAO,GAAKqC,IAKvCV,EAAI,IAAItB,EAAUmB,EAAI,IAOpBG,EAAEO,EAAE,GAMN,KAJAV,GADAa,EAAIV,EAAEU,GACE0G,GACA,IAAGvH,EAAI,KAOb,GAHAsM,EAAInM,EACJA,EAAI2K,EAAKO,MAAMiB,EAAEzE,KAAKjG,EAAItB,EAAGgM,EAAG/E,EAAI,KAEhCzH,EAAcwM,EAAE5L,GAAGN,MAAM,EAAGJ,MAAQH,EAAIC,EAAcK,EAAEO,IAAIN,MAAM,EAAGJ,GAAI,CAW3E,GANIG,EAAEU,EAAIA,KAAKb,EAMN,SALTH,EAAIA,EAAEO,MAAMJ,EAAI,EAAGA,EAAI,MAKHuN,GAAY,QAAL1N,GAgBpB,EAICA,KAAOA,EAAEO,MAAM,IAAqB,KAAfP,EAAE0B,OAAO,MAGlCmD,EAAMvE,EAAGA,EAAEU,EAAI+B,EAAiB,EAAG,GACnC8F,GAAKvI,EAAEkL,MAAMlL,GAAGqL,GAAGlL,IAGrB,KACF,CAxBE,IAAKiN,IACH7I,EAAM4H,EAAGA,EAAEzL,EAAI+B,EAAiB,EAAG,GAE/B0J,EAAEjB,MAAMiB,GAAGd,GAAGlL,IAAI,CACpBH,EAAImM,EACJ,KACF,CAGF/E,GAAM,EACNvH,GAAK,EACLuN,EAAM,CAcV,CAIJ,OAAO7I,EAAMvE,EAAGA,EAAEU,EAAI+B,EAAiB,EAAGC,EAAe6F,EAC3D,EAYApG,EAAEjB,cAAgB,SAAUkG,EAAIxC,GAK9B,OAJU,MAANwC,IACFxG,EAASwG,EAAI,EAAG5H,GAChB4H,KAEKzC,EAAOV,KAAMmD,EAAIxC,EAAI,EAC9B,EAeAzC,EAAEkL,QAAU,SAAUjG,EAAIxC,GAKxB,OAJU,MAANwC,IACFxG,EAASwG,EAAI,EAAG5H,GAChB4H,EAAKA,EAAKnD,KAAKvD,EAAI,GAEdiE,EAAOV,KAAMmD,EAAIxC,EAC1B,EA4BAzC,EAAEmL,SAAW,SAAUlG,EAAIxC,EAAID,GAC7B,IAAIxD,EACFhB,EAAI8D,KAEN,GAAc,MAAVU,EACQ,MAANyC,GAAcxC,GAAmB,iBAANA,GAC7BD,EAASC,EACTA,EAAK,MACIwC,GAAmB,iBAANA,GACtBzC,EAASyC,EACTA,EAAKxC,EAAK,MAEVD,EAASzB,OAEN,GAAqB,iBAAVyB,EAChB,MAAMvG,MACHa,EAAiB,2BAA6B0F,GAKnD,GAFAxD,EAAMhB,EAAEkN,QAAQjG,EAAIxC,GAEhBzE,EAAEI,EAAG,CACP,IAAIzD,EACFC,EAAMoE,EAAIoM,MAAM,KAChBC,GAAM7I,EAAOvB,UACbqK,GAAM9I,EAAOtB,mBACbC,EAAiBqB,EAAOrB,gBAAkB,GAC1CoK,EAAU3Q,EAAI,GACd4Q,EAAe5Q,EAAI,GACnB6Q,EAAQzN,EAAEN,EAAI,EACdgO,EAAYD,EAAQF,EAAQzN,MAAM,GAAKyN,EACvCvQ,EAAM0Q,EAAUrQ,OASlB,GAPIiQ,IACF3Q,EAAI0Q,EACJA,EAAKC,EACLA,EAAK3Q,EACLK,GAAOL,GAGL0Q,EAAK,GAAKrQ,EAAM,EAAG,CAGrB,IAFAL,EAAIK,EAAMqQ,GAAMA,EAChBE,EAAUG,EAAUC,OAAO,EAAGhR,GACvBA,EAAIK,EAAKL,GAAK0Q,EAAIE,GAAWpK,EAAiBuK,EAAUC,OAAOhR,EAAG0Q,GACrEC,EAAK,IAAGC,GAAWpK,EAAiBuK,EAAU5N,MAAMnD,IACpD8Q,IAAOF,EAAU,IAAMA,EAC7B,CAEAvM,EAAMwM,EACHD,GAAW/I,EAAOpB,kBAAoB,MAAQkK,GAAM9I,EAAOnB,mBAC1DmK,EAAavJ,QAAQ,IAAI2J,OAAO,OAASN,EAAK,OAAQ,KACvD,MAAQ9I,EAAOlB,wBAA0B,KACxCkK,GACDD,CACL,CAEA,OAAQ/I,EAAOxB,QAAU,IAAMhC,GAAOwD,EAAOjB,QAAU,GACzD,EAcAvB,EAAE6L,WAAa,SAAUC,GACvB,IAAI5I,EAAG6I,EAAIC,EAAIC,EAAI1N,EAAG2N,EAAK3O,EAAG4O,EAAIC,EAAIlF,EAAGrJ,EAAGH,EAC1CM,EAAI8D,KACJ3D,EAAKH,EAAEI,EAET,GAAU,MAAN0N,MACFvO,EAAI,IAAIhB,EAAUuP,IAGXjD,cAAgBtL,EAAEa,GAAa,IAARb,EAAEG,IAAYH,EAAEkM,GAAGpJ,IAC/C,MAAMpE,MACHa,EAAiB,aACfS,EAAEsL,YAAc,iBAAmB,oBAAsBzI,EAAQ7C,IAI1E,IAAKY,EAAI,OAAO,IAAI5B,EAAUyB,GAoB9B,IAlBAkF,EAAI,IAAI3G,EAAU8D,GAClB+L,EAAKL,EAAK,IAAIxP,EAAU8D,GACxB2L,EAAKG,EAAK,IAAI5P,EAAU8D,GACxB3C,EAAIF,EAAcW,GAIlBI,EAAI2E,EAAE3E,EAAIb,EAAErC,OAAS2C,EAAEO,EAAI,EAC3B2E,EAAE9E,EAAE,GAAKjB,GAAU+O,EAAM3N,EAAItB,GAAY,EAAIA,EAAWiP,EAAMA,GAC9DJ,GAAMA,GAAMvO,EAAE2K,WAAWhF,GAAK,EAAK3E,EAAI,EAAI2E,EAAIkJ,EAAM7O,EAErD2O,EAAMvL,EACNA,EAAU,IACVpD,EAAI,IAAIhB,EAAUmB,GAGlByO,EAAG/N,EAAE,GAAK,EAGR8I,EAAI5H,EAAI/B,EAAG2F,EAAG,EAAG,GAEQ,IADzB+I,EAAKF,EAAGxG,KAAK2B,EAAE6B,MAAMiD,KACd9D,WAAW4D,IAClBC,EAAKC,EACLA,EAAKC,EACLG,EAAKD,EAAG5G,KAAK2B,EAAE6B,MAAMkD,EAAKG,IAC1BD,EAAKF,EACL/I,EAAI3F,EAAEwM,MAAM7C,EAAE6B,MAAMkD,EAAK/I,IACzB3F,EAAI0O,EAeN,OAZAA,EAAK3M,EAAIwM,EAAG/B,MAAMgC,GAAKC,EAAI,EAAG,GAC9BG,EAAKA,EAAG5G,KAAK0G,EAAGlD,MAAMqD,IACtBL,EAAKA,EAAGxG,KAAK0G,EAAGlD,MAAMiD,IACtBG,EAAGzO,EAAI0O,EAAG1O,EAAIM,EAAEN,EAIhBG,EAAIyB,EAAI8M,EAAIJ,EAHZzN,GAAQ,EAGWgC,GAAewJ,MAAM/L,GAAGiK,MAAMC,WAC7C5I,EAAI6M,EAAIJ,EAAIxN,EAAGgC,GAAewJ,MAAM/L,GAAGiK,OAAS,EAAI,CAACmE,EAAIJ,GAAM,CAACG,EAAIJ,GAExEpL,EAAUuL,EAEHrO,CACT,EAMAmC,EAAEqM,SAAW,WACX,OAAQjM,EAAQ0B,KAClB,EAcA9B,EAAEsM,YAAc,SAAUrJ,EAAIR,GAE5B,OADU,MAANQ,GAAYxE,EAASwE,EAAI,EAAG5F,GACzBmF,EAAOV,KAAMmB,EAAIR,EAAI,EAC9B,EAcAzC,EAAEG,SAAW,SAAUjC,GACrB,IAAIc,EACFzB,EAAIuE,KACJpE,EAAIH,EAAEG,EACNa,EAAIhB,EAAEgB,EA0BR,OAvBU,OAANA,EACEb,GACFsB,EAAM,WACFtB,EAAI,IAAGsB,EAAM,IAAMA,IAEvBA,EAAM,OAGC,MAALd,EACFc,EAAMT,GAAKiC,GAAcjC,GAAKkC,EAC3B1B,EAAcvB,EAAcD,EAAEa,GAAIG,GAClCW,EAAa1B,EAAcD,EAAEa,GAAIG,EAAG,KACxB,KAANL,GAAYuD,EAErBzC,EAAME,EAAa1B,GADnBD,EAAI6E,EAAM,IAAI7F,EAAUgB,GAAI+C,EAAiB/B,EAAI,EAAGgC,IACjBnC,GAAIb,EAAEgB,EAAG,MAE5CE,EAASP,EAAG,EAAGsD,EAASnG,OAAQ,QAChC2D,EAAMO,EAAYL,EAAa1B,EAAcD,EAAEa,GAAIG,EAAG,KAAM,GAAIL,EAAGR,GAAG,IAGpEA,EAAI,GAAKH,EAAEa,EAAE,KAAIY,EAAM,IAAMA,IAG5BA,CACT,EAOAgB,EAAEI,QAAUJ,EAAEuM,OAAS,WACrB,OAAOnM,EAAQ0B,KACjB,EAGA9B,EAAE+B,cAAe,EAEG,MAAhB1C,GAAsB9C,EAAU2H,IAAI7E,GAEjC9C,CACT,CAqIY6C,GACZ7C,EAAmB,QAAIA,EAAUA,UAAYA,OAIH,KAAxC,aAAqB,OAAOA,CAAY,+BAc3C,CAz2FA,E,uBCID,MAAMiQ,EAAO,EAAQ,KAKrB,SAASC,EAAS/K,EAAGjE,EAAGS,GACtB,MAAMwO,EAAKhL,EAAEjE,GAAKiE,EAAExD,GACpB,IAAIyO,EAAKjL,EAAEjE,EAAI,GAAKiE,EAAExD,EAAI,GACtBwO,GAAM,YACRC,IAEFjL,EAAEjE,GAAKiP,EACPhL,EAAEjE,EAAI,GAAKkP,CACb,CAKA,SAASC,EAASlL,EAAGjE,EAAGoP,EAAIC,GAC1B,IAAIJ,EAAKhL,EAAEjE,GAAKoP,EACZA,EAAK,IACPH,GAAM,YAER,IAAIC,EAAKjL,EAAEjE,EAAI,GAAKqP,EAChBJ,GAAM,YACRC,IAEFjL,EAAEjE,GAAKiP,EACPhL,EAAEjE,EAAI,GAAKkP,CACb,CAGA,SAASI,EAAWnS,EAAKD,GACvB,OAAOC,EAAID,GAAMC,EAAID,EAAI,IAAM,EAAMC,EAAID,EAAI,IAAM,GAAOC,EAAID,EAAI,IAAM,EAC1E,CAIA,SAASqS,EAAOvP,EAAGS,EAAGE,EAAG8E,EAAG+J,EAAIC,GAC9B,MAAMC,EAAK/G,EAAE6G,GACPG,EAAKhH,EAAE6G,EAAK,GACZI,EAAKjH,EAAE8G,GACPI,EAAKlH,EAAE8G,EAAK,GAElBT,EAAQ/K,EAAGjE,EAAGS,GACd0O,EAAQlL,EAAGjE,EAAG0P,EAAIC,GAGlB,IAAIG,EAAO7L,EAAEwB,GAAKxB,EAAEjE,GAChB+P,EAAO9L,EAAEwB,EAAI,GAAKxB,EAAEjE,EAAI,GAC5BiE,EAAEwB,GAAKsK,EACP9L,EAAEwB,EAAI,GAAKqK,EAEXd,EAAQ/K,EAAGtD,EAAG8E,GAGdqK,EAAO7L,EAAExD,GAAKwD,EAAEtD,GAChBoP,EAAO9L,EAAExD,EAAI,GAAKwD,EAAEtD,EAAI,GACxBsD,EAAExD,GAAMqP,IAAS,GAAOC,GAAQ,EAChC9L,EAAExD,EAAI,GAAMsP,IAAS,GAAOD,GAAQ,EAEpCd,EAAQ/K,EAAGjE,EAAGS,GACd0O,EAAQlL,EAAGjE,EAAG4P,EAAIC,GAGlBC,EAAO7L,EAAEwB,GAAKxB,EAAEjE,GAChB+P,EAAO9L,EAAEwB,EAAI,GAAKxB,EAAEjE,EAAI,GACxBiE,EAAEwB,GAAMqK,IAAS,GAAOC,GAAQ,GAChC9L,EAAEwB,EAAI,GAAMsK,IAAS,GAAOD,GAAQ,GAEpCd,EAAQ/K,EAAGtD,EAAG8E,GAGdqK,EAAO7L,EAAExD,GAAKwD,EAAEtD,GAChBoP,EAAO9L,EAAExD,EAAI,GAAKwD,EAAEtD,EAAI,GACxBsD,EAAExD,GAAMsP,IAAS,GAAOD,GAAQ,EAChC7L,EAAExD,EAAI,GAAMqP,IAAS,GAAOC,GAAQ,CACtC,CAGA,MAAMC,EAAe,IAAItI,YAAY,CACnC,WAAY,WAAY,WAAY,WAAY,WAAY,WAC5D,WAAY,WAAY,WAAY,WAAY,UAAY,WAC5D,WAAY,UAAY,UAAY,aAkBhCuI,EAAU,IAAI5R,WAfL,CACb,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAC3E,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAC1E,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC3E,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EACzE,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,EAC5E,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAC1E,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAC1E,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,EAC5E,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAOhB6R,KAAI,SAAU3P,GACnB,OAAW,EAAJA,CACT,KAKI0D,EAAI,IAAIyD,YAAY,IACpBiB,EAAI,IAAIjB,YAAY,IAC1B,SAASyI,EAAiBC,EAAKC,GAC7B,IAAInT,EAAI,EAGR,IAAKA,EAAI,EAAGA,EAAI,GAAIA,IAClB+G,EAAE/G,GAAKkT,EAAIE,EAAEpT,GACb+G,EAAE/G,EAAI,IAAM8S,EAAa9S,GAe3B,IAXA+G,EAAE,IAAMA,EAAE,IAAMmM,EAAI7D,EACpBtI,EAAE,IAAMA,EAAE,IAAOmM,EAAI7D,EAAI,WAIrB8D,IACFpM,EAAE,KAAOA,EAAE,IACXA,EAAE,KAAOA,EAAE,KAIR/G,EAAI,EAAGA,EAAI,GAAIA,IAClByL,EAAEzL,GAAKoS,EAAUc,EAAI3P,EAAG,EAAIvD,GAO9B,IAAKA,EAAI,EAAGA,EAAI,GAAIA,IAElBqS,EAAM,EAAG,EAAG,GAAI,GAAIU,EAAY,GAAJ/S,EAAS,GAAI+S,EAAY,GAAJ/S,EAAS,IAC1DqS,EAAM,EAAG,GAAI,GAAI,GAAIU,EAAY,GAAJ/S,EAAS,GAAI+S,EAAY,GAAJ/S,EAAS,IAC3DqS,EAAM,EAAG,GAAI,GAAI,GAAIU,EAAY,GAAJ/S,EAAS,GAAI+S,EAAY,GAAJ/S,EAAS,IAC3DqS,EAAM,EAAG,GAAI,GAAI,GAAIU,EAAY,GAAJ/S,EAAS,GAAI+S,EAAY,GAAJ/S,EAAS,IAC3DqS,EAAM,EAAG,GAAI,GAAI,GAAIU,EAAY,GAAJ/S,EAAS,GAAI+S,EAAY,GAAJ/S,EAAS,IAC3DqS,EAAM,EAAG,GAAI,GAAI,GAAIU,EAAY,GAAJ/S,EAAS,IAAK+S,EAAY,GAAJ/S,EAAS,KAC5DqS,EAAM,EAAG,GAAI,GAAI,GAAIU,EAAY,GAAJ/S,EAAS,IAAK+S,EAAY,GAAJ/S,EAAS,KAC5DqS,EAAM,EAAG,EAAG,GAAI,GAAIU,EAAY,GAAJ/S,EAAS,IAAK+S,EAAY,GAAJ/S,EAAS,KAI7D,IAAKA,EAAI,EAAGA,EAAI,GAAIA,IAClBkT,EAAIE,EAAEpT,GAAKkT,EAAIE,EAAEpT,GAAK+G,EAAE/G,GAAK+G,EAAE/G,EAAI,GAGvC,CAGA,MAAMqT,EAAiB,IAAIlS,WAAW,CACpC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IAQF,SAASmS,EAAaC,EAAQC,EAAKC,EAAMC,GACvC,GAAe,IAAXH,GAAgBA,EAAS,GAC3B,MAAM,IAAIjS,MAAM,oDAElB,GAAIkS,GAAOA,EAAI9S,OAAS,GACtB,MAAM,IAAIY,MAAM,0DAElB,GAAImS,GAAwB,KAAhBA,EAAK/S,OACf,MAAM,IAAIY,MAAM,uDAElB,GAAIoS,GAAgC,KAApBA,EAAShT,OACvB,MAAM,IAAIY,MAAM,2DAIlB,MAAM4R,EAAM,CACV3P,EAAG,IAAIpC,WAAW,KAClBiS,EAAG,IAAI5I,YAAY,IACnB6E,EAAG,EACH5L,EAAG,EACH8P,OAAQA,GAIVF,EAAeM,KAAK,GACpBN,EAAe,GAAKE,EAChBC,IAAKH,EAAe,GAAKG,EAAI9S,QACjC2S,EAAe,GAAK,EACpBA,EAAe,GAAK,EAChBI,GAAMJ,EAAe9J,IAAIkK,EAAM,IAC/BC,GAAUL,EAAe9J,IAAImK,EAAU,IAG3C,IAAK,IAAI1T,EAAI,EAAGA,EAAI,GAAIA,IACtBkT,EAAIE,EAAEpT,GAAK8S,EAAa9S,GAAKoS,EAAUiB,EAAoB,EAAJrT,GAUzD,OANIwT,IACFI,EAAcV,EAAKM,GAEnBN,EAAIzP,EAAI,KAGHyP,CACT,CAIA,SAASU,EAAeV,EAAKW,GAC3B,IAAK,IAAI7T,EAAI,EAAGA,EAAI6T,EAAMnT,OAAQV,IAClB,MAAVkT,EAAIzP,IAENyP,EAAI7D,GAAK6D,EAAIzP,EACbwP,EAAgBC,GAAK,GACrBA,EAAIzP,EAAI,GAEVyP,EAAI3P,EAAE2P,EAAIzP,KAAOoQ,EAAM7T,EAE3B,CAIA,SAAS8T,EAAcZ,GAGrB,IAFAA,EAAI7D,GAAK6D,EAAIzP,EAENyP,EAAIzP,EAAI,KAEbyP,EAAI3P,EAAE2P,EAAIzP,KAAO,EAEnBwP,EAAgBC,GAAK,GAGrB,MAAMvK,EAAM,IAAIxH,WAAW+R,EAAIK,QAC/B,IAAK,IAAIvT,EAAI,EAAGA,EAAIkT,EAAIK,OAAQvT,IAC9B2I,EAAI3I,GAAKkT,EAAIE,EAAEpT,GAAK,IAAO,GAAS,EAAJA,GAElC,OAAO2I,CACT,CAYA,SAASoL,EAASF,EAAOL,EAAKD,EAAQE,EAAMC,GAE1CH,EAASA,GAAU,GACnBM,EAAQhC,EAAKmC,eAAeH,GACxBJ,IACFA,EAAO5B,EAAKmC,eAAeP,IAEzBC,IACFA,EAAW7B,EAAKmC,eAAeN,IAIjC,MAAMR,EAAMI,EAAYC,EAAQC,EAAKC,EAAMC,GAE3C,OADAE,EAAcV,EAAKW,GACZC,EAAaZ,EACtB,CAiBA9T,EAAOD,QAAU,CACf4U,QAASA,EACTE,WAPF,SAAqBJ,EAAOL,EAAKD,EAAQE,EAAMC,GAC7C,MAAM/R,EAASoS,EAAQF,EAAOL,EAAKD,EAAQE,EAAMC,GACjD,OAAO7B,EAAKqC,MAAMvS,EACpB,EAKE2R,YAAaA,EACbM,cAAeA,EACfE,aAAcA,E,kBChVhB,SAASK,EAAaC,GACpB,OAAQ,WAAcA,GAAK5O,SAAS,IAAIgC,UAAU,EACpD,CAiDApI,EAAOD,QAAU,CACf6U,eA5EF,SAAyBH,GACvB,IAAIQ,EACJ,GAAIR,aAAiB1S,WACnBkT,EAAMR,MACD,IAAqB,iBAAVA,EAIhB,MAAM,IAAIvS,MAXU,iDASpB+S,GADgB,IAAIC,aACNC,OAAOV,EAGvB,CACA,OAAOQ,CACT,EAkEEH,MA9DF,SAAgBM,GACd,OAAOpT,MAAMkE,UAAU0N,IACpB/I,KAAKuK,GAAO,SAAU5R,GACrB,OAAQA,EAAI,GAAK,IAAM,IAAMA,EAAE4C,SAAS,GAC1C,IACCtE,KAAK,GACV,EAyDEuT,WAhDF,SAAqBC,EAAOzU,EAAK0U,GAC/B,IAAIC,EAAM,KAAOF,EAAQ,MACzB,IAAK,IAAI1U,EAAI,EAAGA,EAAIC,EAAIS,OAAQV,GAAK,EAAG,CACtC,GAAa,KAAT2U,EACFC,GAAOT,EAAYlU,EAAID,IAAI2H,cAC3BiN,GAAO,IACPA,GAAOT,EAAYlU,EAAID,EAAI,IAAI2H,kBAC1B,IAAa,KAATgN,EAGJ,MAAM,IAAIrT,MAAM,gBAAkBqT,GAFvCC,GAAOT,EAAYlU,EAAID,EAAI,IAAI2H,cAC/BiN,GAAOT,EAAYlU,EAAID,IAAI2H,aACgB,CACzC3H,EAAI,GAAM,EACZ4U,GAAO,KAAO,IAAIxT,MAAMsT,EAAMhU,OAAS,GAAGQ,KAAK,KACtClB,EAAIC,EAAIS,OAAS,IAC1BkU,GAAO,IAEX,CACAC,QAAQC,IAAIF,EACd,EA+BEG,UA3BF,SAAoBC,EAAQC,EAAGC,GAC7B,IAAIC,GAAU,IAAIC,MAAOC,UAEzB,MAAMxB,EAAQ,IAAI1S,WAAW8T,GAC7B,IAAK,IAAIjV,EAAI,EAAGA,EAAIiV,EAAGjV,IACrB6T,EAAM7T,GAAKA,EAAI,IAEjB,MAAMsV,GAAQ,IAAIF,MAAOC,UACzBR,QAAQC,IAAI,8BAAgCQ,EAAQH,GAAW,MAC/DA,EAAUG,EAEV,IAAK,IAAItV,EAAI,EAAGA,EAAIkV,EAAGlV,IAAK,CAC1B,MAAMuV,EAAUP,EAAOnB,GACjB2B,GAAS,IAAIJ,MAAOC,UACpBI,EAAKD,EAASL,EACpBA,EAAUK,EACVX,QAAQC,IAAI,aAAeW,EAAK,OAASF,EAAQ/N,UAAU,EAAG,IAAM,OACpEqN,QAAQC,IACN/S,KAAK0F,MAAOwN,GAAK,GAAK,KAAOQ,EAAK,KAAS,KAAO,IAAM,iBAE5D,CACF,E,oCClEA,MAAMC,EAAS,EAAQ,MACjBC,EAAU,EAAQ,KAClBC,EACe,mBAAXC,QAAkD,mBAAlBA,OAAY,IAChDA,OAAY,IAAE,8BACd,KAEN1W,EAAQ2W,OAASA,EACjB3W,EAAQ4W,WAyTR,SAAqBrV,GAInB,OAHKA,GAAUA,IACbA,EAAS,GAEJoV,EAAOE,OAAOtV,EACvB,EA7TAvB,EAAQ8W,kBAAoB,GAE5B,MAAMC,EAAe,WAwDrB,SAASC,EAAczV,GACrB,GAAIA,EAASwV,EACX,MAAM,IAAIE,WAAW,cAAgB1V,EAAS,kCAGhD,MAAM2V,EAAM,IAAIlV,WAAWT,GAE3B,OADA4V,OAAOC,eAAeF,EAAKP,EAAOxQ,WAC3B+Q,CACT,CAYA,SAASP,EAAQU,EAAKC,EAAkB/V,GAEtC,GAAmB,iBAAR8V,EAAkB,CAC3B,GAAgC,iBAArBC,EACT,MAAM,IAAIC,UACR,sEAGJ,OAAOC,EAAYH,EACrB,CACA,OAAOI,EAAKJ,EAAKC,EAAkB/V,EACrC,CAIA,SAASkW,EAAMC,EAAOJ,EAAkB/V,GACtC,GAAqB,iBAAVmW,EACT,OAqHJ,SAAqBC,EAAQC,GAK3B,GAJwB,iBAAbA,GAAsC,KAAbA,IAClCA,EAAW,SAGRjB,EAAOkB,WAAWD,GACrB,MAAM,IAAIL,UAAU,qBAAuBK,GAG7C,MAAMrW,EAAwC,EAA/BlB,EAAWsX,EAAQC,GAClC,IAAIV,EAAMF,EAAazV,GAEvB,MAAMuW,EAASZ,EAAIa,MAAMJ,EAAQC,GASjC,OAPIE,IAAWvW,IAIb2V,EAAMA,EAAIlT,MAAM,EAAG8T,IAGdZ,CACT,CA3IWc,CAAWN,EAAOJ,GAG3B,GAAIW,YAAYC,OAAOR,GACrB,OAkJJ,SAAwBS,GACtB,GAAIC,EAAWD,EAAWnW,YAAa,CACrC,MAAMsJ,EAAO,IAAItJ,WAAWmW,GAC5B,OAAOE,EAAgB/M,EAAKgN,OAAQhN,EAAKiN,WAAYjN,EAAKjL,WAC5D,CACA,OAAOmY,EAAcL,EACvB,CAxJWM,CAAcf,GAGvB,GAAa,MAATA,EACF,MAAM,IAAIH,UACR,yHACiDG,GAIrD,GAAIU,EAAWV,EAAOO,cACjBP,GAASU,EAAWV,EAAMY,OAAQL,aACrC,OAAOI,EAAgBX,EAAOJ,EAAkB/V,GAGlD,GAAiC,oBAAtBmX,oBACNN,EAAWV,EAAOgB,oBAClBhB,GAASU,EAAWV,EAAMY,OAAQI,oBACrC,OAAOL,EAAgBX,EAAOJ,EAAkB/V,GAGlD,GAAqB,iBAAVmW,EACT,MAAM,IAAIH,UACR,yEAIJ,MAAMjR,EAAUoR,EAAMpR,SAAWoR,EAAMpR,UACvC,GAAe,MAAXA,GAAmBA,IAAYoR,EACjC,OAAOf,EAAOc,KAAKnR,EAASgR,EAAkB/V,GAGhD,MAAM6C,EAkJR,SAAqBiG,GACnB,GAAIsM,EAAOgC,SAAStO,GAAM,CACxB,MAAMnJ,EAA4B,EAAtB0X,EAAQvO,EAAI9I,QAClB2V,EAAMF,EAAa9V,GAEzB,OAAmB,IAAfgW,EAAI3V,QAIR8I,EAAIiB,KAAK4L,EAAK,EAAG,EAAGhW,GAHXgW,CAKX,CAEA,YAAmB2B,IAAfxO,EAAI9I,OACoB,iBAAf8I,EAAI9I,QAAuBuX,EAAYzO,EAAI9I,QAC7CyV,EAAa,GAEfwB,EAAcnO,GAGN,WAAbA,EAAI0O,MAAqB9W,MAAM+W,QAAQ3O,EAAI4O,MACtCT,EAAcnO,EAAI4O,WAD3B,CAGF,CAzKYC,CAAWxB,GACrB,GAAItT,EAAG,OAAOA,EAEd,GAAsB,oBAAXsS,QAAgD,MAAtBA,OAAOyC,aACH,mBAA9BzB,EAAMhB,OAAOyC,aACtB,OAAOxC,EAAOc,KAAKC,EAAMhB,OAAOyC,aAAa,UAAW7B,EAAkB/V,GAG5E,MAAM,IAAIgW,UACR,yHACiDG,EAErD,CAmBA,SAAS0B,EAAY5D,GACnB,GAAoB,iBAATA,EACT,MAAM,IAAI+B,UAAU,0CACf,GAAI/B,EAAO,EAChB,MAAM,IAAIyB,WAAW,cAAgBzB,EAAO,iCAEhD,CA0BA,SAASgC,EAAahC,GAEpB,OADA4D,EAAW5D,GACJwB,EAAaxB,EAAO,EAAI,EAAoB,EAAhBoD,EAAQpD,GAC7C,CAuCA,SAASgD,EAAea,GACtB,MAAM9X,EAAS8X,EAAM9X,OAAS,EAAI,EAA4B,EAAxBqX,EAAQS,EAAM9X,QAC9C2V,EAAMF,EAAazV,GACzB,IAAK,IAAIV,EAAI,EAAGA,EAAIU,EAAQV,GAAK,EAC/BqW,EAAIrW,GAAgB,IAAXwY,EAAMxY,GAEjB,OAAOqW,CACT,CAUA,SAASmB,EAAiBgB,EAAOd,EAAYhX,GAC3C,GAAIgX,EAAa,GAAKc,EAAMhZ,WAAakY,EACvC,MAAM,IAAItB,WAAW,wCAGvB,GAAIoC,EAAMhZ,WAAakY,GAAchX,GAAU,GAC7C,MAAM,IAAI0V,WAAW,wCAGvB,IAAIC,EAYJ,OAVEA,OADiB2B,IAAfN,QAAuCM,IAAXtX,EACxB,IAAIS,WAAWqX,QACDR,IAAXtX,EACH,IAAIS,WAAWqX,EAAOd,GAEtB,IAAIvW,WAAWqX,EAAOd,EAAYhX,GAI1C4V,OAAOC,eAAeF,EAAKP,EAAOxQ,WAE3B+Q,CACT,CA2BA,SAAS0B,EAASrX,GAGhB,GAAIA,GAAUwV,EACZ,MAAM,IAAIE,WAAW,0DACaF,EAAa1Q,SAAS,IAAM,UAEhE,OAAgB,EAAT9E,CACT,CAsGA,SAASlB,EAAYsX,EAAQC,GAC3B,GAAIjB,EAAOgC,SAAShB,GAClB,OAAOA,EAAOpW,OAEhB,GAAI0W,YAAYC,OAAOP,IAAWS,EAAWT,EAAQM,aACnD,OAAON,EAAOtX,WAEhB,GAAsB,iBAAXsX,EACT,MAAM,IAAIJ,UACR,kGAC0BI,GAI9B,MAAMzW,EAAMyW,EAAOpW,OACb+X,EAAatO,UAAUzJ,OAAS,IAAsB,IAAjByJ,UAAU,GACrD,IAAKsO,GAAqB,IAARpY,EAAW,OAAO,EAGpC,IAAIqY,GAAc,EAClB,OACE,OAAQ3B,GACN,IAAK,QACL,IAAK,SACL,IAAK,SACH,OAAO1W,EACT,IAAK,OACL,IAAK,QACH,OAAOsY,EAAY7B,GAAQpW,OAC7B,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAa,EAANL,EACT,IAAK,MACH,OAAOA,IAAQ,EACjB,IAAK,SACH,OAAOuY,EAAc9B,GAAQpW,OAC/B,QACE,GAAIgY,EACF,OAAOD,GAAa,EAAIE,EAAY7B,GAAQpW,OAE9CqW,GAAY,GAAKA,GAAUnP,cAC3B8Q,GAAc,EAGtB,CAGA,SAASG,EAAc9B,EAAUvV,EAAOC,GACtC,IAAIiX,GAAc,EAclB,SALcV,IAAVxW,GAAuBA,EAAQ,KACjCA,EAAQ,GAINA,EAAQ2F,KAAKzG,OACf,MAAO,GAOT,SAJYsX,IAARvW,GAAqBA,EAAM0F,KAAKzG,UAClCe,EAAM0F,KAAKzG,QAGTe,GAAO,EACT,MAAO,GAOT,IAHAA,KAAS,KACTD,KAAW,GAGT,MAAO,GAKT,IAFKuV,IAAUA,EAAW,UAGxB,OAAQA,GACN,IAAK,MACH,OAAO+B,EAAS3R,KAAM3F,EAAOC,GAE/B,IAAK,OACL,IAAK,QACH,OAAOsX,EAAU5R,KAAM3F,EAAOC,GAEhC,IAAK,QACH,OAAOuX,EAAW7R,KAAM3F,EAAOC,GAEjC,IAAK,SACL,IAAK,SACH,OAAOwX,EAAY9R,KAAM3F,EAAOC,GAElC,IAAK,SACH,OAAOyX,EAAY/R,KAAM3F,EAAOC,GAElC,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAO0X,EAAahS,KAAM3F,EAAOC,GAEnC,QACE,GAAIiX,EAAa,MAAM,IAAIhC,UAAU,qBAAuBK,GAC5DA,GAAYA,EAAW,IAAInP,cAC3B8Q,GAAc,EAGtB,CAUA,SAASU,EAAM7V,EAAGX,EAAG6I,GACnB,MAAMzL,EAAIuD,EAAEX,GACZW,EAAEX,GAAKW,EAAEkI,GACTlI,EAAEkI,GAAKzL,CACT,CA2IA,SAASqZ,EAAsB5B,EAAQrD,EAAKsD,EAAYX,EAAUuC,GAEhE,GAAsB,IAAlB7B,EAAO/W,OAAc,OAAQ,EAmBjC,GAhB0B,iBAAfgX,GACTX,EAAWW,EACXA,EAAa,GACJA,EAAa,WACtBA,EAAa,WACJA,GAAc,aACvBA,GAAc,YAGZO,EADJP,GAAcA,KAGZA,EAAa4B,EAAM,EAAK7B,EAAO/W,OAAS,GAItCgX,EAAa,IAAGA,EAAaD,EAAO/W,OAASgX,GAC7CA,GAAcD,EAAO/W,OAAQ,CAC/B,GAAI4Y,EAAK,OAAQ,EACZ5B,EAAaD,EAAO/W,OAAS,CACpC,MAAO,GAAIgX,EAAa,EAAG,CACzB,IAAI4B,EACC,OAAQ,EADJ5B,EAAa,CAExB,CAQA,GALmB,iBAARtD,IACTA,EAAM0B,EAAOc,KAAKxC,EAAK2C,IAIrBjB,EAAOgC,SAAS1D,GAElB,OAAmB,IAAfA,EAAI1T,QACE,EAEH6Y,EAAa9B,EAAQrD,EAAKsD,EAAYX,EAAUuC,GAClD,GAAmB,iBAARlF,EAEhB,OADAA,GAAY,IACgC,mBAAjCjT,WAAWmE,UAAU/D,QAC1B+X,EACKnY,WAAWmE,UAAU/D,QAAQ0I,KAAKwN,EAAQrD,EAAKsD,GAE/CvW,WAAWmE,UAAUkU,YAAYvP,KAAKwN,EAAQrD,EAAKsD,GAGvD6B,EAAa9B,EAAQ,CAACrD,GAAMsD,EAAYX,EAAUuC,GAG3D,MAAM,IAAI5C,UAAU,uCACtB,CAEA,SAAS6C,EAActZ,EAAKmU,EAAKsD,EAAYX,EAAUuC,GACrD,IA0BItZ,EA1BAyZ,EAAY,EACZC,EAAYzZ,EAAIS,OAChBiZ,EAAYvF,EAAI1T,OAEpB,QAAiBsX,IAAbjB,IAEe,UADjBA,EAAW7S,OAAO6S,GAAUnP,gBACY,UAAbmP,GACV,YAAbA,GAAuC,aAAbA,GAAyB,CACrD,GAAI9W,EAAIS,OAAS,GAAK0T,EAAI1T,OAAS,EACjC,OAAQ,EAEV+Y,EAAY,EACZC,GAAa,EACbC,GAAa,EACbjC,GAAc,CAChB,CAGF,SAASkC,EAAMvD,EAAKrW,GAClB,OAAkB,IAAdyZ,EACKpD,EAAIrW,GAEJqW,EAAIwD,aAAa7Z,EAAIyZ,EAEhC,CAGA,GAAIH,EAAK,CACP,IAAIQ,GAAc,EAClB,IAAK9Z,EAAI0X,EAAY1X,EAAI0Z,EAAW1Z,IAClC,GAAI4Z,EAAK3Z,EAAKD,KAAO4Z,EAAKxF,GAAqB,IAAhB0F,EAAoB,EAAI9Z,EAAI8Z,IAEzD,IADoB,IAAhBA,IAAmBA,EAAa9Z,GAChCA,EAAI8Z,EAAa,IAAMH,EAAW,OAAOG,EAAaL,OAEtC,IAAhBK,IAAmB9Z,GAAKA,EAAI8Z,GAChCA,GAAc,CAGpB,MAEE,IADIpC,EAAaiC,EAAYD,IAAWhC,EAAagC,EAAYC,GAC5D3Z,EAAI0X,EAAY1X,GAAK,EAAGA,IAAK,CAChC,IAAI+Z,GAAQ,EACZ,IAAK,IAAI9W,EAAI,EAAGA,EAAI0W,EAAW1W,IAC7B,GAAI2W,EAAK3Z,EAAKD,EAAIiD,KAAO2W,EAAKxF,EAAKnR,GAAI,CACrC8W,GAAQ,EACR,KACF,CAEF,GAAIA,EAAO,OAAO/Z,CACpB,CAGF,OAAQ,CACV,CAcA,SAASga,EAAU3D,EAAKS,EAAQmD,EAAQvZ,GACtCuZ,EAASC,OAAOD,IAAW,EAC3B,MAAME,EAAY9D,EAAI3V,OAASuZ,EAC1BvZ,GAGHA,EAASwZ,OAAOxZ,IACHyZ,IACXzZ,EAASyZ,GAJXzZ,EAASyZ,EAQX,MAAMC,EAAStD,EAAOpW,OAKtB,IAAIV,EACJ,IAJIU,EAAS0Z,EAAS,IACpB1Z,EAAS0Z,EAAS,GAGfpa,EAAI,EAAGA,EAAIU,IAAUV,EAAG,CAC3B,MAAMqa,EAASC,SAASxD,EAAO9F,OAAW,EAAJhR,EAAO,GAAI,IACjD,GAAIiY,EAAYoC,GAAS,OAAOra,EAChCqW,EAAI4D,EAASja,GAAKqa,CACpB,CACA,OAAOra,CACT,CAEA,SAASua,EAAWlE,EAAKS,EAAQmD,EAAQvZ,GACvC,OAAO8Z,EAAW7B,EAAY7B,EAAQT,EAAI3V,OAASuZ,GAAS5D,EAAK4D,EAAQvZ,EAC3E,CAEA,SAAS+Z,EAAYpE,EAAKS,EAAQmD,EAAQvZ,GACxC,OAAO8Z,EAypCT,SAAuBnW,GACrB,MAAMqW,EAAY,GAClB,IAAK,IAAI1a,EAAI,EAAGA,EAAIqE,EAAI3D,SAAUV,EAEhC0a,EAAU3Z,KAAyB,IAApBsD,EAAI9D,WAAWP,IAEhC,OAAO0a,CACT,CAhqCoBC,CAAa7D,GAAST,EAAK4D,EAAQvZ,EACvD,CAEA,SAASka,EAAavE,EAAKS,EAAQmD,EAAQvZ,GACzC,OAAO8Z,EAAW5B,EAAc9B,GAAST,EAAK4D,EAAQvZ,EACxD,CAEA,SAASma,EAAWxE,EAAKS,EAAQmD,EAAQvZ,GACvC,OAAO8Z,EA0pCT,SAAyBnW,EAAKyW,GAC5B,IAAIrX,EAAGsX,EAAIC,EACX,MAAMN,EAAY,GAClB,IAAK,IAAI1a,EAAI,EAAGA,EAAIqE,EAAI3D,WACjBoa,GAAS,GAAK,KADa9a,EAGhCyD,EAAIY,EAAI9D,WAAWP,GACnB+a,EAAKtX,GAAK,EACVuX,EAAKvX,EAAI,IACTiX,EAAU3Z,KAAKia,GACfN,EAAU3Z,KAAKga,GAGjB,OAAOL,CACT,CAxqCoBO,CAAenE,EAAQT,EAAI3V,OAASuZ,GAAS5D,EAAK4D,EAAQvZ,EAC9E,CA8EA,SAASwY,EAAa7C,EAAK7U,EAAOC,GAChC,OAAc,IAAVD,GAAeC,IAAQ4U,EAAI3V,OACtBgV,EAAOlV,cAAc6V,GAErBX,EAAOlV,cAAc6V,EAAIlT,MAAM3B,EAAOC,GAEjD,CAEA,SAASsX,EAAW1C,EAAK7U,EAAOC,GAC9BA,EAAMM,KAAKgC,IAAIsS,EAAI3V,OAAQe,GAC3B,MAAMyZ,EAAM,GAEZ,IAAIlb,EAAIwB,EACR,KAAOxB,EAAIyB,GAAK,CACd,MAAM0Z,EAAY9E,EAAIrW,GACtB,IAAIob,EAAY,KACZC,EAAoBF,EAAY,IAChC,EACCA,EAAY,IACT,EACCA,EAAY,IACT,EACA,EAEZ,GAAInb,EAAIqb,GAAoB5Z,EAAK,CAC/B,IAAI6Z,EAAYC,EAAWC,EAAYC,EAEvC,OAAQJ,GACN,KAAK,EACCF,EAAY,MACdC,EAAYD,GAEd,MACF,KAAK,EACHG,EAAajF,EAAIrW,EAAI,GACO,MAAV,IAAbsb,KACHG,GAA6B,GAAZN,IAAqB,EAAoB,GAAbG,EACzCG,EAAgB,MAClBL,EAAYK,IAGhB,MACF,KAAK,EACHH,EAAajF,EAAIrW,EAAI,GACrBub,EAAYlF,EAAIrW,EAAI,GACQ,MAAV,IAAbsb,IAAsD,MAAV,IAAZC,KACnCE,GAA6B,GAAZN,IAAoB,IAAoB,GAAbG,IAAsB,EAAmB,GAAZC,EACrEE,EAAgB,OAAUA,EAAgB,OAAUA,EAAgB,SACtEL,EAAYK,IAGhB,MACF,KAAK,EACHH,EAAajF,EAAIrW,EAAI,GACrBub,EAAYlF,EAAIrW,EAAI,GACpBwb,EAAanF,EAAIrW,EAAI,GACO,MAAV,IAAbsb,IAAsD,MAAV,IAAZC,IAAsD,MAAV,IAAbC,KAClEC,GAA6B,GAAZN,IAAoB,IAAqB,GAAbG,IAAsB,IAAmB,GAAZC,IAAqB,EAAoB,GAAbC,EAClGC,EAAgB,OAAUA,EAAgB,UAC5CL,EAAYK,IAItB,CAEkB,OAAdL,GAGFA,EAAY,MACZC,EAAmB,GACVD,EAAY,QAErBA,GAAa,MACbF,EAAIna,KAAKqa,IAAc,GAAK,KAAQ,OACpCA,EAAY,MAAqB,KAAZA,GAGvBF,EAAIna,KAAKqa,GACTpb,GAAKqb,CACP,CAEA,OAQF,SAAgCK,GAC9B,MAAMrb,EAAMqb,EAAWhb,OACvB,GAAIL,GAAOsb,EACT,OAAOzX,OAAO0X,aAAaC,MAAM3X,OAAQwX,GAI3C,IAAIR,EAAM,GACNlb,EAAI,EACR,KAAOA,EAAIK,GACT6a,GAAOhX,OAAO0X,aAAaC,MACzB3X,OACAwX,EAAWvY,MAAMnD,EAAGA,GAAK2b,IAG7B,OAAOT,CACT,CAxBSY,CAAsBZ,EAC/B,CA3+BA/b,EAAQ4c,WAAa7F,EAgBrBJ,EAAOkG,oBAUP,WAEE,IACE,MAAM/b,EAAM,IAAIkB,WAAW,GACrB8a,EAAQ,CAAEC,IAAK,WAAc,OAAO,EAAG,GAG7C,OAFA5F,OAAOC,eAAe0F,EAAO9a,WAAWmE,WACxCgR,OAAOC,eAAetW,EAAKgc,GACN,KAAdhc,EAAIic,KACb,CAAE,MAAOtY,GACP,OAAO,CACT,CACF,CArB6BuY,GAExBrG,EAAOkG,qBAA0C,oBAAZnH,SACb,mBAAlBA,QAAQuH,OACjBvH,QAAQuH,MACN,iJAkBJ9F,OAAO+F,eAAevG,EAAOxQ,UAAW,SAAU,CAChDgX,YAAY,EACZC,IAAK,WACH,GAAKzG,EAAOgC,SAAS3Q,MACrB,OAAOA,KAAKsQ,MACd,IAGFnB,OAAO+F,eAAevG,EAAOxQ,UAAW,SAAU,CAChDgX,YAAY,EACZC,IAAK,WACH,GAAKzG,EAAOgC,SAAS3Q,MACrB,OAAOA,KAAKuQ,UACd,IAoCF5B,EAAO0G,SAAW,KA8DlB1G,EAAOc,KAAO,SAAUC,EAAOJ,EAAkB/V,GAC/C,OAAOkW,EAAKC,EAAOJ,EAAkB/V,EACvC,EAIA4V,OAAOC,eAAeT,EAAOxQ,UAAWnE,WAAWmE,WACnDgR,OAAOC,eAAeT,EAAQ3U,YA8B9B2U,EAAOE,MAAQ,SAAUrB,EAAMhB,EAAMoD,GACnC,OArBF,SAAgBpC,EAAMhB,EAAMoD,GAE1B,OADAwB,EAAW5D,GACPA,GAAQ,EACHwB,EAAaxB,QAETqD,IAATrE,EAIyB,iBAAboD,EACVZ,EAAaxB,GAAMhB,KAAKA,EAAMoD,GAC9BZ,EAAaxB,GAAMhB,KAAKA,GAEvBwC,EAAaxB,EACtB,CAOSqB,CAAMrB,EAAMhB,EAAMoD,EAC3B,EAUAjB,EAAOa,YAAc,SAAUhC,GAC7B,OAAOgC,EAAYhC,EACrB,EAIAmB,EAAO2G,gBAAkB,SAAU9H,GACjC,OAAOgC,EAAYhC,EACrB,EA6GAmB,EAAOgC,SAAW,SAAmBvU,GACnC,OAAY,MAALA,IAA6B,IAAhBA,EAAEmZ,WACpBnZ,IAAMuS,EAAOxQ,SACjB,EAEAwQ,EAAO1S,QAAU,SAAkBN,EAAGS,GAGpC,GAFIgU,EAAWzU,EAAG3B,cAAa2B,EAAIgT,EAAOc,KAAK9T,EAAGA,EAAEmX,OAAQnX,EAAEtD,aAC1D+X,EAAWhU,EAAGpC,cAAaoC,EAAIuS,EAAOc,KAAKrT,EAAGA,EAAE0W,OAAQ1W,EAAE/D,cACzDsW,EAAOgC,SAAShV,KAAOgT,EAAOgC,SAASvU,GAC1C,MAAM,IAAImT,UACR,yEAIJ,GAAI5T,IAAMS,EAAG,OAAO,EAEpB,IAAIF,EAAIP,EAAEpC,OACN4C,EAAIC,EAAE7C,OAEV,IAAK,IAAIV,EAAI,EAAGK,EAAM0B,KAAKgC,IAAIV,EAAGC,GAAItD,EAAIK,IAAOL,EAC/C,GAAI8C,EAAE9C,KAAOuD,EAAEvD,GAAI,CACjBqD,EAAIP,EAAE9C,GACNsD,EAAIC,EAAEvD,GACN,KACF,CAGF,OAAIqD,EAAIC,GAAW,EACfA,EAAID,EAAU,EACX,CACT,EAEAyS,EAAOkB,WAAa,SAAqBD,GACvC,OAAQ7S,OAAO6S,GAAUnP,eACvB,IAAK,MACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAO,EACT,QACE,OAAO,EAEb,EAEAkO,EAAOxK,OAAS,SAAiBqR,EAAMjc,GACrC,IAAKU,MAAM+W,QAAQwE,GACjB,MAAM,IAAIjG,UAAU,+CAGtB,GAAoB,IAAhBiG,EAAKjc,OACP,OAAOoV,EAAOE,MAAM,GAGtB,IAAIhW,EACJ,QAAegY,IAAXtX,EAEF,IADAA,EAAS,EACJV,EAAI,EAAGA,EAAI2c,EAAKjc,SAAUV,EAC7BU,GAAUic,EAAK3c,GAAGU,OAItB,MAAM+W,EAAS3B,EAAOa,YAAYjW,GAClC,IAAIkc,EAAM,EACV,IAAK5c,EAAI,EAAGA,EAAI2c,EAAKjc,SAAUV,EAAG,CAChC,IAAIqW,EAAMsG,EAAK3c,GACf,GAAIuX,EAAWlB,EAAKlV,YACdyb,EAAMvG,EAAI3V,OAAS+W,EAAO/W,QACvBoV,EAAOgC,SAASzB,KAAMA,EAAMP,EAAOc,KAAKP,IAC7CA,EAAI5L,KAAKgN,EAAQmF,IAEjBzb,WAAWmE,UAAUiE,IAAIU,KACvBwN,EACApB,EACAuG,OAGC,KAAK9G,EAAOgC,SAASzB,GAC1B,MAAM,IAAIK,UAAU,+CAEpBL,EAAI5L,KAAKgN,EAAQmF,EACnB,CACAA,GAAOvG,EAAI3V,MACb,CACA,OAAO+W,CACT,EAiDA3B,EAAOtW,WAAaA,EA8EpBsW,EAAOxQ,UAAUoX,WAAY,EAQ7B5G,EAAOxQ,UAAUuX,OAAS,WACxB,MAAMxc,EAAM8G,KAAKzG,OACjB,GAAIL,EAAM,GAAM,EACd,MAAM,IAAI+V,WAAW,6CAEvB,IAAK,IAAIpW,EAAI,EAAGA,EAAIK,EAAKL,GAAK,EAC5BoZ,EAAKjS,KAAMnH,EAAGA,EAAI,GAEpB,OAAOmH,IACT,EAEA2O,EAAOxQ,UAAUwX,OAAS,WACxB,MAAMzc,EAAM8G,KAAKzG,OACjB,GAAIL,EAAM,GAAM,EACd,MAAM,IAAI+V,WAAW,6CAEvB,IAAK,IAAIpW,EAAI,EAAGA,EAAIK,EAAKL,GAAK,EAC5BoZ,EAAKjS,KAAMnH,EAAGA,EAAI,GAClBoZ,EAAKjS,KAAMnH,EAAI,EAAGA,EAAI,GAExB,OAAOmH,IACT,EAEA2O,EAAOxQ,UAAUyX,OAAS,WACxB,MAAM1c,EAAM8G,KAAKzG,OACjB,GAAIL,EAAM,GAAM,EACd,MAAM,IAAI+V,WAAW,6CAEvB,IAAK,IAAIpW,EAAI,EAAGA,EAAIK,EAAKL,GAAK,EAC5BoZ,EAAKjS,KAAMnH,EAAGA,EAAI,GAClBoZ,EAAKjS,KAAMnH,EAAI,EAAGA,EAAI,GACtBoZ,EAAKjS,KAAMnH,EAAI,EAAGA,EAAI,GACtBoZ,EAAKjS,KAAMnH,EAAI,EAAGA,EAAI,GAExB,OAAOmH,IACT,EAEA2O,EAAOxQ,UAAUE,SAAW,WAC1B,MAAM9E,EAASyG,KAAKzG,OACpB,OAAe,IAAXA,EAAqB,GACA,IAArByJ,UAAUzJ,OAAqBqY,EAAU5R,KAAM,EAAGzG,GAC/CmY,EAAagD,MAAM1U,KAAMgD,UAClC,EAEA2L,EAAOxQ,UAAU0X,eAAiBlH,EAAOxQ,UAAUE,SAEnDsQ,EAAOxQ,UAAU2X,OAAS,SAAiB1Z,GACzC,IAAKuS,EAAOgC,SAASvU,GAAI,MAAM,IAAImT,UAAU,6BAC7C,OAAIvP,OAAS5D,GACsB,IAA5BuS,EAAO1S,QAAQ+D,KAAM5D,EAC9B,EAEAuS,EAAOxQ,UAAU4X,QAAU,WACzB,IAAI7Y,EAAM,GACV,MAAML,EAAM7E,EAAQ8W,kBAGpB,OAFA5R,EAAM8C,KAAK3B,SAAS,MAAO,EAAGxB,GAAKsD,QAAQ,UAAW,OAAO6V,OACzDhW,KAAKzG,OAASsD,IAAKK,GAAO,SACvB,WAAaA,EAAM,GAC5B,EACIuR,IACFE,EAAOxQ,UAAUsQ,GAAuBE,EAAOxQ,UAAU4X,SAG3DpH,EAAOxQ,UAAUlC,QAAU,SAAkBga,EAAQ5b,EAAOC,EAAK4b,EAAWC,GAI1E,GAHI/F,EAAW6F,EAAQjc,cACrBic,EAAStH,EAAOc,KAAKwG,EAAQA,EAAOnD,OAAQmD,EAAO5d,cAEhDsW,EAAOgC,SAASsF,GACnB,MAAM,IAAI1G,UACR,wFAC2B0G,GAiB/B,QAbcpF,IAAVxW,IACFA,EAAQ,QAEEwW,IAARvW,IACFA,EAAM2b,EAASA,EAAO1c,OAAS,QAEfsX,IAAdqF,IACFA,EAAY,QAEErF,IAAZsF,IACFA,EAAUnW,KAAKzG,QAGbc,EAAQ,GAAKC,EAAM2b,EAAO1c,QAAU2c,EAAY,GAAKC,EAAUnW,KAAKzG,OACtE,MAAM,IAAI0V,WAAW,sBAGvB,GAAIiH,GAAaC,GAAW9b,GAASC,EACnC,OAAO,EAET,GAAI4b,GAAaC,EACf,OAAQ,EAEV,GAAI9b,GAASC,EACX,OAAO,EAQT,GAAI0F,OAASiW,EAAQ,OAAO,EAE5B,IAAI/Z,GAJJia,KAAa,IADbD,KAAe,GAMX/Z,GAPJ7B,KAAS,IADTD,KAAW,GASX,MAAMnB,EAAM0B,KAAKgC,IAAIV,EAAGC,GAElBia,EAAWpW,KAAKhE,MAAMka,EAAWC,GACjCE,EAAaJ,EAAOja,MAAM3B,EAAOC,GAEvC,IAAK,IAAIzB,EAAI,EAAGA,EAAIK,IAAOL,EACzB,GAAIud,EAASvd,KAAOwd,EAAWxd,GAAI,CACjCqD,EAAIka,EAASvd,GACbsD,EAAIka,EAAWxd,GACf,KACF,CAGF,OAAIqD,EAAIC,GAAW,EACfA,EAAID,EAAU,EACX,CACT,EA2HAyS,EAAOxQ,UAAUmY,SAAW,SAAmBrJ,EAAKsD,EAAYX,GAC9D,OAAoD,IAA7C5P,KAAK5F,QAAQ6S,EAAKsD,EAAYX,EACvC,EAEAjB,EAAOxQ,UAAU/D,QAAU,SAAkB6S,EAAKsD,EAAYX,GAC5D,OAAOsC,EAAqBlS,KAAMiN,EAAKsD,EAAYX,GAAU,EAC/D,EAEAjB,EAAOxQ,UAAUkU,YAAc,SAAsBpF,EAAKsD,EAAYX,GACpE,OAAOsC,EAAqBlS,KAAMiN,EAAKsD,EAAYX,GAAU,EAC/D,EA4CAjB,EAAOxQ,UAAU4R,MAAQ,SAAgBJ,EAAQmD,EAAQvZ,EAAQqW,GAE/D,QAAeiB,IAAXiC,EACFlD,EAAW,OACXrW,EAASyG,KAAKzG,OACduZ,EAAS,OAEJ,QAAejC,IAAXtX,GAA0C,iBAAXuZ,EACxClD,EAAWkD,EACXvZ,EAASyG,KAAKzG,OACduZ,EAAS,MAEJ,KAAIzL,SAASyL,GAUlB,MAAM,IAAI3Y,MACR,2EAVF2Y,KAAoB,EAChBzL,SAAS9N,IACXA,KAAoB,OACHsX,IAAbjB,IAAwBA,EAAW,UAEvCA,EAAWrW,EACXA,OAASsX,EAMb,CAEA,MAAMmC,EAAYhT,KAAKzG,OAASuZ,EAGhC,SAFejC,IAAXtX,GAAwBA,EAASyZ,KAAWzZ,EAASyZ,GAEpDrD,EAAOpW,OAAS,IAAMA,EAAS,GAAKuZ,EAAS,IAAOA,EAAS9S,KAAKzG,OACrE,MAAM,IAAI0V,WAAW,0CAGlBW,IAAUA,EAAW,QAE1B,IAAI2B,GAAc,EAClB,OACE,OAAQ3B,GACN,IAAK,MACH,OAAOiD,EAAS7S,KAAM2P,EAAQmD,EAAQvZ,GAExC,IAAK,OACL,IAAK,QACH,OAAO6Z,EAAUpT,KAAM2P,EAAQmD,EAAQvZ,GAEzC,IAAK,QACL,IAAK,SACL,IAAK,SACH,OAAO+Z,EAAWtT,KAAM2P,EAAQmD,EAAQvZ,GAE1C,IAAK,SAEH,OAAOka,EAAYzT,KAAM2P,EAAQmD,EAAQvZ,GAE3C,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAOma,EAAU1T,KAAM2P,EAAQmD,EAAQvZ,GAEzC,QACE,GAAIgY,EAAa,MAAM,IAAIhC,UAAU,qBAAuBK,GAC5DA,GAAY,GAAKA,GAAUnP,cAC3B8Q,GAAc,EAGtB,EAEA5C,EAAOxQ,UAAUsM,OAAS,WACxB,MAAO,CACLsG,KAAM,SACNE,KAAMhX,MAAMkE,UAAUnC,MAAM8G,KAAK9C,KAAKuW,MAAQvW,KAAM,GAExD,EAyFA,MAAMwU,EAAuB,KAoB7B,SAAS3C,EAAY3C,EAAK7U,EAAOC,GAC/B,IAAI4S,EAAM,GACV5S,EAAMM,KAAKgC,IAAIsS,EAAI3V,OAAQe,GAE3B,IAAK,IAAIzB,EAAIwB,EAAOxB,EAAIyB,IAAOzB,EAC7BqU,GAAOnQ,OAAO0X,aAAsB,IAATvF,EAAIrW,IAEjC,OAAOqU,CACT,CAEA,SAAS4E,EAAa5C,EAAK7U,EAAOC,GAChC,IAAI4S,EAAM,GACV5S,EAAMM,KAAKgC,IAAIsS,EAAI3V,OAAQe,GAE3B,IAAK,IAAIzB,EAAIwB,EAAOxB,EAAIyB,IAAOzB,EAC7BqU,GAAOnQ,OAAO0X,aAAavF,EAAIrW,IAEjC,OAAOqU,CACT,CAEA,SAASyE,EAAUzC,EAAK7U,EAAOC,GAC7B,MAAMpB,EAAMgW,EAAI3V,SAEXc,GAASA,EAAQ,KAAGA,EAAQ,KAC5BC,GAAOA,EAAM,GAAKA,EAAMpB,KAAKoB,EAAMpB,GAExC,IAAIsI,EAAM,GACV,IAAK,IAAI3I,EAAIwB,EAAOxB,EAAIyB,IAAOzB,EAC7B2I,GAAOgV,EAAoBtH,EAAIrW,IAEjC,OAAO2I,CACT,CAEA,SAASwQ,EAAc9C,EAAK7U,EAAOC,GACjC,MAAM+S,EAAQ6B,EAAIlT,MAAM3B,EAAOC,GAC/B,IAAIyZ,EAAM,GAEV,IAAK,IAAIlb,EAAI,EAAGA,EAAIwU,EAAM9T,OAAS,EAAGV,GAAK,EACzCkb,GAAOhX,OAAO0X,aAAapH,EAAMxU,GAAqB,IAAfwU,EAAMxU,EAAI,IAEnD,OAAOkb,CACT,CAiCA,SAAS0C,EAAa3D,EAAQ4D,EAAKnd,GACjC,GAAKuZ,EAAS,GAAO,GAAKA,EAAS,EAAG,MAAM,IAAI7D,WAAW,sBAC3D,GAAI6D,EAAS4D,EAAMnd,EAAQ,MAAM,IAAI0V,WAAW,wCAClD,CAyQA,SAAS0H,EAAUzH,EAAKQ,EAAOoD,EAAQ4D,EAAK7Z,EAAKD,GAC/C,IAAK+R,EAAOgC,SAASzB,GAAM,MAAM,IAAIK,UAAU,+CAC/C,GAAIG,EAAQ7S,GAAO6S,EAAQ9S,EAAK,MAAM,IAAIqS,WAAW,qCACrD,GAAI6D,EAAS4D,EAAMxH,EAAI3V,OAAQ,MAAM,IAAI0V,WAAW,qBACtD,CA+FA,SAAS2H,EAAgB1H,EAAKQ,EAAOoD,EAAQlW,EAAKC,GAChDga,EAAWnH,EAAO9S,EAAKC,EAAKqS,EAAK4D,EAAQ,GAEzC,IAAIe,EAAKd,OAAOrD,EAAQoH,OAAO,aAC/B5H,EAAI4D,KAAYe,EAChBA,IAAW,EACX3E,EAAI4D,KAAYe,EAChBA,IAAW,EACX3E,EAAI4D,KAAYe,EAChBA,IAAW,EACX3E,EAAI4D,KAAYe,EAChB,IAAID,EAAKb,OAAOrD,GAASoH,OAAO,IAAMA,OAAO,aAQ7C,OAPA5H,EAAI4D,KAAYc,EAChBA,IAAW,EACX1E,EAAI4D,KAAYc,EAChBA,IAAW,EACX1E,EAAI4D,KAAYc,EAChBA,IAAW,EACX1E,EAAI4D,KAAYc,EACTd,CACT,CAEA,SAASiE,EAAgB7H,EAAKQ,EAAOoD,EAAQlW,EAAKC,GAChDga,EAAWnH,EAAO9S,EAAKC,EAAKqS,EAAK4D,EAAQ,GAEzC,IAAIe,EAAKd,OAAOrD,EAAQoH,OAAO,aAC/B5H,EAAI4D,EAAS,GAAKe,EAClBA,IAAW,EACX3E,EAAI4D,EAAS,GAAKe,EAClBA,IAAW,EACX3E,EAAI4D,EAAS,GAAKe,EAClBA,IAAW,EACX3E,EAAI4D,EAAS,GAAKe,EAClB,IAAID,EAAKb,OAAOrD,GAASoH,OAAO,IAAMA,OAAO,aAQ7C,OAPA5H,EAAI4D,EAAS,GAAKc,EAClBA,IAAW,EACX1E,EAAI4D,EAAS,GAAKc,EAClBA,IAAW,EACX1E,EAAI4D,EAAS,GAAKc,EAClBA,IAAW,EACX1E,EAAI4D,GAAUc,EACPd,EAAS,CAClB,CAkHA,SAASkE,EAAc9H,EAAKQ,EAAOoD,EAAQ4D,EAAK7Z,EAAKD,GACnD,GAAIkW,EAAS4D,EAAMxH,EAAI3V,OAAQ,MAAM,IAAI0V,WAAW,sBACpD,GAAI6D,EAAS,EAAG,MAAM,IAAI7D,WAAW,qBACvC,CAEA,SAASgI,EAAY/H,EAAKQ,EAAOoD,EAAQoE,EAAcC,GAOrD,OANAzH,GAASA,EACToD,KAAoB,EACfqE,GACHH,EAAa9H,EAAKQ,EAAOoD,EAAQ,GAEnCtE,EAAQuB,MAAMb,EAAKQ,EAAOoD,EAAQoE,EAAc,GAAI,GAC7CpE,EAAS,CAClB,CAUA,SAASsE,EAAalI,EAAKQ,EAAOoD,EAAQoE,EAAcC,GAOtD,OANAzH,GAASA,EACToD,KAAoB,EACfqE,GACHH,EAAa9H,EAAKQ,EAAOoD,EAAQ,GAEnCtE,EAAQuB,MAAMb,EAAKQ,EAAOoD,EAAQoE,EAAc,GAAI,GAC7CpE,EAAS,CAClB,CAzkBAnE,EAAOxQ,UAAUnC,MAAQ,SAAgB3B,EAAOC,GAC9C,MAAMpB,EAAM8G,KAAKzG,QACjBc,IAAUA,GAGE,GACVA,GAASnB,GACG,IAAGmB,EAAQ,GACdA,EAAQnB,IACjBmB,EAAQnB,IANVoB,OAAcuW,IAARvW,EAAoBpB,IAAQoB,GASxB,GACRA,GAAOpB,GACG,IAAGoB,EAAM,GACVA,EAAMpB,IACfoB,EAAMpB,GAGJoB,EAAMD,IAAOC,EAAMD,GAEvB,MAAMgd,EAASrX,KAAKsX,SAASjd,EAAOC,GAIpC,OAFA6U,OAAOC,eAAeiI,EAAQ1I,EAAOxQ,WAE9BkZ,CACT,EAUA1I,EAAOxQ,UAAUoZ,WACjB5I,EAAOxQ,UAAUqZ,WAAa,SAAqB1E,EAAQza,EAAY8e,GACrErE,KAAoB,EACpBza,KAA4B,EACvB8e,GAAUV,EAAY3D,EAAQza,EAAY2H,KAAKzG,QAEpD,IAAI0T,EAAMjN,KAAK8S,GACX2E,EAAM,EACN5e,EAAI,EACR,OAASA,EAAIR,IAAeof,GAAO,MACjCxK,GAAOjN,KAAK8S,EAASja,GAAK4e,EAG5B,OAAOxK,CACT,EAEA0B,EAAOxQ,UAAUuZ,WACjB/I,EAAOxQ,UAAUwZ,WAAa,SAAqB7E,EAAQza,EAAY8e,GACrErE,KAAoB,EACpBza,KAA4B,EACvB8e,GACHV,EAAY3D,EAAQza,EAAY2H,KAAKzG,QAGvC,IAAI0T,EAAMjN,KAAK8S,IAAWza,GACtBof,EAAM,EACV,KAAOpf,EAAa,IAAMof,GAAO,MAC/BxK,GAAOjN,KAAK8S,IAAWza,GAAcof,EAGvC,OAAOxK,CACT,EAEA0B,EAAOxQ,UAAUyZ,UACjBjJ,EAAOxQ,UAAU0Z,UAAY,SAAoB/E,EAAQqE,GAGvD,OAFArE,KAAoB,EACfqE,GAAUV,EAAY3D,EAAQ,EAAG9S,KAAKzG,QACpCyG,KAAK8S,EACd,EAEAnE,EAAOxQ,UAAU2Z,aACjBnJ,EAAOxQ,UAAU4Z,aAAe,SAAuBjF,EAAQqE,GAG7D,OAFArE,KAAoB,EACfqE,GAAUV,EAAY3D,EAAQ,EAAG9S,KAAKzG,QACpCyG,KAAK8S,GAAW9S,KAAK8S,EAAS,IAAM,CAC7C,EAEAnE,EAAOxQ,UAAU6Z,aACjBrJ,EAAOxQ,UAAUuU,aAAe,SAAuBI,EAAQqE,GAG7D,OAFArE,KAAoB,EACfqE,GAAUV,EAAY3D,EAAQ,EAAG9S,KAAKzG,QACnCyG,KAAK8S,IAAW,EAAK9S,KAAK8S,EAAS,EAC7C,EAEAnE,EAAOxQ,UAAU8Z,aACjBtJ,EAAOxQ,UAAU+Z,aAAe,SAAuBpF,EAAQqE,GAI7D,OAHArE,KAAoB,EACfqE,GAAUV,EAAY3D,EAAQ,EAAG9S,KAAKzG,SAElCyG,KAAK8S,GACT9S,KAAK8S,EAAS,IAAM,EACpB9S,KAAK8S,EAAS,IAAM,IACD,SAAnB9S,KAAK8S,EAAS,EACrB,EAEAnE,EAAOxQ,UAAUga,aACjBxJ,EAAOxQ,UAAUia,aAAe,SAAuBtF,EAAQqE,GAI7D,OAHArE,KAAoB,EACfqE,GAAUV,EAAY3D,EAAQ,EAAG9S,KAAKzG,QAEpB,SAAfyG,KAAK8S,IACT9S,KAAK8S,EAAS,IAAM,GACrB9S,KAAK8S,EAAS,IAAM,EACrB9S,KAAK8S,EAAS,GAClB,EAEAnE,EAAOxQ,UAAUka,gBAAkBC,GAAmB,SAA0BxF,GAE9EyF,EADAzF,KAAoB,EACG,UACvB,MAAM0F,EAAQxY,KAAK8S,GACb9G,EAAOhM,KAAK8S,EAAS,QACbjC,IAAV2H,QAAgC3H,IAAT7E,GACzByM,EAAY3F,EAAQ9S,KAAKzG,OAAS,GAGpC,MAAMsa,EAAK2E,EACQ,IAAjBxY,OAAO8S,GACU,MAAjB9S,OAAO8S,GACP9S,OAAO8S,GAAU,GAAK,GAElBc,EAAK5T,OAAO8S,GACC,IAAjB9S,OAAO8S,GACU,MAAjB9S,OAAO8S,GACP9G,EAAO,GAAK,GAEd,OAAO8K,OAAOjD,IAAOiD,OAAOlD,IAAOkD,OAAO,IAC5C,IAEAnI,EAAOxQ,UAAUua,gBAAkBJ,GAAmB,SAA0BxF,GAE9EyF,EADAzF,KAAoB,EACG,UACvB,MAAM0F,EAAQxY,KAAK8S,GACb9G,EAAOhM,KAAK8S,EAAS,QACbjC,IAAV2H,QAAgC3H,IAAT7E,GACzByM,EAAY3F,EAAQ9S,KAAKzG,OAAS,GAGpC,MAAMqa,EAAK4E,EAAQ,GAAK,GACL,MAAjBxY,OAAO8S,GACU,IAAjB9S,OAAO8S,GACP9S,OAAO8S,GAEHe,EAAK7T,OAAO8S,GAAU,GAAK,GACd,MAAjB9S,OAAO8S,GACU,IAAjB9S,OAAO8S,GACP9G,EAEF,OAAQ8K,OAAOlD,IAAOkD,OAAO,KAAOA,OAAOjD,EAC7C,IAEAlF,EAAOxQ,UAAUwa,UAAY,SAAoB7F,EAAQza,EAAY8e,GACnErE,KAAoB,EACpBza,KAA4B,EACvB8e,GAAUV,EAAY3D,EAAQza,EAAY2H,KAAKzG,QAEpD,IAAI0T,EAAMjN,KAAK8S,GACX2E,EAAM,EACN5e,EAAI,EACR,OAASA,EAAIR,IAAeof,GAAO,MACjCxK,GAAOjN,KAAK8S,EAASja,GAAK4e,EAM5B,OAJAA,GAAO,IAEHxK,GAAOwK,IAAKxK,GAAOrS,KAAKsJ,IAAI,EAAG,EAAI7L,IAEhC4U,CACT,EAEA0B,EAAOxQ,UAAUya,UAAY,SAAoB9F,EAAQza,EAAY8e,GACnErE,KAAoB,EACpBza,KAA4B,EACvB8e,GAAUV,EAAY3D,EAAQza,EAAY2H,KAAKzG,QAEpD,IAAIV,EAAIR,EACJof,EAAM,EACNxK,EAAMjN,KAAK8S,IAAWja,GAC1B,KAAOA,EAAI,IAAM4e,GAAO,MACtBxK,GAAOjN,KAAK8S,IAAWja,GAAK4e,EAM9B,OAJAA,GAAO,IAEHxK,GAAOwK,IAAKxK,GAAOrS,KAAKsJ,IAAI,EAAG,EAAI7L,IAEhC4U,CACT,EAEA0B,EAAOxQ,UAAU0a,SAAW,SAAmB/F,EAAQqE,GAGrD,OAFArE,KAAoB,EACfqE,GAAUV,EAAY3D,EAAQ,EAAG9S,KAAKzG,QACtB,IAAfyG,KAAK8S,IAC0B,GAA5B,IAAO9S,KAAK8S,GAAU,GADK9S,KAAK8S,EAE3C,EAEAnE,EAAOxQ,UAAU2a,YAAc,SAAsBhG,EAAQqE,GAC3DrE,KAAoB,EACfqE,GAAUV,EAAY3D,EAAQ,EAAG9S,KAAKzG,QAC3C,MAAM0T,EAAMjN,KAAK8S,GAAW9S,KAAK8S,EAAS,IAAM,EAChD,OAAc,MAAN7F,EAAsB,WAANA,EAAmBA,CAC7C,EAEA0B,EAAOxQ,UAAU4a,YAAc,SAAsBjG,EAAQqE,GAC3DrE,KAAoB,EACfqE,GAAUV,EAAY3D,EAAQ,EAAG9S,KAAKzG,QAC3C,MAAM0T,EAAMjN,KAAK8S,EAAS,GAAM9S,KAAK8S,IAAW,EAChD,OAAc,MAAN7F,EAAsB,WAANA,EAAmBA,CAC7C,EAEA0B,EAAOxQ,UAAU6a,YAAc,SAAsBlG,EAAQqE,GAI3D,OAHArE,KAAoB,EACfqE,GAAUV,EAAY3D,EAAQ,EAAG9S,KAAKzG,QAEnCyG,KAAK8S,GACV9S,KAAK8S,EAAS,IAAM,EACpB9S,KAAK8S,EAAS,IAAM,GACpB9S,KAAK8S,EAAS,IAAM,EACzB,EAEAnE,EAAOxQ,UAAU8a,YAAc,SAAsBnG,EAAQqE,GAI3D,OAHArE,KAAoB,EACfqE,GAAUV,EAAY3D,EAAQ,EAAG9S,KAAKzG,QAEnCyG,KAAK8S,IAAW,GACrB9S,KAAK8S,EAAS,IAAM,GACpB9S,KAAK8S,EAAS,IAAM,EACpB9S,KAAK8S,EAAS,EACnB,EAEAnE,EAAOxQ,UAAU+a,eAAiBZ,GAAmB,SAAyBxF,GAE5EyF,EADAzF,KAAoB,EACG,UACvB,MAAM0F,EAAQxY,KAAK8S,GACb9G,EAAOhM,KAAK8S,EAAS,QACbjC,IAAV2H,QAAgC3H,IAAT7E,GACzByM,EAAY3F,EAAQ9S,KAAKzG,OAAS,GAGpC,MAAM0T,EAAMjN,KAAK8S,EAAS,GACL,IAAnB9S,KAAK8S,EAAS,GACK,MAAnB9S,KAAK8S,EAAS,IACb9G,GAAQ,IAEX,OAAQ8K,OAAO7J,IAAQ6J,OAAO,KAC5BA,OAAO0B,EACU,IAAjBxY,OAAO8S,GACU,MAAjB9S,OAAO8S,GACP9S,OAAO8S,GAAU,GAAK,GAC1B,IAEAnE,EAAOxQ,UAAUgb,eAAiBb,GAAmB,SAAyBxF,GAE5EyF,EADAzF,KAAoB,EACG,UACvB,MAAM0F,EAAQxY,KAAK8S,GACb9G,EAAOhM,KAAK8S,EAAS,QACbjC,IAAV2H,QAAgC3H,IAAT7E,GACzByM,EAAY3F,EAAQ9S,KAAKzG,OAAS,GAGpC,MAAM0T,GAAOuL,GAAS,IACH,MAAjBxY,OAAO8S,GACU,IAAjB9S,OAAO8S,GACP9S,OAAO8S,GAET,OAAQgE,OAAO7J,IAAQ6J,OAAO,KAC5BA,OAAO9W,OAAO8S,GAAU,GAAK,GACZ,MAAjB9S,OAAO8S,GACU,IAAjB9S,OAAO8S,GACP9G,EACJ,IAEA2C,EAAOxQ,UAAUib,YAAc,SAAsBtG,EAAQqE,GAG3D,OAFArE,KAAoB,EACfqE,GAAUV,EAAY3D,EAAQ,EAAG9S,KAAKzG,QACpCiV,EAAQiE,KAAKzS,KAAM8S,GAAQ,EAAM,GAAI,EAC9C,EAEAnE,EAAOxQ,UAAUkb,YAAc,SAAsBvG,EAAQqE,GAG3D,OAFArE,KAAoB,EACfqE,GAAUV,EAAY3D,EAAQ,EAAG9S,KAAKzG,QACpCiV,EAAQiE,KAAKzS,KAAM8S,GAAQ,EAAO,GAAI,EAC/C,EAEAnE,EAAOxQ,UAAUmb,aAAe,SAAuBxG,EAAQqE,GAG7D,OAFArE,KAAoB,EACfqE,GAAUV,EAAY3D,EAAQ,EAAG9S,KAAKzG,QACpCiV,EAAQiE,KAAKzS,KAAM8S,GAAQ,EAAM,GAAI,EAC9C,EAEAnE,EAAOxQ,UAAUob,aAAe,SAAuBzG,EAAQqE,GAG7D,OAFArE,KAAoB,EACfqE,GAAUV,EAAY3D,EAAQ,EAAG9S,KAAKzG,QACpCiV,EAAQiE,KAAKzS,KAAM8S,GAAQ,EAAO,GAAI,EAC/C,EAQAnE,EAAOxQ,UAAUqb,YACjB7K,EAAOxQ,UAAUsb,YAAc,SAAsB/J,EAAOoD,EAAQza,EAAY8e,GAC9EzH,GAASA,EACToD,KAAoB,EACpBza,KAA4B,EACvB8e,GAEHR,EAAS3W,KAAM0P,EAAOoD,EAAQza,EADbuC,KAAKsJ,IAAI,EAAG,EAAI7L,GAAc,EACK,GAGtD,IAAIof,EAAM,EACN5e,EAAI,EAER,IADAmH,KAAK8S,GAAkB,IAARpD,IACN7W,EAAIR,IAAeof,GAAO,MACjCzX,KAAK8S,EAASja,GAAM6W,EAAQ+H,EAAO,IAGrC,OAAO3E,EAASza,CAClB,EAEAsW,EAAOxQ,UAAUub,YACjB/K,EAAOxQ,UAAUwb,YAAc,SAAsBjK,EAAOoD,EAAQza,EAAY8e,GAC9EzH,GAASA,EACToD,KAAoB,EACpBza,KAA4B,EACvB8e,GAEHR,EAAS3W,KAAM0P,EAAOoD,EAAQza,EADbuC,KAAKsJ,IAAI,EAAG,EAAI7L,GAAc,EACK,GAGtD,IAAIQ,EAAIR,EAAa,EACjBof,EAAM,EAEV,IADAzX,KAAK8S,EAASja,GAAa,IAAR6W,IACV7W,GAAK,IAAM4e,GAAO,MACzBzX,KAAK8S,EAASja,GAAM6W,EAAQ+H,EAAO,IAGrC,OAAO3E,EAASza,CAClB,EAEAsW,EAAOxQ,UAAUyb,WACjBjL,EAAOxQ,UAAU0b,WAAa,SAAqBnK,EAAOoD,EAAQqE,GAKhE,OAJAzH,GAASA,EACToD,KAAoB,EACfqE,GAAUR,EAAS3W,KAAM0P,EAAOoD,EAAQ,EAAG,IAAM,GACtD9S,KAAK8S,GAAmB,IAARpD,EACToD,EAAS,CAClB,EAEAnE,EAAOxQ,UAAU2b,cACjBnL,EAAOxQ,UAAU4b,cAAgB,SAAwBrK,EAAOoD,EAAQqE,GAMtE,OALAzH,GAASA,EACToD,KAAoB,EACfqE,GAAUR,EAAS3W,KAAM0P,EAAOoD,EAAQ,EAAG,MAAQ,GACxD9S,KAAK8S,GAAmB,IAARpD,EAChB1P,KAAK8S,EAAS,GAAMpD,IAAU,EACvBoD,EAAS,CAClB,EAEAnE,EAAOxQ,UAAU6b,cACjBrL,EAAOxQ,UAAU8b,cAAgB,SAAwBvK,EAAOoD,EAAQqE,GAMtE,OALAzH,GAASA,EACToD,KAAoB,EACfqE,GAAUR,EAAS3W,KAAM0P,EAAOoD,EAAQ,EAAG,MAAQ,GACxD9S,KAAK8S,GAAWpD,IAAU,EAC1B1P,KAAK8S,EAAS,GAAc,IAARpD,EACboD,EAAS,CAClB,EAEAnE,EAAOxQ,UAAU+b,cACjBvL,EAAOxQ,UAAUgc,cAAgB,SAAwBzK,EAAOoD,EAAQqE,GAQtE,OAPAzH,GAASA,EACToD,KAAoB,EACfqE,GAAUR,EAAS3W,KAAM0P,EAAOoD,EAAQ,EAAG,WAAY,GAC5D9S,KAAK8S,EAAS,GAAMpD,IAAU,GAC9B1P,KAAK8S,EAAS,GAAMpD,IAAU,GAC9B1P,KAAK8S,EAAS,GAAMpD,IAAU,EAC9B1P,KAAK8S,GAAmB,IAARpD,EACToD,EAAS,CAClB,EAEAnE,EAAOxQ,UAAUic,cACjBzL,EAAOxQ,UAAUkc,cAAgB,SAAwB3K,EAAOoD,EAAQqE,GAQtE,OAPAzH,GAASA,EACToD,KAAoB,EACfqE,GAAUR,EAAS3W,KAAM0P,EAAOoD,EAAQ,EAAG,WAAY,GAC5D9S,KAAK8S,GAAWpD,IAAU,GAC1B1P,KAAK8S,EAAS,GAAMpD,IAAU,GAC9B1P,KAAK8S,EAAS,GAAMpD,IAAU,EAC9B1P,KAAK8S,EAAS,GAAc,IAARpD,EACboD,EAAS,CAClB,EA8CAnE,EAAOxQ,UAAUmc,iBAAmBhC,GAAmB,SAA2B5I,EAAOoD,EAAS,GAChG,OAAO8D,EAAe5W,KAAM0P,EAAOoD,EAAQgE,OAAO,GAAIA,OAAO,sBAC/D,IAEAnI,EAAOxQ,UAAUoc,iBAAmBjC,GAAmB,SAA2B5I,EAAOoD,EAAS,GAChG,OAAOiE,EAAe/W,KAAM0P,EAAOoD,EAAQgE,OAAO,GAAIA,OAAO,sBAC/D,IAEAnI,EAAOxQ,UAAUqc,WAAa,SAAqB9K,EAAOoD,EAAQza,EAAY8e,GAG5E,GAFAzH,GAASA,EACToD,KAAoB,GACfqE,EAAU,CACb,MAAMsD,EAAQ7f,KAAKsJ,IAAI,EAAI,EAAI7L,EAAc,GAE7Cse,EAAS3W,KAAM0P,EAAOoD,EAAQza,EAAYoiB,EAAQ,GAAIA,EACxD,CAEA,IAAI5hB,EAAI,EACJ4e,EAAM,EACNiD,EAAM,EAEV,IADA1a,KAAK8S,GAAkB,IAARpD,IACN7W,EAAIR,IAAeof,GAAO,MAC7B/H,EAAQ,GAAa,IAARgL,GAAsC,IAAzB1a,KAAK8S,EAASja,EAAI,KAC9C6hB,EAAM,GAER1a,KAAK8S,EAASja,IAAO6W,EAAQ+H,EAAQ,GAAKiD,EAAM,IAGlD,OAAO5H,EAASza,CAClB,EAEAsW,EAAOxQ,UAAUwc,WAAa,SAAqBjL,EAAOoD,EAAQza,EAAY8e,GAG5E,GAFAzH,GAASA,EACToD,KAAoB,GACfqE,EAAU,CACb,MAAMsD,EAAQ7f,KAAKsJ,IAAI,EAAI,EAAI7L,EAAc,GAE7Cse,EAAS3W,KAAM0P,EAAOoD,EAAQza,EAAYoiB,EAAQ,GAAIA,EACxD,CAEA,IAAI5hB,EAAIR,EAAa,EACjBof,EAAM,EACNiD,EAAM,EAEV,IADA1a,KAAK8S,EAASja,GAAa,IAAR6W,IACV7W,GAAK,IAAM4e,GAAO,MACrB/H,EAAQ,GAAa,IAARgL,GAAsC,IAAzB1a,KAAK8S,EAASja,EAAI,KAC9C6hB,EAAM,GAER1a,KAAK8S,EAASja,IAAO6W,EAAQ+H,EAAQ,GAAKiD,EAAM,IAGlD,OAAO5H,EAASza,CAClB,EAEAsW,EAAOxQ,UAAUyc,UAAY,SAAoBlL,EAAOoD,EAAQqE,GAM9D,OALAzH,GAASA,EACToD,KAAoB,EACfqE,GAAUR,EAAS3W,KAAM0P,EAAOoD,EAAQ,EAAG,KAAO,KACnDpD,EAAQ,IAAGA,EAAQ,IAAOA,EAAQ,GACtC1P,KAAK8S,GAAmB,IAARpD,EACToD,EAAS,CAClB,EAEAnE,EAAOxQ,UAAU0c,aAAe,SAAuBnL,EAAOoD,EAAQqE,GAMpE,OALAzH,GAASA,EACToD,KAAoB,EACfqE,GAAUR,EAAS3W,KAAM0P,EAAOoD,EAAQ,EAAG,OAAS,OACzD9S,KAAK8S,GAAmB,IAARpD,EAChB1P,KAAK8S,EAAS,GAAMpD,IAAU,EACvBoD,EAAS,CAClB,EAEAnE,EAAOxQ,UAAU2c,aAAe,SAAuBpL,EAAOoD,EAAQqE,GAMpE,OALAzH,GAASA,EACToD,KAAoB,EACfqE,GAAUR,EAAS3W,KAAM0P,EAAOoD,EAAQ,EAAG,OAAS,OACzD9S,KAAK8S,GAAWpD,IAAU,EAC1B1P,KAAK8S,EAAS,GAAc,IAARpD,EACboD,EAAS,CAClB,EAEAnE,EAAOxQ,UAAU4c,aAAe,SAAuBrL,EAAOoD,EAAQqE,GAQpE,OAPAzH,GAASA,EACToD,KAAoB,EACfqE,GAAUR,EAAS3W,KAAM0P,EAAOoD,EAAQ,EAAG,YAAa,YAC7D9S,KAAK8S,GAAmB,IAARpD,EAChB1P,KAAK8S,EAAS,GAAMpD,IAAU,EAC9B1P,KAAK8S,EAAS,GAAMpD,IAAU,GAC9B1P,KAAK8S,EAAS,GAAMpD,IAAU,GACvBoD,EAAS,CAClB,EAEAnE,EAAOxQ,UAAU6c,aAAe,SAAuBtL,EAAOoD,EAAQqE,GASpE,OARAzH,GAASA,EACToD,KAAoB,EACfqE,GAAUR,EAAS3W,KAAM0P,EAAOoD,EAAQ,EAAG,YAAa,YACzDpD,EAAQ,IAAGA,EAAQ,WAAaA,EAAQ,GAC5C1P,KAAK8S,GAAWpD,IAAU,GAC1B1P,KAAK8S,EAAS,GAAMpD,IAAU,GAC9B1P,KAAK8S,EAAS,GAAMpD,IAAU,EAC9B1P,KAAK8S,EAAS,GAAc,IAARpD,EACboD,EAAS,CAClB,EAEAnE,EAAOxQ,UAAU8c,gBAAkB3C,GAAmB,SAA0B5I,EAAOoD,EAAS,GAC9F,OAAO8D,EAAe5W,KAAM0P,EAAOoD,GAASgE,OAAO,sBAAuBA,OAAO,sBACnF,IAEAnI,EAAOxQ,UAAU+c,gBAAkB5C,GAAmB,SAA0B5I,EAAOoD,EAAS,GAC9F,OAAOiE,EAAe/W,KAAM0P,EAAOoD,GAASgE,OAAO,sBAAuBA,OAAO,sBACnF,IAiBAnI,EAAOxQ,UAAUgd,aAAe,SAAuBzL,EAAOoD,EAAQqE,GACpE,OAAOF,EAAWjX,KAAM0P,EAAOoD,GAAQ,EAAMqE,EAC/C,EAEAxI,EAAOxQ,UAAUid,aAAe,SAAuB1L,EAAOoD,EAAQqE,GACpE,OAAOF,EAAWjX,KAAM0P,EAAOoD,GAAQ,EAAOqE,EAChD,EAYAxI,EAAOxQ,UAAUkd,cAAgB,SAAwB3L,EAAOoD,EAAQqE,GACtE,OAAOC,EAAYpX,KAAM0P,EAAOoD,GAAQ,EAAMqE,EAChD,EAEAxI,EAAOxQ,UAAUmd,cAAgB,SAAwB5L,EAAOoD,EAAQqE,GACtE,OAAOC,EAAYpX,KAAM0P,EAAOoD,GAAQ,EAAOqE,EACjD,EAGAxI,EAAOxQ,UAAUmF,KAAO,SAAe2S,EAAQsF,EAAalhB,EAAOC,GACjE,IAAKqU,EAAOgC,SAASsF,GAAS,MAAM,IAAI1G,UAAU,+BAQlD,GAPKlV,IAAOA,EAAQ,GACfC,GAAe,IAARA,IAAWA,EAAM0F,KAAKzG,QAC9BgiB,GAAetF,EAAO1c,SAAQgiB,EAActF,EAAO1c,QAClDgiB,IAAaA,EAAc,GAC5BjhB,EAAM,GAAKA,EAAMD,IAAOC,EAAMD,GAG9BC,IAAQD,EAAO,OAAO,EAC1B,GAAsB,IAAlB4b,EAAO1c,QAAgC,IAAhByG,KAAKzG,OAAc,OAAO,EAGrD,GAAIgiB,EAAc,EAChB,MAAM,IAAItM,WAAW,6BAEvB,GAAI5U,EAAQ,GAAKA,GAAS2F,KAAKzG,OAAQ,MAAM,IAAI0V,WAAW,sBAC5D,GAAI3U,EAAM,EAAG,MAAM,IAAI2U,WAAW,2BAG9B3U,EAAM0F,KAAKzG,SAAQe,EAAM0F,KAAKzG,QAC9B0c,EAAO1c,OAASgiB,EAAcjhB,EAAMD,IACtCC,EAAM2b,EAAO1c,OAASgiB,EAAclhB,GAGtC,MAAMnB,EAAMoB,EAAMD,EAalB,OAXI2F,OAASiW,GAAqD,mBAApCjc,WAAWmE,UAAUqd,WAEjDxb,KAAKwb,WAAWD,EAAalhB,EAAOC,GAEpCN,WAAWmE,UAAUiE,IAAIU,KACvBmT,EACAjW,KAAKsX,SAASjd,EAAOC,GACrBihB,GAIGriB,CACT,EAMAyV,EAAOxQ,UAAUqO,KAAO,SAAeS,EAAK5S,EAAOC,EAAKsV,GAEtD,GAAmB,iBAAR3C,EAAkB,CAS3B,GARqB,iBAAV5S,GACTuV,EAAWvV,EACXA,EAAQ,EACRC,EAAM0F,KAAKzG,QACa,iBAARe,IAChBsV,EAAWtV,EACXA,EAAM0F,KAAKzG,aAEIsX,IAAbjB,GAA8C,iBAAbA,EACnC,MAAM,IAAIL,UAAU,6BAEtB,GAAwB,iBAAbK,IAA0BjB,EAAOkB,WAAWD,GACrD,MAAM,IAAIL,UAAU,qBAAuBK,GAE7C,GAAmB,IAAf3C,EAAI1T,OAAc,CACpB,MAAMW,EAAO+S,EAAI7T,WAAW,IACV,SAAbwW,GAAuB1V,EAAO,KAClB,WAAb0V,KAEF3C,EAAM/S,EAEV,CACF,KAA0B,iBAAR+S,EAChBA,GAAY,IACY,kBAARA,IAChBA,EAAM8F,OAAO9F,IAIf,GAAI5S,EAAQ,GAAK2F,KAAKzG,OAASc,GAAS2F,KAAKzG,OAASe,EACpD,MAAM,IAAI2U,WAAW,sBAGvB,GAAI3U,GAAOD,EACT,OAAO2F,KAQT,IAAInH,EACJ,GANAwB,KAAkB,EAClBC,OAAcuW,IAARvW,EAAoB0F,KAAKzG,OAASe,IAAQ,EAE3C2S,IAAKA,EAAM,GAGG,iBAARA,EACT,IAAKpU,EAAIwB,EAAOxB,EAAIyB,IAAOzB,EACzBmH,KAAKnH,GAAKoU,MAEP,CACL,MAAMI,EAAQsB,EAAOgC,SAAS1D,GAC1BA,EACA0B,EAAOc,KAAKxC,EAAK2C,GACf1W,EAAMmU,EAAM9T,OAClB,GAAY,IAARL,EACF,MAAM,IAAIqW,UAAU,cAAgBtC,EAClC,qCAEJ,IAAKpU,EAAI,EAAGA,EAAIyB,EAAMD,IAASxB,EAC7BmH,KAAKnH,EAAIwB,GAASgT,EAAMxU,EAAIK,EAEhC,CAEA,OAAO8G,IACT,EAMA,MAAMyb,EAAS,CAAC,EAChB,SAASC,EAAGC,EAAKC,EAAYC,GAC3BJ,EAAOE,GAAO,cAAwBE,EACpC,WAAAzd,GACE0d,QAEA3M,OAAO+F,eAAelV,KAAM,UAAW,CACrC0P,MAAOkM,EAAWlH,MAAM1U,KAAMgD,WAC9B+Y,UAAU,EACVC,cAAc,IAIhBhc,KAAKlD,KAAO,GAAGkD,KAAKlD,SAAS6e,KAG7B3b,KAAKic,aAEEjc,KAAKlD,IACd,CAEA,QAAI5C,GACF,OAAOyhB,CACT,CAEA,QAAIzhB,CAAMwV,GACRP,OAAO+F,eAAelV,KAAM,OAAQ,CAClCgc,cAAc,EACd7G,YAAY,EACZzF,QACAqM,UAAU,GAEd,CAEA,QAAA1d,GACE,MAAO,GAAG2B,KAAKlD,SAAS6e,OAAS3b,KAAKkc,SACxC,EAEJ,CA+BA,SAASC,EAAuBlP,GAC9B,IAAI8G,EAAM,GACNlb,EAAIoU,EAAI1T,OACZ,MAAMc,EAAmB,MAAX4S,EAAI,GAAa,EAAI,EACnC,KAAOpU,GAAKwB,EAAQ,EAAGxB,GAAK,EAC1Bkb,EAAM,IAAI9G,EAAIjR,MAAMnD,EAAI,EAAGA,KAAKkb,IAElC,MAAO,GAAG9G,EAAIjR,MAAM,EAAGnD,KAAKkb,GAC9B,CAYA,SAAS8C,EAAYnH,EAAO9S,EAAKC,EAAKqS,EAAK4D,EAAQza,GACjD,GAAIqX,EAAQ7S,GAAO6S,EAAQ9S,EAAK,CAC9B,MAAMnB,EAAmB,iBAARmB,EAAmB,IAAM,GAC1C,IAAIwf,EAWJ,MARIA,EAFA/jB,EAAa,EACH,IAARuE,GAAaA,IAAQka,OAAO,GACtB,OAAOrb,YAAYA,QAA2B,GAAlBpD,EAAa,KAASoD,IAElD,SAASA,QAA2B,GAAlBpD,EAAa,GAAS,IAAIoD,iBACtB,GAAlBpD,EAAa,GAAS,IAAIoD,IAGhC,MAAMmB,IAAMnB,YAAYoB,IAAMpB,IAElC,IAAIggB,EAAOY,iBAAiB,QAASD,EAAO1M,EACpD,EAtBF,SAAsBR,EAAK4D,EAAQza,GACjCkgB,EAAezF,EAAQ,eACHjC,IAAhB3B,EAAI4D,SAAsDjC,IAA7B3B,EAAI4D,EAASza,IAC5CogB,EAAY3F,EAAQ5D,EAAI3V,QAAUlB,EAAa,GAEnD,CAkBEikB,CAAYpN,EAAK4D,EAAQza,EAC3B,CAEA,SAASkgB,EAAgB7I,EAAO5S,GAC9B,GAAqB,iBAAV4S,EACT,MAAM,IAAI+L,EAAOc,qBAAqBzf,EAAM,SAAU4S,EAE1D,CAEA,SAAS+I,EAAa/I,EAAOnW,EAAQwX,GACnC,GAAInW,KAAKG,MAAM2U,KAAWA,EAExB,MADA6I,EAAe7I,EAAOqB,GAChB,IAAI0K,EAAOY,iBAAiBtL,GAAQ,SAAU,aAAcrB,GAGpE,GAAInW,EAAS,EACX,MAAM,IAAIkiB,EAAOe,yBAGnB,MAAM,IAAIf,EAAOY,iBAAiBtL,GAAQ,SACR,MAAMA,EAAO,EAAI,YAAYxX,IAC7BmW,EACpC,CAvFAgM,EAAE,4BACA,SAAU5e,GACR,OAAIA,EACK,GAAGA,gCAGL,gDACT,GAAGmS,YACLyM,EAAE,wBACA,SAAU5e,EAAMgT,GACd,MAAO,QAAQhT,4DAA+DgT,GAChF,GAAGP,WACLmM,EAAE,oBACA,SAAUxe,EAAKkf,EAAO1P,GACpB,IAAIe,EAAM,iBAAiBvQ,sBACvBuf,EAAW/P,EAWf,OAVIqG,OAAOhM,UAAU2F,IAAU9R,KAAKuL,IAAIuG,GAAS,GAAK,GACpD+P,EAAWN,EAAsBpf,OAAO2P,IACd,iBAAVA,IAChB+P,EAAW1f,OAAO2P,IACdA,EAAQoK,OAAO,IAAMA,OAAO,KAAOpK,IAAUoK,OAAO,IAAMA,OAAO,QACnE2F,EAAWN,EAAsBM,IAEnCA,GAAY,KAEdhP,GAAO,eAAe2O,eAAmBK,IAClChP,CACT,GAAGwB,YAiEL,MAAMyN,EAAoB,oBAgB1B,SAASlL,EAAa7B,EAAQgE,GAE5B,IAAIM,EADJN,EAAQA,GAASgJ,IAEjB,MAAMpjB,EAASoW,EAAOpW,OACtB,IAAIqjB,EAAgB,KACpB,MAAMvP,EAAQ,GAEd,IAAK,IAAIxU,EAAI,EAAGA,EAAIU,IAAUV,EAAG,CAI/B,GAHAob,EAAYtE,EAAOvW,WAAWP,GAG1Bob,EAAY,OAAUA,EAAY,MAAQ,CAE5C,IAAK2I,EAAe,CAElB,GAAI3I,EAAY,MAAQ,EAEjBN,GAAS,IAAM,GAAGtG,EAAMzT,KAAK,IAAM,IAAM,KAC9C,QACF,CAAO,GAAIf,EAAI,IAAMU,EAAQ,EAEtBoa,GAAS,IAAM,GAAGtG,EAAMzT,KAAK,IAAM,IAAM,KAC9C,QACF,CAGAgjB,EAAgB3I,EAEhB,QACF,CAGA,GAAIA,EAAY,MAAQ,EACjBN,GAAS,IAAM,GAAGtG,EAAMzT,KAAK,IAAM,IAAM,KAC9CgjB,EAAgB3I,EAChB,QACF,CAGAA,EAAkE,OAArD2I,EAAgB,OAAU,GAAK3I,EAAY,MAC1D,MAAW2I,IAEJjJ,GAAS,IAAM,GAAGtG,EAAMzT,KAAK,IAAM,IAAM,KAMhD,GAHAgjB,EAAgB,KAGZ3I,EAAY,IAAM,CACpB,IAAKN,GAAS,GAAK,EAAG,MACtBtG,EAAMzT,KAAKqa,EACb,MAAO,GAAIA,EAAY,KAAO,CAC5B,IAAKN,GAAS,GAAK,EAAG,MACtBtG,EAAMzT,KACJqa,GAAa,EAAM,IACP,GAAZA,EAAmB,IAEvB,MAAO,GAAIA,EAAY,MAAS,CAC9B,IAAKN,GAAS,GAAK,EAAG,MACtBtG,EAAMzT,KACJqa,GAAa,GAAM,IACnBA,GAAa,EAAM,GAAO,IACd,GAAZA,EAAmB,IAEvB,KAAO,MAAIA,EAAY,SASrB,MAAM,IAAI9Z,MAAM,sBARhB,IAAKwZ,GAAS,GAAK,EAAG,MACtBtG,EAAMzT,KACJqa,GAAa,GAAO,IACpBA,GAAa,GAAM,GAAO,IAC1BA,GAAa,EAAM,GAAO,IACd,GAAZA,EAAmB,IAIvB,CACF,CAEA,OAAO5G,CACT,CA2BA,SAASoE,EAAevU,GACtB,OAAOqR,EAAO5V,YAxHhB,SAAsBuE,GAMpB,IAFAA,GAFAA,EAAMA,EAAIoM,MAAM,KAAK,IAEX0M,OAAO7V,QAAQuc,EAAmB,KAEpCnjB,OAAS,EAAG,MAAO,GAE3B,KAAO2D,EAAI3D,OAAS,GAAM,GACxB2D,GAAY,IAEd,OAAOA,CACT,CA4G4B2f,CAAY3f,GACxC,CAEA,SAASmW,EAAYyJ,EAAKC,EAAKjK,EAAQvZ,GACrC,IAAIV,EACJ,IAAKA,EAAI,EAAGA,EAAIU,KACTV,EAAIia,GAAUiK,EAAIxjB,QAAYV,GAAKikB,EAAIvjB,UADpBV,EAExBkkB,EAAIlkB,EAAIia,GAAUgK,EAAIjkB,GAExB,OAAOA,CACT,CAKA,SAASuX,EAAY/N,EAAK0O,GACxB,OAAO1O,aAAe0O,GACZ,MAAP1O,GAAkC,MAAnBA,EAAIjE,aAA+C,MAAxBiE,EAAIjE,YAAYtB,MACzDuF,EAAIjE,YAAYtB,OAASiU,EAAKjU,IACpC,CACA,SAASgU,EAAazO,GAEpB,OAAOA,GAAQA,CACjB,CAIA,MAAMmU,EAAsB,WAC1B,MAAM3W,EAAW,mBACXmd,EAAQ,IAAI/iB,MAAM,KACxB,IAAK,IAAIpB,EAAI,EAAGA,EAAI,KAAMA,EAAG,CAC3B,MAAMokB,EAAU,GAAJpkB,EACZ,IAAK,IAAIiD,EAAI,EAAGA,EAAI,KAAMA,EACxBkhB,EAAMC,EAAMnhB,GAAK+D,EAAShH,GAAKgH,EAAS/D,EAE5C,CACA,OAAOkhB,CACR,CAV2B,GAa5B,SAAS1E,EAAoB4E,GAC3B,MAAyB,oBAAXpG,OAAyBqG,EAAyBD,CAClE,CAEA,SAASC,IACP,MAAM,IAAIhjB,MAAM,uBAClB,C,oCCvjEA,IAAIijB,EAAO,EAAQ,MAEfC,EAAS,EAAQ,MACjBC,EAAQ,EAAQ,IAChBC,EAAgB,EAAQ,MAG5BtlB,EAAOD,QAAUulB,GAAiBH,EAAKta,KAAKwa,EAAOD,E,oCCPnD,IAAID,EAAO,EAAQ,MACfC,EAAS,EAAQ,MACjBG,EAAc,EAAQ,MAG1BvlB,EAAOD,QAAU,WAChB,OAAOwlB,EAAYJ,EAAMC,EAAQra,UAClC,C,gCCNA/K,EAAOD,QAAUylB,SAAStf,UAAUuW,K,8BCApCzc,EAAOD,QAAUylB,SAAStf,UAAU2E,I,oCCDpC,IAAIsa,EAAO,EAAQ,MACfM,EAAa,EAAQ,MAErBJ,EAAQ,EAAQ,IAChBK,EAAe,EAAQ,MAG3B1lB,EAAOD,QAAU,SAAuBgJ,GACvC,GAAIA,EAAKzH,OAAS,GAAwB,mBAAZyH,EAAK,GAClC,MAAM,IAAI0c,EAAW,0BAEtB,OAAOC,EAAaP,EAAME,EAAOtc,EAClC,C,gCCXA/I,EAAOD,QAA6B,oBAAZ4lB,SAA2BA,SAAWA,QAAQlJ,K,mCCDtE,IAAImJ,EAAoB,EAAQ,MAE5BC,EAAkB,EAAQ,KAE1BC,EAAgB,EAAQ,MACxBC,EAAY,EAAQ,MAExB/lB,EAAOD,QAAU,SAAkBimB,GAClC,IAAIC,EAAOH,EAAc/a,WACrBmb,EAAiBF,EAAiB1kB,QAAUyJ,UAAUzJ,OAAS,GACnE,OAAOskB,EACNK,EACA,GAAKC,EAAiB,EAAIA,EAAiB,IAC3C,EAEF,EAEIL,EACHA,EAAgB7lB,EAAOD,QAAS,QAAS,CAAE0X,MAAOsO,IAElD/lB,EAAOD,QAAQ0c,MAAQsJ,C,oCCpBxB,IAAII,EAAe,EAAQ,KAEvBL,EAAgB,EAAQ,MAGxBM,EAAWN,EAAc,CAACK,EAAa,gCAG3CnmB,EAAOD,QAAU,SAA4B8E,EAAMwhB,GAGlD,IAAIC,EAA2EH,EAAathB,IAAQwhB,GACpG,MAAyB,mBAAdC,GAA4BF,EAASvhB,EAAM,gBAAkB,EAChEihB,EAAmC,CAAEQ,IAEtCA,CACR,C,gCCdAtmB,EAAOD,QAAU,SAASwmB,EAAWC,GACnC,GAAsB,iBAAXA,GAAuB1Y,MAAM0Y,GACtC,MAAM,IAAItkB,MAAM,sBAGlB,GAAsB,iBAAXskB,IAAwBpX,SAASoX,GAC1C,MAAM,IAAItkB,MAAM,2BAGlB,OAAe,OAAXskB,GAAqC,iBAAXA,EACrBC,KAAKC,UAAUF,GAGpBA,EAAOhU,kBAAkBgT,SACpBe,EAAUC,EAAOhU,UAGtBxQ,MAAM+W,QAAQyN,GAMT,IALQA,EAAOG,QAAO,CAAC1W,EAAG2W,EAAIC,IAG5B,GAAG5W,IAFW,IAAP4W,EAAW,GAAK,MAERN,OADD3N,IAAPgO,GAAkC,iBAAPA,EAAkB,KAAOA,MAEjE,OAYE,IARQ1P,OAAO4P,KAAKN,GAAQO,OAAOJ,QAAO,CAAC1W,EAAG2W,SAChChO,IAAf4N,EAAOI,IACe,iBAAfJ,EAAOI,GACT3W,EAGF,GAAGA,IADiB,IAAbA,EAAE3O,OAAe,GAAK,MACdilB,EAAUK,MAAOL,EAAUC,EAAOI,OACvD,MAEL,C,kCCrCA,IAAIf,EAAkB,EAAQ,KAE1BmB,EAAe,EAAQ,MACvBvB,EAAa,EAAQ,MAErBwB,EAAO,EAAQ,MAGnBjnB,EAAOD,QAAU,SAChBqK,EACA8c,EACAzP,GAEA,IAAKrN,GAAuB,iBAARA,GAAmC,mBAARA,EAC9C,MAAM,IAAIqb,EAAW,0CAEtB,GAAwB,iBAAbyB,GAA6C,iBAAbA,EAC1C,MAAM,IAAIzB,EAAW,4CAEtB,GAAI1a,UAAUzJ,OAAS,GAA6B,kBAAjByJ,UAAU,IAAqC,OAAjBA,UAAU,GAC1E,MAAM,IAAI0a,EAAW,2DAEtB,GAAI1a,UAAUzJ,OAAS,GAA6B,kBAAjByJ,UAAU,IAAqC,OAAjBA,UAAU,GAC1E,MAAM,IAAI0a,EAAW,yDAEtB,GAAI1a,UAAUzJ,OAAS,GAA6B,kBAAjByJ,UAAU,IAAqC,OAAjBA,UAAU,GAC1E,MAAM,IAAI0a,EAAW,6DAEtB,GAAI1a,UAAUzJ,OAAS,GAA6B,kBAAjByJ,UAAU,GAC5C,MAAM,IAAI0a,EAAW,2CAGtB,IAAI0B,EAAgBpc,UAAUzJ,OAAS,EAAIyJ,UAAU,GAAK,KACtDqc,EAAcrc,UAAUzJ,OAAS,EAAIyJ,UAAU,GAAK,KACpDsc,EAAkBtc,UAAUzJ,OAAS,EAAIyJ,UAAU,GAAK,KACxDuc,EAAQvc,UAAUzJ,OAAS,GAAIyJ,UAAU,GAGzCwc,IAASN,GAAQA,EAAK7c,EAAK8c,GAE/B,GAAIrB,EACHA,EAAgBzb,EAAK8c,EAAU,CAC9BnD,aAAkC,OAApBsD,GAA4BE,EAAOA,EAAKxD,cAAgBsD,EACtEnK,WAA8B,OAAlBiK,GAA0BI,EAAOA,EAAKrK,YAAciK,EAChE1P,MAAOA,EACPqM,SAA0B,OAAhBsD,GAAwBG,EAAOA,EAAKzD,UAAYsD,QAErD,KAAIE,IAAWH,GAAkBC,GAAgBC,GAIvD,MAAM,IAAIL,EAAa,+GAFvB5c,EAAI8c,GAAYzP,CAGjB,CACD,C,oCCrDA,IAGI+P,EAHAC,EAAW,EAAQ,MACnBC,EAAO,EAAQ,MAGnB,IAECF,EAAyE,GAAKG,YAAc3lB,MAAMkE,SACnG,CAAE,MAAO1B,GACR,IAAKA,GAAkB,iBAANA,KAAoB,SAAUA,IAAiB,qBAAXA,EAAEvC,KACtD,MAAMuC,CAER,CAGA,IAAI+iB,IAASC,GAAoBE,GAAQA,EAAKxQ,OAAOhR,UAAwD,aAEzG0hB,EAAU1Q,OACV2Q,EAAkBD,EAAQE,eAG9B9nB,EAAOD,QAAUwnB,GAA4B,mBAAbA,EAAKpK,IAClCsK,EAAS,CAACF,EAAKpK,MACY,mBAApB0K,GACyB,SAAmBpQ,GAEnD,OAAOoQ,EAAyB,MAATpQ,EAAgBA,EAAQmQ,EAAQnQ,GACxD,C,+BCzBF,IAAIoO,EAAkB3O,OAAO+F,iBAAkB,EAC/C,GAAI4I,EACH,IACCA,EAAgB,CAAC,EAAG,IAAK,CAAEpO,MAAO,GACnC,CAAE,MAAOjT,GAERqhB,GAAkB,CACnB,CAGD7lB,EAAOD,QAAU8lB,C,gCCVjB7lB,EAAOD,QAAUgoB,S,gCCAjB/nB,EAAOD,QAAUmC,K,gCCAjBlC,EAAOD,QAAUiX,U,gCCAjBhX,EAAOD,QAAUioB,c,gCCAjBhoB,EAAOD,QAAUkoB,W,gCCAjBjoB,EAAOD,QAAUuX,S,gCCAjBtX,EAAOD,QAAUmoB,Q,gCCAjBloB,EAAOD,QAAUmX,M,mBCHjB,IAAIiR,EAAgB,WACnB,GAAoB,iBAAThoB,MAAqBA,KAAM,OAAOA,KAC7C,GAAsB,iBAAXioB,QAAuBA,OAAQ,OAAOA,OACjD,MAAM,IAAIlmB,MAAM,kCACjB,EAEAlC,EAAOD,QAAU,WAChB,GAAIgI,KAAM,OAAOA,KAKjB,GAA0B,iBAAfsgB,YAA2BA,WAAY,OAAOA,WAKzD,IACCnR,OAAO+F,eAAe/F,OAAOhR,UAAW,aAAc,CACrDiX,IAAK,WAAc,OAAOpV,IAAM,EAChCgc,cAAc,GAEhB,CAAE,MAAO/G,GAGR,OAAOmL,GACR,CACA,IAEC,OAAKG,YAAmBH,GAEzB,CAAE,eACMjR,OAAOhR,UAAUoiB,UACzB,CACA,CA5BgB,E,+BCJjB,IAAIC,EAAMrR,OAAOhR,UAAUoE,eACvBrD,EAAS,IASb,SAASuhB,IAAU,CA4BnB,SAASC,EAAGxD,EAAIyD,EAASC,GACvB5gB,KAAKkd,GAAKA,EACVld,KAAK2gB,QAAUA,EACf3gB,KAAK4gB,KAAOA,IAAQ,CACtB,CAaA,SAASC,EAAYC,EAASC,EAAO7D,EAAIyD,EAASC,GAChD,GAAkB,mBAAP1D,EACT,MAAM,IAAI3N,UAAU,mCAGtB,IAAIyR,EAAW,IAAIN,EAAGxD,EAAIyD,GAAWG,EAASF,GAC1CK,EAAM/hB,EAASA,EAAS6hB,EAAQA,EAMpC,OAJKD,EAAQI,QAAQD,GACXH,EAAQI,QAAQD,GAAK/D,GAC1B4D,EAAQI,QAAQD,GAAO,CAACH,EAAQI,QAAQD,GAAMD,GADhBF,EAAQI,QAAQD,GAAKrnB,KAAKonB,IADlCF,EAAQI,QAAQD,GAAOD,EAAUF,EAAQK,gBAI7DL,CACT,CASA,SAASM,EAAWN,EAASG,GACI,KAAzBH,EAAQK,aAAoBL,EAAQI,QAAU,IAAIT,SAC5CK,EAAQI,QAAQD,EAC9B,CASA,SAASI,IACPrhB,KAAKkhB,QAAU,IAAIT,EACnBzgB,KAAKmhB,aAAe,CACtB,CAzEIhS,OAAOmS,SACTb,EAAOtiB,UAAYgR,OAAOmS,OAAO,OAM5B,IAAIb,GAASb,YAAW1gB,GAAS,IA2ExCmiB,EAAaljB,UAAUojB,WAAa,WAClC,IACIC,EACA1kB,EAFA2kB,EAAQ,GAIZ,GAA0B,IAAtBzhB,KAAKmhB,aAAoB,OAAOM,EAEpC,IAAK3kB,KAAS0kB,EAASxhB,KAAKkhB,QACtBV,EAAI1d,KAAK0e,EAAQ1kB,IAAO2kB,EAAM7nB,KAAKsF,EAASpC,EAAKd,MAAM,GAAKc,GAGlE,OAAIqS,OAAOuS,sBACFD,EAAMtd,OAAOgL,OAAOuS,sBAAsBF,IAG5CC,CACT,EASAJ,EAAaljB,UAAUwjB,UAAY,SAAmBZ,GACpD,IAAIE,EAAM/hB,EAASA,EAAS6hB,EAAQA,EAChCa,EAAW5hB,KAAKkhB,QAAQD,GAE5B,IAAKW,EAAU,MAAO,GACtB,GAAIA,EAAS1E,GAAI,MAAO,CAAC0E,EAAS1E,IAElC,IAAK,IAAIrkB,EAAI,EAAG6D,EAAIklB,EAASroB,OAAQsoB,EAAK,IAAI5nB,MAAMyC,GAAI7D,EAAI6D,EAAG7D,IAC7DgpB,EAAGhpB,GAAK+oB,EAAS/oB,GAAGqkB,GAGtB,OAAO2E,CACT,EASAR,EAAaljB,UAAU2jB,cAAgB,SAAuBf,GAC5D,IAAIE,EAAM/hB,EAASA,EAAS6hB,EAAQA,EAChCY,EAAY3hB,KAAKkhB,QAAQD,GAE7B,OAAKU,EACDA,EAAUzE,GAAW,EAClByE,EAAUpoB,OAFM,CAGzB,EASA8nB,EAAaljB,UAAU4jB,KAAO,SAAchB,EAAOiB,EAAIC,EAAIC,EAAIC,EAAIC,GACjE,IAAInB,EAAM/hB,EAASA,EAAS6hB,EAAQA,EAEpC,IAAK/gB,KAAKkhB,QAAQD,GAAM,OAAO,EAE/B,IAEIjgB,EACAnI,EAHA8oB,EAAY3hB,KAAKkhB,QAAQD,GACzB/nB,EAAM8J,UAAUzJ,OAIpB,GAAIooB,EAAUzE,GAAI,CAGhB,OAFIyE,EAAUf,MAAM5gB,KAAKqiB,eAAetB,EAAOY,EAAUzE,QAAIrM,GAAW,GAEhE3X,GACN,KAAK,EAAG,OAAOyoB,EAAUzE,GAAGpa,KAAK6e,EAAUhB,UAAU,EACrD,KAAK,EAAG,OAAOgB,EAAUzE,GAAGpa,KAAK6e,EAAUhB,QAASqB,IAAK,EACzD,KAAK,EAAG,OAAOL,EAAUzE,GAAGpa,KAAK6e,EAAUhB,QAASqB,EAAIC,IAAK,EAC7D,KAAK,EAAG,OAAON,EAAUzE,GAAGpa,KAAK6e,EAAUhB,QAASqB,EAAIC,EAAIC,IAAK,EACjE,KAAK,EAAG,OAAOP,EAAUzE,GAAGpa,KAAK6e,EAAUhB,QAASqB,EAAIC,EAAIC,EAAIC,IAAK,EACrE,KAAK,EAAG,OAAOR,EAAUzE,GAAGpa,KAAK6e,EAAUhB,QAASqB,EAAIC,EAAIC,EAAIC,EAAIC,IAAK,EAG3E,IAAKvpB,EAAI,EAAGmI,EAAO,IAAI/G,MAAMf,EAAK,GAAIL,EAAIK,EAAKL,IAC7CmI,EAAKnI,EAAI,GAAKmK,UAAUnK,GAG1B8oB,EAAUzE,GAAGxI,MAAMiN,EAAUhB,QAAS3f,EACxC,KAAO,CACL,IACIlF,EADAvC,EAASooB,EAAUpoB,OAGvB,IAAKV,EAAI,EAAGA,EAAIU,EAAQV,IAGtB,OAFI8oB,EAAU9oB,GAAG+nB,MAAM5gB,KAAKqiB,eAAetB,EAAOY,EAAU9oB,GAAGqkB,QAAIrM,GAAW,GAEtE3X,GACN,KAAK,EAAGyoB,EAAU9oB,GAAGqkB,GAAGpa,KAAK6e,EAAU9oB,GAAG8nB,SAAU,MACpD,KAAK,EAAGgB,EAAU9oB,GAAGqkB,GAAGpa,KAAK6e,EAAU9oB,GAAG8nB,QAASqB,GAAK,MACxD,KAAK,EAAGL,EAAU9oB,GAAGqkB,GAAGpa,KAAK6e,EAAU9oB,GAAG8nB,QAASqB,EAAIC,GAAK,MAC5D,KAAK,EAAGN,EAAU9oB,GAAGqkB,GAAGpa,KAAK6e,EAAU9oB,GAAG8nB,QAASqB,EAAIC,EAAIC,GAAK,MAChE,QACE,IAAKlhB,EAAM,IAAKlF,EAAI,EAAGkF,EAAO,IAAI/G,MAAMf,EAAK,GAAI4C,EAAI5C,EAAK4C,IACxDkF,EAAKlF,EAAI,GAAKkH,UAAUlH,GAG1B6lB,EAAU9oB,GAAGqkB,GAAGxI,MAAMiN,EAAU9oB,GAAG8nB,QAAS3f,GAGpD,CAEA,OAAO,CACT,EAWAqgB,EAAaljB,UAAUmkB,GAAK,SAAYvB,EAAO7D,EAAIyD,GACjD,OAAOE,EAAY7gB,KAAM+gB,EAAO7D,EAAIyD,GAAS,EAC/C,EAWAU,EAAaljB,UAAUyiB,KAAO,SAAcG,EAAO7D,EAAIyD,GACrD,OAAOE,EAAY7gB,KAAM+gB,EAAO7D,EAAIyD,GAAS,EAC/C,EAYAU,EAAaljB,UAAUkkB,eAAiB,SAAwBtB,EAAO7D,EAAIyD,EAASC,GAClF,IAAIK,EAAM/hB,EAASA,EAAS6hB,EAAQA,EAEpC,IAAK/gB,KAAKkhB,QAAQD,GAAM,OAAOjhB,KAC/B,IAAKkd,EAEH,OADAkE,EAAWphB,KAAMihB,GACVjhB,KAGT,IAAI2hB,EAAY3hB,KAAKkhB,QAAQD,GAE7B,GAAIU,EAAUzE,GAEVyE,EAAUzE,KAAOA,GACf0D,IAAQe,EAAUf,MAClBD,GAAWgB,EAAUhB,UAAYA,GAEnCS,EAAWphB,KAAMihB,OAEd,CACL,IAAK,IAAIpoB,EAAI,EAAG2oB,EAAS,GAAIjoB,EAASooB,EAAUpoB,OAAQV,EAAIU,EAAQV,KAEhE8oB,EAAU9oB,GAAGqkB,KAAOA,GACnB0D,IAASe,EAAU9oB,GAAG+nB,MACtBD,GAAWgB,EAAU9oB,GAAG8nB,UAAYA,IAErCa,EAAO5nB,KAAK+nB,EAAU9oB,IAOtB2oB,EAAOjoB,OAAQyG,KAAKkhB,QAAQD,GAAyB,IAAlBO,EAAOjoB,OAAeioB,EAAO,GAAKA,EACpEJ,EAAWphB,KAAMihB,EACxB,CAEA,OAAOjhB,IACT,EASAqhB,EAAaljB,UAAUokB,mBAAqB,SAA4BxB,GACtE,IAAIE,EAUJ,OARIF,GACFE,EAAM/hB,EAASA,EAAS6hB,EAAQA,EAC5B/gB,KAAKkhB,QAAQD,IAAMG,EAAWphB,KAAMihB,KAExCjhB,KAAKkhB,QAAU,IAAIT,EACnBzgB,KAAKmhB,aAAe,GAGfnhB,IACT,EAKAqhB,EAAaljB,UAAUqkB,IAAMnB,EAAaljB,UAAUkkB,eACpDhB,EAAaljB,UAAU0iB,YAAcQ,EAAaljB,UAAUmkB,GAK5DjB,EAAaoB,SAAWvjB,EAKxBmiB,EAAaA,aAAeA,EAM1BppB,EAAOD,QAAUqpB,C,gCCvTnB,IAOIqB,EAPAC,EAAuB,iBAAZ/E,QAAuBA,QAAU,KAC5CgF,EAAeD,GAAwB,mBAAZA,EAAEjO,MAC7BiO,EAAEjO,MACF,SAAsBuB,EAAQ4M,EAAU7hB,GACxC,OAAOyc,SAAStf,UAAUuW,MAAM5R,KAAKmT,EAAQ4M,EAAU7hB,EACzD,EAIA0hB,EADEC,GAA0B,mBAAdA,EAAEG,QACCH,EAAEG,QACV3T,OAAOuS,sBACC,SAAwBzL,GACvC,OAAO9G,OAAO4T,oBAAoB9M,GAC/B9R,OAAOgL,OAAOuS,sBAAsBzL,GACzC,EAEiB,SAAwBA,GACvC,OAAO9G,OAAO4T,oBAAoB9M,EACpC,EAOF,IAAI+M,EAAcjQ,OAAOhN,OAAS,SAAqB2J,GACrD,OAAOA,GAAUA,CACnB,EAEA,SAAS2R,IACPA,EAAa4B,KAAKngB,KAAK9C,KACzB,CACA/H,EAAOD,QAAUqpB,EACjBppB,EAAOD,QAAQ4oB,KAwYf,SAAcE,EAAShkB,GACrB,OAAO,IAAIomB,SAAQ,SAAUC,EAASC,GACpC,SAASC,EAAcC,GACrBxC,EAAQuB,eAAevlB,EAAMymB,GAC7BH,EAAOE,EACT,CAEA,SAASC,IAC+B,mBAA3BzC,EAAQuB,gBACjBvB,EAAQuB,eAAe,QAASgB,GAElCF,EAAQ,GAAGnnB,MAAM8G,KAAKE,WACxB,CAEAwgB,EAA+B1C,EAAShkB,EAAMymB,EAAU,CAAE3C,MAAM,IACnD,UAAT9jB,GAMR,SAAuCgkB,EAAS2C,GACpB,mBAAf3C,EAAQwB,IACjBkB,EAA+B1C,EAAS,QAAS2C,EAPO,CAAE7C,MAAM,GASpE,CATM8C,CAA8B5C,EAASuC,EAE3C,GACF,EAxZAhC,EAAaA,aAAeA,EAE5BA,EAAaljB,UAAU+iB,aAAUrQ,EACjCwQ,EAAaljB,UAAUgjB,aAAe,EACtCE,EAAaljB,UAAUwlB,mBAAgB9S,EAIvC,IAAI+S,EAAsB,GAE1B,SAASC,EAAc7C,GACrB,GAAwB,mBAAbA,EACT,MAAM,IAAIzR,UAAU,0EAA4EyR,EAEpG,CAoCA,SAAS8C,EAAiBC,GACxB,YAA2BlT,IAAvBkT,EAAKJ,cACAtC,EAAauC,oBACfG,EAAKJ,aACd,CAkDA,SAASK,EAAa/N,EAAQlF,EAAMiQ,EAAUiD,GAC5C,IAAI3f,EACAkd,EACA0C,EA1HsBC,EAgJ1B,GApBAN,EAAc7C,QAGCnQ,KADf2Q,EAASvL,EAAOiL,UAEdM,EAASvL,EAAOiL,QAAU/R,OAAOmS,OAAO,MACxCrL,EAAOkL,aAAe,SAIKtQ,IAAvB2Q,EAAO4C,cACTnO,EAAO8L,KAAK,cAAehR,EACfiQ,EAASA,SAAWA,EAASA,SAAWA,GAIpDQ,EAASvL,EAAOiL,SAElBgD,EAAW1C,EAAOzQ,SAGHF,IAAbqT,EAEFA,EAAW1C,EAAOzQ,GAAQiQ,IACxB/K,EAAOkL,kBAeT,GAbwB,mBAAb+C,EAETA,EAAW1C,EAAOzQ,GAChBkT,EAAU,CAACjD,EAAUkD,GAAY,CAACA,EAAUlD,GAErCiD,EACTC,EAASG,QAAQrD,GAEjBkD,EAAStqB,KAAKonB,IAIhB1c,EAAIwf,EAAiB7N,IACb,GAAKiO,EAAS3qB,OAAS+K,IAAM4f,EAASI,OAAQ,CACpDJ,EAASI,QAAS,EAGlB,IAAIC,EAAI,IAAIpqB,MAAM,+CACE+pB,EAAS3qB,OAAS,IAAMwD,OAAOgU,GADjC,qEAIlBwT,EAAEznB,KAAO,8BACTynB,EAAEzD,QAAU7K,EACZsO,EAAExT,KAAOA,EACTwT,EAAEC,MAAQN,EAAS3qB,OA7KG4qB,EA8KHI,EA7KnB7W,SAAWA,QAAQ+W,MAAM/W,QAAQ+W,KAAKN,EA8KxC,CAGF,OAAOlO,CACT,CAaA,SAASyO,IACP,IAAK1kB,KAAK2kB,MAGR,OAFA3kB,KAAKiW,OAAOoM,eAAeriB,KAAK+Q,KAAM/Q,KAAK4kB,QAC3C5kB,KAAK2kB,OAAQ,EACY,IAArB3hB,UAAUzJ,OACLyG,KAAKghB,SAASle,KAAK9C,KAAKiW,QAC1BjW,KAAKghB,SAAStM,MAAM1U,KAAKiW,OAAQjT,UAE5C,CAEA,SAAS6hB,EAAU5O,EAAQlF,EAAMiQ,GAC/B,IAAI8D,EAAQ,CAAEH,OAAO,EAAOC,YAAQ/T,EAAWoF,OAAQA,EAAQlF,KAAMA,EAAMiQ,SAAUA,GACjF+D,EAAUL,EAAYtH,KAAK0H,GAG/B,OAFAC,EAAQ/D,SAAWA,EACnB8D,EAAMF,OAASG,EACRA,CACT,CAyHA,SAASC,EAAW/O,EAAQlF,EAAMkU,GAChC,IAAIzD,EAASvL,EAAOiL,QAEpB,QAAerQ,IAAX2Q,EACF,MAAO,GAET,IAAI0D,EAAa1D,EAAOzQ,GACxB,YAAmBF,IAAfqU,EACK,GAEiB,mBAAfA,EACFD,EAAS,CAACC,EAAWlE,UAAYkE,GAAc,CAACA,GAElDD,EAsDT,SAAyBnsB,GAEvB,IADA,IAAIoU,EAAM,IAAIjT,MAAMnB,EAAIS,QACfV,EAAI,EAAGA,EAAIqU,EAAI3T,SAAUV,EAChCqU,EAAIrU,GAAKC,EAAID,GAAGmoB,UAAYloB,EAAID,GAElC,OAAOqU,CACT,CA3DIiY,CAAgBD,GAAcE,EAAWF,EAAYA,EAAW3rB,OACpE,CAmBA,SAASuoB,EAAc/Q,GACrB,IAAIyQ,EAASxhB,KAAKkhB,QAElB,QAAerQ,IAAX2Q,EAAsB,CACxB,IAAI0D,EAAa1D,EAAOzQ,GAExB,GAA0B,mBAAfmU,EACT,OAAO,EACF,QAAmBrU,IAAfqU,EACT,OAAOA,EAAW3rB,MAEtB,CAEA,OAAO,CACT,CAMA,SAAS6rB,EAAWtsB,EAAK2C,GAEvB,IADA,IAAI6H,EAAO,IAAIrJ,MAAMwB,GACZ5C,EAAI,EAAGA,EAAI4C,IAAK5C,EACvByK,EAAKzK,GAAKC,EAAID,GAChB,OAAOyK,CACT,CA2CA,SAASkgB,EAA+B1C,EAAShkB,EAAMkkB,EAAUqE,GAC/D,GAA0B,mBAAfvE,EAAQwB,GACb+C,EAAMzE,KACRE,EAAQF,KAAK9jB,EAAMkkB,GAEnBF,EAAQwB,GAAGxlB,EAAMkkB,OAEd,IAAwC,mBAA7BF,EAAQwE,iBAYxB,MAAM,IAAI/V,UAAU,6EAA+EuR,GATnGA,EAAQwE,iBAAiBxoB,GAAM,SAASyoB,EAAalW,GAG/CgW,EAAMzE,MACRE,EAAQ0E,oBAAoB1oB,EAAMyoB,GAEpCvE,EAAS3R,EACX,GAGF,CACF,CAraAF,OAAO+F,eAAemM,EAAc,sBAAuB,CACzDlM,YAAY,EACZC,IAAK,WACH,OAAOwO,CACT,EACAxhB,IAAK,SAASiN,GACZ,GAAmB,iBAARA,GAAoBA,EAAM,GAAK2T,EAAY3T,GACpD,MAAM,IAAIJ,WAAW,kGAAoGI,EAAM,KAEjIuU,EAAsBvU,CACxB,IAGFgS,EAAa4B,KAAO,gBAEGpS,IAAjB7Q,KAAKkhB,SACLlhB,KAAKkhB,UAAY/R,OAAO4Q,eAAe/f,MAAMkhB,UAC/ClhB,KAAKkhB,QAAU/R,OAAOmS,OAAO,MAC7BthB,KAAKmhB,aAAe,GAGtBnhB,KAAK2jB,cAAgB3jB,KAAK2jB,oBAAiB9S,CAC7C,EAIAwQ,EAAaljB,UAAUsnB,gBAAkB,SAAyBhqB,GAChE,GAAiB,iBAANA,GAAkBA,EAAI,GAAKunB,EAAYvnB,GAChD,MAAM,IAAIwT,WAAW,gFAAkFxT,EAAI,KAG7G,OADAuE,KAAK2jB,cAAgBloB,EACduE,IACT,EAQAqhB,EAAaljB,UAAUunB,gBAAkB,WACvC,OAAO5B,EAAiB9jB,KAC1B,EAEAqhB,EAAaljB,UAAU4jB,KAAO,SAAchR,GAE1C,IADA,IAAI/P,EAAO,GACFnI,EAAI,EAAGA,EAAImK,UAAUzJ,OAAQV,IAAKmI,EAAKpH,KAAKoJ,UAAUnK,IAC/D,IAAI8sB,EAAoB,UAAT5U,EAEXyQ,EAASxhB,KAAKkhB,QAClB,QAAerQ,IAAX2Q,EACFmE,EAAWA,QAA4B9U,IAAjB2Q,EAAOvM,WAC1B,IAAK0Q,EACR,OAAO,EAGT,GAAIA,EAAS,CACX,IAAIC,EAGJ,GAFI5kB,EAAKzH,OAAS,IAChBqsB,EAAK5kB,EAAK,IACR4kB,aAAczrB,MAGhB,MAAMyrB,EAGR,IAAItC,EAAM,IAAInpB,MAAM,oBAAsByrB,EAAK,KAAOA,EAAG1J,QAAU,IAAM,KAEzE,MADAoH,EAAI3C,QAAUiF,EACRtC,CACR,CAEA,IAAIG,EAAUjC,EAAOzQ,GAErB,QAAgBF,IAAZ4S,EACF,OAAO,EAET,GAAuB,mBAAZA,EACTb,EAAaa,EAASzjB,KAAMgB,OAE5B,KAAI9H,EAAMuqB,EAAQlqB,OACdooB,EAAYyD,EAAW3B,EAASvqB,GACpC,IAASL,EAAI,EAAGA,EAAIK,IAAOL,EACzB+pB,EAAajB,EAAU9oB,GAAImH,KAAMgB,EAHX,CAM1B,OAAO,CACT,EAgEAqgB,EAAaljB,UAAU0iB,YAAc,SAAqB9P,EAAMiQ,GAC9D,OAAOgD,EAAahkB,KAAM+Q,EAAMiQ,GAAU,EAC5C,EAEAK,EAAaljB,UAAUmkB,GAAKjB,EAAaljB,UAAU0iB,YAEnDQ,EAAaljB,UAAU0nB,gBACnB,SAAyB9U,EAAMiQ,GAC7B,OAAOgD,EAAahkB,KAAM+Q,EAAMiQ,GAAU,EAC5C,EAoBJK,EAAaljB,UAAUyiB,KAAO,SAAc7P,EAAMiQ,GAGhD,OAFA6C,EAAc7C,GACdhhB,KAAKsiB,GAAGvR,EAAM8T,EAAU7kB,KAAM+Q,EAAMiQ,IAC7BhhB,IACT,EAEAqhB,EAAaljB,UAAU2nB,oBACnB,SAA6B/U,EAAMiQ,GAGjC,OAFA6C,EAAc7C,GACdhhB,KAAK6lB,gBAAgB9U,EAAM8T,EAAU7kB,KAAM+Q,EAAMiQ,IAC1ChhB,IACT,EAGJqhB,EAAaljB,UAAUkkB,eACnB,SAAwBtR,EAAMiQ,GAC5B,IAAIxL,EAAMgM,EAAQuE,EAAUltB,EAAGmtB,EAK/B,GAHAnC,EAAc7C,QAGCnQ,KADf2Q,EAASxhB,KAAKkhB,SAEZ,OAAOlhB,KAGT,QAAa6Q,KADb2E,EAAOgM,EAAOzQ,IAEZ,OAAO/Q,KAET,GAAIwV,IAASwL,GAAYxL,EAAKwL,WAAaA,EACb,KAAtBhhB,KAAKmhB,aACTnhB,KAAKkhB,QAAU/R,OAAOmS,OAAO,cAEtBE,EAAOzQ,GACVyQ,EAAOa,gBACTriB,KAAK+hB,KAAK,iBAAkBhR,EAAMyE,EAAKwL,UAAYA,SAElD,GAAoB,mBAATxL,EAAqB,CAGrC,IAFAuQ,GAAY,EAEPltB,EAAI2c,EAAKjc,OAAS,EAAGV,GAAK,EAAGA,IAChC,GAAI2c,EAAK3c,KAAOmoB,GAAYxL,EAAK3c,GAAGmoB,WAAaA,EAAU,CACzDgF,EAAmBxQ,EAAK3c,GAAGmoB,SAC3B+E,EAAWltB,EACX,KACF,CAGF,GAAIktB,EAAW,EACb,OAAO/lB,KAEQ,IAAb+lB,EACFvQ,EAAKyQ,QAiIf,SAAmBzQ,EAAM0Q,GACvB,KAAOA,EAAQ,EAAI1Q,EAAKjc,OAAQ2sB,IAC9B1Q,EAAK0Q,GAAS1Q,EAAK0Q,EAAQ,GAC7B1Q,EAAKtU,KACP,CAnIUilB,CAAU3Q,EAAMuQ,GAGE,IAAhBvQ,EAAKjc,SACPioB,EAAOzQ,GAAQyE,EAAK,SAEQ3E,IAA1B2Q,EAAOa,gBACTriB,KAAK+hB,KAAK,iBAAkBhR,EAAMiV,GAAoBhF,EAC1D,CAEA,OAAOhhB,IACT,EAEJqhB,EAAaljB,UAAUqkB,IAAMnB,EAAaljB,UAAUkkB,eAEpDhB,EAAaljB,UAAUokB,mBACnB,SAA4BxR,GAC1B,IAAI4Q,EAAWH,EAAQ3oB,EAGvB,QAAegY,KADf2Q,EAASxhB,KAAKkhB,SAEZ,OAAOlhB,KAGT,QAA8B6Q,IAA1B2Q,EAAOa,eAUT,OATyB,IAArBrf,UAAUzJ,QACZyG,KAAKkhB,QAAU/R,OAAOmS,OAAO,MAC7BthB,KAAKmhB,aAAe,QACMtQ,IAAjB2Q,EAAOzQ,KACY,KAAtB/Q,KAAKmhB,aACTnhB,KAAKkhB,QAAU/R,OAAOmS,OAAO,aAEtBE,EAAOzQ,IAEX/Q,KAIT,GAAyB,IAArBgD,UAAUzJ,OAAc,CAC1B,IACI8S,EADA0S,EAAO5P,OAAO4P,KAAKyC,GAEvB,IAAK3oB,EAAI,EAAGA,EAAIkmB,EAAKxlB,SAAUV,EAEjB,oBADZwT,EAAM0S,EAAKlmB,KAEXmH,KAAKuiB,mBAAmBlW,GAK1B,OAHArM,KAAKuiB,mBAAmB,kBACxBviB,KAAKkhB,QAAU/R,OAAOmS,OAAO,MAC7BthB,KAAKmhB,aAAe,EACbnhB,IACT,CAIA,GAAyB,mBAFzB2hB,EAAYH,EAAOzQ,IAGjB/Q,KAAKqiB,eAAetR,EAAM4Q,QACrB,QAAkB9Q,IAAd8Q,EAET,IAAK9oB,EAAI8oB,EAAUpoB,OAAS,EAAGV,GAAK,EAAGA,IACrCmH,KAAKqiB,eAAetR,EAAM4Q,EAAU9oB,IAIxC,OAAOmH,IACT,EAmBJqhB,EAAaljB,UAAUwjB,UAAY,SAAmB5Q,GACpD,OAAOiU,EAAWhlB,KAAM+Q,GAAM,EAChC,EAEAsQ,EAAaljB,UAAUioB,aAAe,SAAsBrV,GAC1D,OAAOiU,EAAWhlB,KAAM+Q,GAAM,EAChC,EAEAsQ,EAAaS,cAAgB,SAAShB,EAAS/P,GAC7C,MAAqC,mBAA1B+P,EAAQgB,cACVhB,EAAQgB,cAAc/Q,GAEtB+Q,EAAchf,KAAKge,EAAS/P,EAEvC,EAEAsQ,EAAaljB,UAAU2jB,cAAgBA,EAiBvCT,EAAaljB,UAAUojB,WAAa,WAClC,OAAOvhB,KAAKmhB,aAAe,EAAIuB,EAAe1iB,KAAKkhB,SAAW,EAChE,C,oCCvaA,IAAImF,EAAa,EAAQ,MAErBC,EAAQnX,OAAOhR,UAAUE,SACzBkE,EAAiB4M,OAAOhR,UAAUoE,eA8CtCtK,EAAOD,QAAU,SAAiBwd,EAAM+Q,EAAUC,GAC9C,IAAKH,EAAWE,GACZ,MAAM,IAAIhX,UAAU,+BAGxB,IAAIsT,EAVS3mB,EAWT8G,UAAUzJ,QAAU,IACpBspB,EAAW2D,GAZFtqB,EAeDsZ,EAda,mBAAlB8Q,EAAMxjB,KAAK5G,GAvCH,SAAsBmV,EAAOkV,EAAU1D,GACtD,IAAK,IAAIhqB,EAAI,EAAGK,EAAMmY,EAAM9X,OAAQV,EAAIK,EAAKL,IACrC0J,EAAeO,KAAKuO,EAAOxY,KACX,MAAZgqB,EACA0D,EAASlV,EAAMxY,GAAIA,EAAGwY,GAEtBkV,EAASzjB,KAAK+f,EAAUxR,EAAMxY,GAAIA,EAAGwY,GAIrD,CA4CQoV,CAAajR,EAAM+Q,EAAU1D,GACN,iBAATrN,EA1CF,SAAuB7F,EAAQ4W,EAAU1D,GACzD,IAAK,IAAIhqB,EAAI,EAAGK,EAAMyW,EAAOpW,OAAQV,EAAIK,EAAKL,IAE1B,MAAZgqB,EACA0D,EAAS5W,EAAOxS,OAAOtE,GAAIA,EAAG8W,GAE9B4W,EAASzjB,KAAK+f,EAAUlT,EAAOxS,OAAOtE,GAAIA,EAAG8W,EAGzD,CAkCQ+W,CAAclR,EAAM+Q,EAAU1D,GA/BlB,SAAuBpE,EAAQ8H,EAAU1D,GACzD,IAAK,IAAIrmB,KAAKiiB,EACNlc,EAAeO,KAAK2b,EAAQjiB,KACZ,MAAZqmB,EACA0D,EAAS9H,EAAOjiB,GAAIA,EAAGiiB,GAEvB8H,EAASzjB,KAAK+f,EAAUpE,EAAOjiB,GAAIA,EAAGiiB,GAItD,CAuBQkI,CAAcnR,EAAM+Q,EAAU1D,EAEtC,C,gCChEA,IACIyD,EAAQnX,OAAOhR,UAAUE,SACzBxB,EAAMjC,KAAKiC,IAGX+pB,EAAW,SAAkBjrB,EAAGS,GAGhC,IAFA,IAAItD,EAAM,GAEDD,EAAI,EAAGA,EAAI8C,EAAEpC,OAAQV,GAAK,EAC/BC,EAAID,GAAK8C,EAAE9C,GAEf,IAAK,IAAIiD,EAAI,EAAGA,EAAIM,EAAE7C,OAAQuC,GAAK,EAC/BhD,EAAIgD,EAAIH,EAAEpC,QAAU6C,EAAEN,GAG1B,OAAOhD,CACX,EAqBAb,EAAOD,QAAU,SAAc+rB,GAC3B,IAAI9N,EAASjW,KACb,GAAsB,mBAAXiW,GApCA,sBAoCyBqQ,EAAM5R,MAAMuB,GAC5C,MAAM,IAAI1G,UAxCE,kDAwCwB0G,GAyBxC,IAvBA,IAEI4Q,EAFA7lB,EAxBI,SAAe8lB,GAEvB,IADA,IAAIhuB,EAAM,GACDD,EAsBmB,EAtBFiD,EAAI,EAAGjD,EAAIiuB,EAAQvtB,OAAQV,GAAK,EAAGiD,GAAK,EAC9DhD,EAAIgD,GAAKgrB,EAAQjuB,GAErB,OAAOC,CACX,CAkBeiuB,CAAM/jB,WAqBbgkB,EAAcnqB,EAAI,EAAGoZ,EAAO1c,OAASyH,EAAKzH,QAC1C0tB,EAAY,GACPpuB,EAAI,EAAGA,EAAImuB,EAAanuB,IAC7BouB,EAAUpuB,GAAK,IAAMA,EAKzB,GAFAguB,EAAQpJ,SAAS,SAAU,oBA3CnB,SAAU3kB,GAElB,IADA,IAAIoE,EAAM,GACDrE,EAAI,EAAGA,EAAIC,EAAIS,OAAQV,GAAK,EACjCqE,GAAOpE,EAAID,GACPA,EAAI,EAAIC,EAAIS,SACZ2D,GAsC0D,KAnClE,OAAOA,CACX,CAkCqDgqB,CAAMD,GAAkB,4CAAjExJ,EAxBK,WACT,GAAIzd,gBAAgB6mB,EAAO,CACvB,IAAIM,EAASlR,EAAOvB,MAChB1U,KACA4mB,EAAS5lB,EAAMgC,YAEnB,OAAImM,OAAOgY,KAAYA,EACZA,EAEJnnB,IACX,CACA,OAAOiW,EAAOvB,MACVqP,EACA6C,EAAS5lB,EAAMgC,WAGvB,IAUIiT,EAAO9X,UAAW,CAClB,IAAIipB,EAAQ,WAAkB,EAC9BA,EAAMjpB,UAAY8X,EAAO9X,UACzB0oB,EAAM1oB,UAAY,IAAIipB,EACtBA,EAAMjpB,UAAY,IACtB,CAEA,OAAO0oB,CACX,C,oCCjFA,IAAIQ,EAAiB,EAAQ,MAE7BpvB,EAAOD,QAAUylB,SAAStf,UAAUif,MAAQiK,C,mCCF5C,IAAIxW,EAEAgP,EAAU,EAAQ,MAElByH,EAAS,EAAQ,MACjBC,EAAa,EAAQ,MACrBC,EAAc,EAAQ,MACtBC,EAAkB,EAAQ,MAC1BxI,EAAe,EAAQ,MACvBvB,EAAa,EAAQ,MACrBgK,EAAY,EAAQ,MAEpBvhB,EAAM,EAAQ,MACdpL,EAAQ,EAAQ,MAChB8B,EAAM,EAAQ,MACdD,EAAM,EAAQ,MACdsH,EAAM,EAAQ,MACd5D,EAAQ,EAAQ,KAChB0D,EAAO,EAAQ,MAEf2jB,EAAYlK,SAGZmK,EAAwB,SAAUC,GACrC,IACC,OAAOF,EAAU,yBAA2BE,EAAmB,iBAAxDF,EACR,CAAE,MAAOlrB,GAAI,CACd,EAEIqrB,EAAQ,EAAQ,MAChBhK,EAAkB,EAAQ,KAE1BiK,EAAiB,WACpB,MAAM,IAAIrK,CACX,EACIsK,EAAiBF,EACjB,WACF,IAGC,OAAOC,CACR,CAAE,MAAOE,GACR,IAEC,OAAOH,EAAM9kB,UAAW,UAAUoS,GACnC,CAAE,MAAO8S,GACR,OAAOH,CACR,CACD,CACD,CAbE,GAcAA,EAECI,EAAa,EAAQ,KAAR,GAEbC,EAAW,EAAQ,MACnBC,EAAa,EAAQ,MACrBC,EAAc,EAAQ,MAEtBjL,EAAS,EAAQ,MACjBC,EAAQ,EAAQ,IAEhBiL,EAAY,CAAC,EAEbC,EAAmC,oBAAfxuB,YAA+BouB,EAAuBA,EAASpuB,YAArB6W,EAE9D4X,EAAa,CAChB7I,UAAW,KACX,mBAA8C,oBAAnB8I,eAAiC7X,EAAY6X,eACxE,UAAWzuB,MACX,gBAAwC,oBAAhBgW,YAA8BY,EAAYZ,YAClE,2BAA4BkY,GAAcC,EAAWA,EAAS,GAAG1Z,OAAO6X,aAAe1V,EACvF,mCAAoCA,EACpC,kBAAmB0X,EACnB,mBAAoBA,EACpB,2BAA4BA,EAC5B,2BAA4BA,EAC5B,YAAgC,oBAAZI,QAA0B9X,EAAY8X,QAC1D,WAA8B,oBAAX7R,OAAyBjG,EAAYiG,OACxD,kBAA4C,oBAAlB8R,cAAgC/X,EAAY+X,cACtE,mBAA8C,oBAAnBC,eAAiChY,EAAYgY,eACxE,YAAaC,QACb,aAAkC,oBAAbC,SAA2BlY,EAAYkY,SAC5D,SAAU9a,KACV,cAAe+a,UACf,uBAAwBC,mBACxB,cAAeC,UACf,uBAAwBC,mBACxB,UAAW7B,EACX,SAAU8B,KACV,cAAe7B,EACf,iBAA0C,oBAAjB8B,aAA+BxY,EAAYwY,aACpE,iBAA0C,oBAAjBC,aAA+BzY,EAAYyY,aACpE,iBAA0C,oBAAjBC,aAA+B1Y,EAAY0Y,aACpE,yBAA0D,oBAAzBC,qBAAuC3Y,EAAY2Y,qBACpF,aAAc7B,EACd,sBAAuBY,EACvB,cAAoC,oBAAdkB,UAA4B5Y,EAAY4Y,UAC9D,eAAsC,oBAAfC,WAA6B7Y,EAAY6Y,WAChE,eAAsC,oBAAfC,WAA6B9Y,EAAY8Y,WAChE,aAActiB,SACd,UAAWtB,MACX,sBAAuBoiB,GAAcC,EAAWA,EAASA,EAAS,GAAG1Z,OAAO6X,cAAgB1V,EAC5F,SAA0B,iBAAT6N,KAAoBA,KAAO7N,EAC5C,QAAwB,oBAAR+Y,IAAsB/Y,EAAY+Y,IAClD,yBAAyC,oBAARA,KAAwBzB,GAAeC,EAAuBA,GAAS,IAAIwB,KAAMlb,OAAO6X,aAAtC1V,EACnF,SAAUjW,KACV,WAAYmY,OACZ,WAAY8M,EACZ,oCAAqCiI,EACrC,eAAgB+B,WAChB,aAAc1W,SACd,YAAgC,oBAAZ+P,QAA0BrS,EAAYqS,QAC1D,UAA4B,oBAAV4G,MAAwBjZ,EAAYiZ,MACtD,eAAgBtC,EAChB,mBAAoBC,EACpB,YAAgC,oBAAZ7J,QAA0B/M,EAAY+M,QAC1D,WAAY9T,OACZ,QAAwB,oBAARigB,IAAsBlZ,EAAYkZ,IAClD,yBAAyC,oBAARA,KAAwB5B,GAAeC,EAAuBA,GAAS,IAAI2B,KAAMrb,OAAO6X,aAAtC1V,EACnF,sBAAoD,oBAAtBH,kBAAoCG,EAAYH,kBAC9E,WAAY3T,OACZ,4BAA6BorB,GAAcC,EAAWA,EAAS,GAAG1Z,OAAO6X,aAAe1V,EACxF,WAAYsX,EAAazZ,OAASmC,EAClC,gBAAiBoO,EACjB,mBAAoB+I,EACpB,eAAgBQ,EAChB,cAAe9K,EACf,eAAsC,oBAAf1jB,WAA6B6W,EAAY7W,WAChE,sBAAoD,oBAAtBgwB,kBAAoCnZ,EAAYmZ,kBAC9E,gBAAwC,oBAAhBC,YAA8BpZ,EAAYoZ,YAClE,gBAAwC,oBAAhB5mB,YAA8BwN,EAAYxN,YAClE,aAAcqkB,EACd,YAAgC,oBAAZwC,QAA0BrZ,EAAYqZ,QAC1D,YAAgC,oBAAZC,QAA0BtZ,EAAYsZ,QAC1D,YAAgC,oBAAZC,QAA0BvZ,EAAYuZ,QAE1D,4BAA6B9M,EAC7B,6BAA8BD,EAC9B,0BAA2BS,EAC3B,0BAA2BuK,EAC3B,aAAcliB,EACd,eAAgBpL,EAChB,aAAc8B,EACd,aAAcD,EACd,aAAcsH,EACd,eAAgB5D,EAChB,cAAe0D,EACf,2BAA4BskB,GAG7B,GAAIF,EACH,IACC,KAAKnT,KACN,CAAE,MAAOxY,GAER,IAAI4tB,EAAajC,EAASA,EAAS3rB,IACnCgsB,EAAW,qBAAuB4B,CACnC,CAGD,IAAIC,EAAS,SAASA,EAAOxtB,GAC5B,IAAI4S,EACJ,GAAa,oBAAT5S,EACH4S,EAAQkY,EAAsB,6BACxB,GAAa,wBAAT9qB,EACV4S,EAAQkY,EAAsB,wBACxB,GAAa,6BAAT9qB,EACV4S,EAAQkY,EAAsB,8BACxB,GAAa,qBAAT9qB,EAA6B,CACvC,IAAIogB,EAAKoN,EAAO,4BACZpN,IACHxN,EAAQwN,EAAG/e,UAEb,MAAO,GAAa,6BAATrB,EAAqC,CAC/C,IAAIytB,EAAMD,EAAO,oBACbC,GAAOnC,IACV1Y,EAAQ0Y,EAASmC,EAAIpsB,WAEvB,CAIA,OAFAsqB,EAAW3rB,GAAQ4S,EAEZA,CACR,EAEI8a,EAAiB,CACpB5K,UAAW,KACX,yBAA0B,CAAC,cAAe,aAC1C,mBAAoB,CAAC,QAAS,aAC9B,uBAAwB,CAAC,QAAS,YAAa,WAC/C,uBAAwB,CAAC,QAAS,YAAa,WAC/C,oBAAqB,CAAC,QAAS,YAAa,QAC5C,sBAAuB,CAAC,QAAS,YAAa,UAC9C,2BAA4B,CAAC,gBAAiB,aAC9C,mBAAoB,CAAC,yBAA0B,aAC/C,4BAA6B,CAAC,yBAA0B,YAAa,aACrE,qBAAsB,CAAC,UAAW,aAClC,sBAAuB,CAAC,WAAY,aACpC,kBAAmB,CAAC,OAAQ,aAC5B,mBAAoB,CAAC,QAAS,aAC9B,uBAAwB,CAAC,YAAa,aACtC,0BAA2B,CAAC,eAAgB,aAC5C,0BAA2B,CAAC,eAAgB,aAC5C,sBAAuB,CAAC,WAAY,aACpC,cAAe,CAAC,oBAAqB,aACrC,uBAAwB,CAAC,oBAAqB,YAAa,aAC3D,uBAAwB,CAAC,YAAa,aACtC,wBAAyB,CAAC,aAAc,aACxC,wBAAyB,CAAC,aAAc,aACxC,cAAe,CAAC,OAAQ,SACxB,kBAAmB,CAAC,OAAQ,aAC5B,iBAAkB,CAAC,MAAO,aAC1B,oBAAqB,CAAC,SAAU,aAChC,oBAAqB,CAAC,SAAU,aAChC,sBAAuB,CAAC,SAAU,YAAa,YAC/C,qBAAsB,CAAC,SAAU,YAAa,WAC9C,qBAAsB,CAAC,UAAW,aAClC,sBAAuB,CAAC,UAAW,YAAa,QAChD,gBAAiB,CAAC,UAAW,OAC7B,mBAAoB,CAAC,UAAW,UAChC,oBAAqB,CAAC,UAAW,WACjC,wBAAyB,CAAC,aAAc,aACxC,4BAA6B,CAAC,iBAAkB,aAChD,oBAAqB,CAAC,SAAU,aAChC,iBAAkB,CAAC,MAAO,aAC1B,+BAAgC,CAAC,oBAAqB,aACtD,oBAAqB,CAAC,SAAU,aAChC,oBAAqB,CAAC,SAAU,aAChC,yBAA0B,CAAC,cAAe,aAC1C,wBAAyB,CAAC,aAAc,aACxC,uBAAwB,CAAC,YAAa,aACtC,wBAAyB,CAAC,aAAc,aACxC,+BAAgC,CAAC,oBAAqB,aACtD,yBAA0B,CAAC,cAAe,aAC1C,yBAA0B,CAAC,cAAe,aAC1C,sBAAuB,CAAC,WAAY,aACpC,qBAAsB,CAAC,UAAW,aAClC,qBAAsB,CAAC,UAAW,cAG/BxC,EAAO,EAAQ,MACfqN,EAAS,EAAQ,MACjBC,EAAUtN,EAAKta,KAAKwa,EAAOrjB,MAAMkE,UAAUgG,QAC3CwmB,EAAevN,EAAKta,KAAKua,EAAQpjB,MAAMkE,UAAUoF,QACjDqnB,EAAWxN,EAAKta,KAAKwa,EAAOvgB,OAAOoB,UAAUgC,SAC7C0qB,EAAYzN,EAAKta,KAAKwa,EAAOvgB,OAAOoB,UAAUnC,OAC9C8uB,EAAQ1N,EAAKta,KAAKwa,EAAOxT,OAAO3L,UAAU4sB,MAG1CC,EAAa,qGACbC,EAAe,WAiBfC,EAAmB,SAA0BpuB,EAAMwhB,GACtD,IACI6M,EADAC,EAAgBtuB,EAOpB,GALI2tB,EAAOD,EAAgBY,KAE1BA,EAAgB,KADhBD,EAAQX,EAAeY,IACK,GAAK,KAG9BX,EAAOhC,EAAY2C,GAAgB,CACtC,IAAI1b,EAAQ+Y,EAAW2C,GAIvB,GAHI1b,IAAU6Y,IACb7Y,EAAQ4a,EAAOc,SAEK,IAAV1b,IAA0B4O,EACpC,MAAM,IAAIZ,EAAW,aAAe5gB,EAAO,wDAG5C,MAAO,CACNquB,MAAOA,EACPruB,KAAMsuB,EACN1b,MAAOA,EAET,CAEA,MAAM,IAAIuP,EAAa,aAAeniB,EAAO,mBAC9C,EAEA7E,EAAOD,QAAU,SAAsB8E,EAAMwhB,GAC5C,GAAoB,iBAATxhB,GAAqC,IAAhBA,EAAKvD,OACpC,MAAM,IAAImkB,EAAW,6CAEtB,GAAI1a,UAAUzJ,OAAS,GAA6B,kBAAjB+kB,EAClC,MAAM,IAAIZ,EAAW,6CAGtB,GAAmC,OAA/BoN,EAAM,cAAehuB,GACxB,MAAM,IAAImiB,EAAa,sFAExB,IAAIxlB,EAtDc,SAAsBkW,GACxC,IAAI6I,EAAQqS,EAAUlb,EAAQ,EAAG,GAC7B3D,EAAO6e,EAAUlb,GAAS,GAC9B,GAAc,MAAV6I,GAA0B,MAATxM,EACpB,MAAM,IAAIiT,EAAa,kDACjB,GAAa,MAATjT,GAA0B,MAAVwM,EAC1B,MAAM,IAAIyG,EAAa,kDAExB,IAAIkI,EAAS,GAIb,OAHAyD,EAASjb,EAAQqb,GAAY,SAAUK,EAAOC,EAAQC,EAAOC,GAC5DrE,EAAOA,EAAO5tB,QAAUgyB,EAAQX,EAASY,EAAWP,EAAc,MAAQK,GAAUD,CACrF,IACOlE,CACR,CAyCasE,CAAa3uB,GACrB4uB,EAAoBjyB,EAAMF,OAAS,EAAIE,EAAM,GAAK,GAElD8kB,EAAY2M,EAAiB,IAAMQ,EAAoB,IAAKpN,GAC5DqN,EAAoBpN,EAAUzhB,KAC9B4S,EAAQ6O,EAAU7O,MAClBkc,GAAqB,EAErBT,EAAQ5M,EAAU4M,MAClBA,IACHO,EAAoBP,EAAM,GAC1BR,EAAalxB,EAAOixB,EAAQ,CAAC,EAAG,GAAIS,KAGrC,IAAK,IAAItyB,EAAI,EAAGgzB,GAAQ,EAAMhzB,EAAIY,EAAMF,OAAQV,GAAK,EAAG,CACvD,IAAIizB,EAAOryB,EAAMZ,GACb2f,EAAQqS,EAAUiB,EAAM,EAAG,GAC3B9f,EAAO6e,EAAUiB,GAAO,GAC5B,IAEa,MAAVtT,GAA2B,MAAVA,GAA2B,MAAVA,GACtB,MAATxM,GAAyB,MAATA,GAAyB,MAATA,IAElCwM,IAAUxM,EAEb,MAAM,IAAIiT,EAAa,wDASxB,GAPa,gBAAT6M,GAA2BD,IAC9BD,GAAqB,GAMlBnB,EAAOhC,EAFXkD,EAAoB,KADpBD,GAAqB,IAAMI,GACmB,KAG7Cpc,EAAQ+Y,EAAWkD,QACb,GAAa,MAATjc,EAAe,CACzB,KAAMoc,KAAQpc,GAAQ,CACrB,IAAK4O,EACJ,MAAM,IAAIZ,EAAW,sBAAwB5gB,EAAO,+CAErD,MACD,CACA,GAAIgrB,GAAUjvB,EAAI,GAAMY,EAAMF,OAAQ,CACrC,IAAIimB,EAAOsI,EAAMpY,EAAOoc,GAWvBpc,GAVDmc,IAAUrM,IASG,QAASA,KAAU,kBAAmBA,EAAKpK,KAC/CoK,EAAKpK,IAEL1F,EAAMoc,EAEhB,MACCD,EAAQpB,EAAO/a,EAAOoc,GACtBpc,EAAQA,EAAMoc,GAGXD,IAAUD,IACbnD,EAAWkD,GAAqBjc,EAElC,CACD,CACA,OAAOA,CACR,C,oCCvXA,IAAImQ,EAAU,EAAQ,MAGtB5nB,EAAOD,QAAU6nB,EAAQE,gBAAkB,I,gCCF3C9nB,EAAOD,QAA8B,oBAAZ4lB,SAA2BA,QAAQmC,gBAAmB,I,oCCD/E,IAAIgM,EAAkB,EAAQ,MAC1BC,EAAmB,EAAQ,MAE3BC,EAAiB,EAAQ,MAG7Bh0B,EAAOD,QAAU+zB,EACd,SAAkBG,GAEnB,OAAOH,EAAgBG,EACxB,EACEF,EACC,SAAkBE,GACnB,IAAKA,GAAmB,iBAANA,GAA+B,mBAANA,EAC1C,MAAM,IAAI3c,UAAU,2BAGrB,OAAOyc,EAAiBE,EACzB,EACED,EACC,SAAkBC,GAEnB,OAAOD,EAAeC,EACvB,EACE,I,gCCvBLj0B,EAAOD,QAAUmX,OAAOgd,wB,oCCAxB,IAAIrE,EAAQ,EAAQ,MAEpB,GAAIA,EACH,IACCA,EAAM,GAAI,SACX,CAAE,MAAOrrB,GAERqrB,EAAQ,IACT,CAGD7vB,EAAOD,QAAU8vB,C,mCCZjB,IAAIhK,EAAkB,EAAQ,KAE1BsO,EAAyB,WAC5B,QAAStO,CACV,EAEAsO,EAAuBC,wBAA0B,WAEhD,IAAKvO,EACJ,OAAO,KAER,IACC,OAA8D,IAAvDA,EAAgB,GAAI,SAAU,CAAEpO,MAAO,IAAKnW,MACpD,CAAE,MAAOkD,GAER,OAAO,CACR,CACD,EAEAxE,EAAOD,QAAUo0B,C,oCCnBjB,IAAIE,EAA+B,oBAAX5d,QAA0BA,OAC9C6d,EAAgB,EAAQ,MAG5Bt0B,EAAOD,QAAU,WAChB,MAA0B,mBAAfs0B,GACW,mBAAX5d,QACsB,iBAAtB4d,EAAW,QACO,iBAAlB5d,OAAO,QAEX6d,GACR,C,gCCTAt0B,EAAOD,QAAU,WAChB,GAAsB,mBAAX0W,QAAiE,mBAAjCS,OAAOuS,sBAAwC,OAAO,EACjG,GAA+B,iBAApBhT,OAAO6X,SAAyB,OAAO,EAGlD,IAAIlkB,EAAM,CAAC,EACPsZ,EAAMjN,OAAO,QACb8d,EAASrd,OAAOwM,GACpB,GAAmB,iBAARA,EAAoB,OAAO,EAEtC,GAA4C,oBAAxCxM,OAAOhR,UAAUE,SAASyE,KAAK6Y,GAA8B,OAAO,EACxE,GAA+C,oBAA3CxM,OAAOhR,UAAUE,SAASyE,KAAK0pB,GAAiC,OAAO,EAY3E,IAAK,IAAIC,KADTpqB,EAAIsZ,GADS,GAECtZ,EAAO,OAAO,EAC5B,GAA2B,mBAAhB8M,OAAO4P,MAAmD,IAA5B5P,OAAO4P,KAAK1c,GAAK9I,OAAgB,OAAO,EAEjF,GAA0C,mBAA/B4V,OAAO4T,qBAAiF,IAA3C5T,OAAO4T,oBAAoB1gB,GAAK9I,OAAgB,OAAO,EAE/G,IAAImzB,EAAOvd,OAAOuS,sBAAsBrf,GACxC,GAAoB,IAAhBqqB,EAAKnzB,QAAgBmzB,EAAK,KAAO/Q,EAAO,OAAO,EAEnD,IAAKxM,OAAOhR,UAAUwuB,qBAAqB7pB,KAAKT,EAAKsZ,GAAQ,OAAO,EAEpE,GAA+C,mBAApCxM,OAAOgd,yBAAyC,CAE1D,IAAIS,EAAgDzd,OAAOgd,yBAAyB9pB,EAAKsZ,GACzF,GAfY,KAeRiR,EAAWld,QAA8C,IAA1Bkd,EAAWzX,WAAuB,OAAO,CAC7E,CAEA,OAAO,CACR,C,oCC1CA,IAAIgT,EAAa,EAAQ,MAGzBlwB,EAAOD,QAAU,WAChB,OAAOmwB,OAAkBzZ,OAAOme,WACjC,C,oCCLA,IAAI/pB,EAAO2a,SAAStf,UAAU2E,KAC1BgqB,EAAU3d,OAAOhR,UAAUoE,eAC3B6a,EAAO,EAAQ,MAGnBnlB,EAAOD,QAAUolB,EAAKta,KAAKA,EAAMgqB,E,oBCNjC90B,EAAQya,KAAO,SAAUnC,EAAQwC,EAAQia,EAAMC,EAAMC,GACnD,IAAIxwB,EAAG6H,EACH4oB,EAAiB,EAATD,EAAcD,EAAO,EAC7BG,GAAQ,GAAKD,GAAQ,EACrBE,EAAQD,GAAQ,EAChBE,GAAS,EACTx0B,EAAIk0B,EAAQE,EAAS,EAAK,EAC1B7rB,EAAI2rB,GAAQ,EAAI,EAChBnxB,EAAI0U,EAAOwC,EAASja,GAOxB,IALAA,GAAKuI,EAEL3E,EAAIb,GAAM,IAAOyxB,GAAU,EAC3BzxB,KAAQyxB,EACRA,GAASH,EACFG,EAAQ,EAAG5wB,EAAS,IAAJA,EAAW6T,EAAOwC,EAASja,GAAIA,GAAKuI,EAAGisB,GAAS,GAKvE,IAHA/oB,EAAI7H,GAAM,IAAO4wB,GAAU,EAC3B5wB,KAAQ4wB,EACRA,GAASL,EACFK,EAAQ,EAAG/oB,EAAS,IAAJA,EAAWgM,EAAOwC,EAASja,GAAIA,GAAKuI,EAAGisB,GAAS,GAEvE,GAAU,IAAN5wB,EACFA,EAAI,EAAI2wB,MACH,IAAI3wB,IAAM0wB,EACf,OAAO7oB,EAAIwB,IAAsB6W,KAAd/gB,GAAK,EAAI,GAE5B0I,GAAQ1J,KAAKsJ,IAAI,EAAG8oB,GACpBvwB,GAAQ2wB,CACV,CACA,OAAQxxB,GAAK,EAAI,GAAK0I,EAAI1J,KAAKsJ,IAAI,EAAGzH,EAAIuwB,EAC5C,EAEAh1B,EAAQ+X,MAAQ,SAAUO,EAAQZ,EAAOoD,EAAQia,EAAMC,EAAMC,GAC3D,IAAIxwB,EAAG6H,EAAGhI,EACN4wB,EAAiB,EAATD,EAAcD,EAAO,EAC7BG,GAAQ,GAAKD,GAAQ,EACrBE,EAAQD,GAAQ,EAChBG,EAAe,KAATN,EAAcpyB,KAAKsJ,IAAI,GAAI,IAAMtJ,KAAKsJ,IAAI,GAAI,IAAM,EAC1DrL,EAAIk0B,EAAO,EAAKE,EAAS,EACzB7rB,EAAI2rB,EAAO,GAAK,EAChBnxB,EAAI8T,EAAQ,GAAgB,IAAVA,GAAe,EAAIA,EAAQ,EAAK,EAAI,EAmC1D,IAjCAA,EAAQ9U,KAAKuL,IAAIuJ,GAEb3J,MAAM2J,IAAUA,IAAUiN,KAC5BrY,EAAIyB,MAAM2J,GAAS,EAAI,EACvBjT,EAAI0wB,IAEJ1wB,EAAI7B,KAAKG,MAAMH,KAAK+S,IAAI+B,GAAS9U,KAAK2yB,KAClC7d,GAASpT,EAAI1B,KAAKsJ,IAAI,GAAIzH,IAAM,IAClCA,IACAH,GAAK,IAGLoT,GADEjT,EAAI2wB,GAAS,EACNE,EAAKhxB,EAELgxB,EAAK1yB,KAAKsJ,IAAI,EAAG,EAAIkpB,IAEpB9wB,GAAK,IACfG,IACAH,GAAK,GAGHG,EAAI2wB,GAASD,GACf7oB,EAAI,EACJ7H,EAAI0wB,GACK1wB,EAAI2wB,GAAS,GACtB9oB,GAAMoL,EAAQpT,EAAK,GAAK1B,KAAKsJ,IAAI,EAAG8oB,GACpCvwB,GAAQ2wB,IAER9oB,EAAIoL,EAAQ9U,KAAKsJ,IAAI,EAAGkpB,EAAQ,GAAKxyB,KAAKsJ,IAAI,EAAG8oB,GACjDvwB,EAAI,IAIDuwB,GAAQ,EAAG1c,EAAOwC,EAASja,GAAS,IAAJyL,EAAUzL,GAAKuI,EAAGkD,GAAK,IAAK0oB,GAAQ,GAI3E,IAFAvwB,EAAKA,GAAKuwB,EAAQ1oB,EAClB4oB,GAAQF,EACDE,EAAO,EAAG5c,EAAOwC,EAASja,GAAS,IAAJ4D,EAAU5D,GAAKuI,EAAG3E,GAAK,IAAKywB,GAAQ,GAE1E5c,EAAOwC,EAASja,EAAIuI,IAAU,IAAJxF,CAC5B,C,mBCpF6B,mBAAlBuT,OAAOmS,OAEhBrpB,EAAOD,QAAU,SAAkBw1B,EAAMC,GACnCA,IACFD,EAAKE,OAASD,EACdD,EAAKrvB,UAAYgR,OAAOmS,OAAOmM,EAAUtvB,UAAW,CAClDC,YAAa,CACXsR,MAAO8d,EACPrY,YAAY,EACZ4G,UAAU,EACVC,cAAc,KAItB,EAGA/jB,EAAOD,QAAU,SAAkBw1B,EAAMC,GACvC,GAAIA,EAAW,CACbD,EAAKE,OAASD,EACd,IAAIE,EAAW,WAAa,EAC5BA,EAASxvB,UAAYsvB,EAAUtvB,UAC/BqvB,EAAKrvB,UAAY,IAAIwvB,EACrBH,EAAKrvB,UAAUC,YAAcovB,CAC/B,CACF,C,gCCvBF,IAEII,EACAC,EAHAC,EAAUrQ,SAAStf,UAAUE,SAC7B0vB,EAAkC,iBAAZnQ,SAAoC,OAAZA,SAAoBA,QAAQlJ,MAG9E,GAA4B,mBAAjBqZ,GAAgE,mBAA1B5e,OAAO+F,eACvD,IACC0Y,EAAeze,OAAO+F,eAAe,CAAC,EAAG,SAAU,CAClDE,IAAK,WACJ,MAAMyY,CACP,IAEDA,EAAmB,CAAC,EAEpBE,GAAa,WAAc,MAAM,EAAI,GAAG,KAAMH,EAC/C,CAAE,MAAOnB,GACJA,IAAMoB,IACTE,EAAe,KAEjB,MAEAA,EAAe,KAGhB,IAAIC,EAAmB,cACnBC,EAAe,SAA4Bve,GAC9C,IACC,IAAIwe,EAAQJ,EAAQhrB,KAAK4M,GACzB,OAAOse,EAAiB9tB,KAAKguB,EAC9B,CAAE,MAAOzxB,GACR,OAAO,CACR,CACD,EAEI0xB,EAAoB,SAA0Bze,GACjD,IACC,OAAIue,EAAave,KACjBoe,EAAQhrB,KAAK4M,IACN,EACR,CAAE,MAAOjT,GACR,OAAO,CACR,CACD,EACI6pB,EAAQnX,OAAOhR,UAAUE,SAOzB+vB,EAAmC,mBAAX1f,UAA2BA,OAAOme,YAE1DwB,IAAW,IAAK,CAAC,IAEjBC,EAAQ,WAA8B,OAAO,CAAO,EACxD,GAAwB,iBAAbC,SAAuB,CAEjC,IAAIC,EAAMD,SAASC,IACflI,EAAMxjB,KAAK0rB,KAASlI,EAAMxjB,KAAKyrB,SAASC,OAC3CF,EAAQ,SAA0B5e,GAGjC,IAAK2e,IAAW3e,UAA4B,IAAVA,GAA0C,iBAAVA,GACjE,IACC,IAAIxS,EAAMopB,EAAMxjB,KAAK4M,GACrB,OAlBU,+BAmBTxS,GAlBU,qCAmBPA,GAlBO,4BAmBPA,GAxBS,oBAyBTA,IACc,MAAbwS,EAAM,GACZ,CAAE,MAAOjT,GAAU,CAEpB,OAAO,CACR,EAEF,CAEAxE,EAAOD,QAAU+1B,EACd,SAAoBre,GACrB,GAAI4e,EAAM5e,GAAU,OAAO,EAC3B,IAAKA,EAAS,OAAO,EACrB,GAAqB,mBAAVA,GAAyC,iBAAVA,EAAsB,OAAO,EACvE,IACCqe,EAAare,EAAO,KAAMke,EAC3B,CAAE,MAAOnxB,GACR,GAAIA,IAAMoxB,EAAoB,OAAO,CACtC,CACA,OAAQI,EAAave,IAAUye,EAAkBze,EAClD,EACE,SAAoBA,GACrB,GAAI4e,EAAM5e,GAAU,OAAO,EAC3B,IAAKA,EAAS,OAAO,EACrB,GAAqB,mBAAVA,GAAyC,iBAAVA,EAAsB,OAAO,EACvE,GAAI0e,EAAkB,OAAOD,EAAkBze,GAC/C,GAAIue,EAAave,GAAU,OAAO,EAClC,IAAI+e,EAAWnI,EAAMxjB,KAAK4M,GAC1B,QApDY,sBAoDR+e,GAnDS,+BAmDeA,IAA0B,iBAAmBvuB,KAAKuuB,KACvEN,EAAkBze,EAC1B,C,oCClGD,IAAIgf,EAAkB,EAAQ,MAG9Bz2B,EAAOD,QAAU,SAAsB0X,GACtC,QAASgf,EAAgBhf,EAC1B,C,mBCPA,IAAIrR,EAAW,CAAC,EAAEA,SAElBpG,EAAOD,QAAUiC,MAAM+W,SAAW,SAAUlY,GAC1C,MAA6B,kBAAtBuF,EAASyE,KAAKhK,EACvB,C,uBCJA,IAAI61B,EAAiB,kBACjBC,EAAiB,EAAQ,MAE7B32B,EAAOD,QAAU,SAAS62B,GACtB,MAAQ,CACJC,MAAOF,EAAWC,GAClBlQ,UAAWgQ,EAEnB,EAEA12B,EAAOD,QAAQ82B,MAAQF,IACvB32B,EAAOD,QAAQ2mB,UAAYgQ,C,uBCX3B,IAAIl0B,EAAY,KAMhB,MAAMs0B,EAAiB,0IACjBC,EAAuB,2JAmb7B/2B,EAAOD,QAnXU,SAAU62B,GACzB,aAWA,IAAII,EAAW,CACbC,QAAQ,EACRC,eAAe,EACfC,kBAAkB,EAClBC,iBAAiB,EACjBC,YAAa,QACbC,kBAAmB,SAIrB,GAAIV,QAA2C,CAY7C,IAXuB,IAAnBA,EAAQK,SACVD,EAASC,QAAS,IAEU,IAA1BL,EAAQM,gBACVF,EAASE,eAAgB,GAE3BF,EAASG,kBACsB,IAA7BP,EAAQO,kBAA4BP,EAAQO,iBAC9CH,EAASI,iBACqB,IAA5BR,EAAQQ,iBAA2BR,EAAQQ,qBAEJ,IAA9BR,EAAQU,kBAAmC,CACpD,GACgC,UAA9BV,EAAQU,mBACsB,WAA9BV,EAAQU,mBACsB,aAA9BV,EAAQU,kBAIR,MAAM,IAAIp1B,MACR,mGAAmG00B,EAAQU,qBAH7GN,EAASM,kBAAoBV,EAAQU,iBAMzC,CAEA,QAAmC,IAAxBV,EAAQS,YAA6B,CAC9C,GAC0B,UAAxBT,EAAQS,aACgB,WAAxBT,EAAQS,aACgB,aAAxBT,EAAQS,YAIR,MAAM,IAAIn1B,MACR,6FAA6F00B,EAAQS,eAHvGL,EAASK,YAAcT,EAAQS,WAMnC,CACF,CAEA,IAAIE,EACFC,EAWAC,EAyJAhgB,EAnKAigB,EAAU,CACR,IAAK,IACL,KAAM,KACN,IAAK,IACLvzB,EAAG,KACHwzB,EAAG,KACHn0B,EAAG,KACHM,EAAG,KACHmM,EAAG,MAGL+M,EAAQ,SAAU3Q,GAGhB,KAAM,CACJxH,KAAM,cACNof,QAAS5X,EACTkrB,GAAIA,EACJE,KAAMA,EAEV,EACAG,EAAO,SAAUvzB,GAYf,OATIA,GAAKA,IAAMmzB,GACbxa,EAAM,aAAe3Y,EAAI,iBAAmBmzB,EAAK,KAMnDA,EAAKC,EAAKvyB,OAAOqyB,GACjBA,GAAM,EACCC,CACT,EACAnE,EAAS,WAGP,IAAIA,EACF3b,EAAS,GAMX,IAJW,MAAP8f,IACF9f,EAAS,IACTkgB,EAAK,MAEAJ,GAAM,KAAOA,GAAM,KACxB9f,GAAU8f,EACVI,IAEF,GAAW,MAAPJ,EAEF,IADA9f,GAAU,IACHkgB,KAAUJ,GAAM,KAAOA,GAAM,KAClC9f,GAAU8f,EAGd,GAAW,MAAPA,GAAqB,MAAPA,EAOhB,IANA9f,GAAU8f,EACVI,IACW,MAAPJ,GAAqB,MAAPA,IAChB9f,GAAU8f,EACVI,KAEKJ,GAAM,KAAOA,GAAM,KACxB9f,GAAU8f,EACVI,IAIJ,GADAvE,GAAU3b,EACLtI,SAASikB,GAMZ,OAHiB,MAAb7wB,IAAmBA,EAAY,EAAQ,OAGvCkV,EAAOpW,OAAS,GACX01B,EAASE,cACZxf,EACAsf,EAASI,gBACTvY,OAAOnH,GACP,IAAIlV,EAAUkV,GAEVsf,EAASG,iBAEbH,EAASI,gBACTvY,OAAOwU,GACP,IAAI7wB,EAAU6wB,GAHdA,EAbNrW,EAAM,aAkBV,EACAtF,EAAS,WAGP,IAAImgB,EACFj3B,EAEAk3B,EADApgB,EAAS,GAKX,GAAW,MAAP8f,EAEF,IADA,IAAIO,EAAUR,EACPK,KAAQ,CACb,GAAW,MAAPJ,EAGF,OAFID,EAAK,EAAIQ,IAASrgB,GAAU+f,EAAKrvB,UAAU2vB,EAASR,EAAK,IAC7DK,IACOlgB,EAET,GAAW,OAAP8f,EAAa,CAGf,GAFID,EAAK,EAAIQ,IAASrgB,GAAU+f,EAAKrvB,UAAU2vB,EAASR,EAAK,IAC7DK,IACW,MAAPJ,EAAY,CAEd,IADAM,EAAQ,EACHl3B,EAAI,EAAGA,EAAI,IACdi3B,EAAM3c,SAAS0c,IAAQ,IAClBxoB,SAASyoB,IAFGj3B,GAAK,EAKtBk3B,EAAgB,GAARA,EAAaD,EAEvBngB,GAAU5S,OAAO0X,aAAasb,EAChC,KAAO,IAA2B,iBAAhBJ,EAAQF,GAGxB,MAFA9f,GAAUggB,EAAQF,EAGpB,CACAO,EAAUR,CACZ,CACF,CAEFva,EAAM,aACR,EACAgb,EAAQ,WAGN,KAAOR,GAAMA,GAAM,KACjBI,GAEJ,EAmIF,OAtBAngB,EAAQ,WAKN,OADAugB,IACQR,GACN,IAAK,IACH,OA/DK,WAGP,IAAIpjB,EACFoS,EAAStP,OAAOmS,OAAO,MAEzB,GAAW,MAAPmO,EAAY,CAGd,GAFAI,EAAK,KACLI,IACW,MAAPR,EAEF,OADAI,EAAK,KACEpR,EAET,KAAOgR,GAAI,CAgCT,GA/BApjB,EAAMsD,IACNsgB,IACAJ,EAAK,MAEiB,IAApBZ,EAASC,QACT/f,OAAO5M,eAAeO,KAAK2b,EAAQpS,IAEnC4I,EAAM,kBAAoB5I,EAAM,MAGD,IAA7B0iB,EAAe7uB,KAAKmM,GACO,UAAzB4iB,EAASK,YACXra,EAAM,gDAC4B,WAAzBga,EAASK,YAClB5f,IAEA+O,EAAOpS,GAAOqD,KAE4B,IAAnCsf,EAAqB9uB,KAAKmM,GACA,UAA/B4iB,EAASM,kBACXta,EAAM,kDACkC,WAA/Bga,EAASM,kBAClB7f,IAEA+O,EAAOpS,GAAOqD,IAGhB+O,EAAOpS,GAAOqD,IAGhBugB,IACW,MAAPR,EAEF,OADAI,EAAK,KACEpR,EAEToR,EAAK,KACLI,GACF,CACF,CACAhb,EAAM,aACR,CASWwJ,GACT,IAAK,IACH,OA1FI,WAGN,IAAIpN,EAAQ,GAEZ,GAAW,MAAPoe,EAAY,CAGd,GAFAI,EAAK,KACLI,IACW,MAAPR,EAEF,OADAI,EAAK,KACExe,EAET,KAAOoe,GAAI,CAGT,GAFApe,EAAMzX,KAAK8V,KACXugB,IACW,MAAPR,EAEF,OADAI,EAAK,KACExe,EAETwe,EAAK,KACLI,GACF,CACF,CACAhb,EAAM,YACR,CAkEW5D,GACT,IAAK,IACH,OAAO1B,IACT,IAAK,IACH,OAAO2b,IACT,QACE,OAAOmE,GAAM,KAAOA,GAAM,IAAMnE,IA3H7B,WAGL,OAAQmE,GACN,IAAK,IAKH,OAJAI,EAAK,KACLA,EAAK,KACLA,EAAK,KACLA,EAAK,MACE,EACT,IAAK,IAMH,OALAA,EAAK,KACLA,EAAK,KACLA,EAAK,KACLA,EAAK,KACLA,EAAK,MACE,EACT,IAAK,IAKH,OAJAA,EAAK,KACLA,EAAK,KACLA,EAAK,KACLA,EAAK,KACE,KAEX5a,EAAM,eAAiBwa,EAAK,IAC9B,CAkG+CS,GAEjD,EAKO,SAAUC,EAAQC,GACvB,IAAIjJ,EAiBJ,OAfAuI,EAAOS,EAAS,GAChBX,EAAK,EACLC,EAAK,IACLtI,EAASzX,IACTugB,IACIR,GACFxa,EAAM,gBASkB,mBAAZmb,EACV,SAAUC,EAAKC,EAAQjkB,GACrB,IACEzM,EACA8P,EAAQ4gB,EAAOjkB,GAWjB,OAVIqD,GAA0B,iBAAVA,GAClBP,OAAO4P,KAAKrP,GAAO6gB,SAAQ,SAAU/zB,QAEzBqU,KADVjR,EAAIywB,EAAK3gB,EAAOlT,IAEdkT,EAAMlT,GAAKoD,SAEJ8P,EAAMlT,EAEjB,IAEK4zB,EAAQttB,KAAKwtB,EAAQjkB,EAAKqD,EAClC,CAfD,CAeG,CAAE,GAAIyX,GAAU,IACnBA,CACN,CACF,C,uBCxbA,IAAI1sB,EAAY,EAAQ,MAmKpBikB,EAAOzmB,EAAOD,SAEjB,WACG,aAOA,IAEIw4B,EACAC,EAUAtnB,EAZAunB,EAAY,2HAGZC,EAAO,CACH,KAAM,MACN,KAAM,MACN,KAAM,MACN,KAAM,MACN,KAAM,MACN,IAAM,MACN,KAAM,QAKd,SAASpF,EAAM5b,GAQX,OADA+gB,EAAUE,UAAY,EACfF,EAAUxwB,KAAKyP,GAAU,IAAMA,EAAOxP,QAAQuwB,GAAW,SAAU/0B,GACtE,IAAIW,EAAIq0B,EAAKh1B,GACb,MAAoB,iBAANW,EACRA,EACA,OAAS,OAASX,EAAEvC,WAAW,GAAGiF,SAAS,KAAKrC,OAAO,EACjE,IAAK,IAAM,IAAM2T,EAAS,GAC9B,CAGA,SAASzS,EAAImP,EAAKikB,GAId,IAAIz3B,EACA2D,EACAoD,EACArG,EAEAs3B,EADAC,EAAON,EAEP9gB,EAAQ4gB,EAAOjkB,GACfxJ,EAAuB,MAAT6M,IAAkBA,aAAiBjV,GAAaA,EAAUoI,YAAY6M,IAkBxF,OAdIA,GAA0B,iBAAVA,GACY,mBAAjBA,EAAMjF,SACjBiF,EAAQA,EAAMjF,OAAO4B,IAMN,mBAARlD,IACPuG,EAAQvG,EAAIrG,KAAKwtB,EAAQjkB,EAAKqD,WAKnBA,GACf,IAAK,SACD,OAAI7M,EACO6M,EAEA6b,EAAM7b,GAGrB,IAAK,SAID,OAAOrI,SAASqI,GAAS3S,OAAO2S,GAAS,OAE7C,IAAK,UACL,IAAK,OACL,IAAK,SAMD,OAAO3S,OAAO2S,GAKlB,IAAK,SAKD,IAAKA,EACD,MAAO,OAUX,GALA8gB,GAAOC,EACPI,EAAU,GAIqC,mBAA3C1hB,OAAOhR,UAAUE,SAASqW,MAAMhF,GAA6B,CAM7D,IADAnW,EAASmW,EAAMnW,OACVV,EAAI,EAAGA,EAAIU,EAAQV,GAAK,EACzBg4B,EAAQh4B,GAAKqE,EAAIrE,EAAG6W,IAAU,OAYlC,OANA9P,EAAuB,IAAnBixB,EAAQt3B,OACN,KACAi3B,EACA,MAAQA,EAAMK,EAAQ92B,KAAK,MAAQy2B,GAAO,KAAOM,EAAO,IACxD,IAAMD,EAAQ92B,KAAK,KAAO,IAChCy2B,EAAMM,EACClxB,CACX,CAIA,GAAIuJ,GAAsB,iBAARA,EAEd,IADA5P,EAAS4P,EAAI5P,OACRV,EAAI,EAAGA,EAAIU,EAAQV,GAAK,EACH,iBAAXsQ,EAAItQ,KAEX+G,EAAI1C,EADJV,EAAI2M,EAAItQ,GACG6W,KAEPmhB,EAAQj3B,KAAK2xB,EAAM/uB,IAAMg0B,EAAM,KAAO,KAAO5wB,QAQzDuP,OAAO4P,KAAKrP,GAAO6gB,SAAQ,SAAS/zB,GAChC,IAAIoD,EAAI1C,EAAIV,EAAGkT,GACX9P,GACAixB,EAAQj3B,KAAK2xB,EAAM/uB,IAAMg0B,EAAM,KAAO,KAAO5wB,EAErD,IAYJ,OANAA,EAAuB,IAAnBixB,EAAQt3B,OACN,KACAi3B,EACA,MAAQA,EAAMK,EAAQ92B,KAAK,MAAQy2B,GAAO,KAAOM,EAAO,IACxD,IAAMD,EAAQ92B,KAAK,KAAO,IAChCy2B,EAAMM,EACClxB,EAEf,CAI8B,mBAAnB8e,EAAKC,YACZD,EAAKC,UAAY,SAAUjP,EAAOqhB,EAAUC,GAQxC,IAAIn4B,EAOJ,GANA23B,EAAM,GACNC,EAAS,GAKY,iBAAVO,EACP,IAAKn4B,EAAI,EAAGA,EAAIm4B,EAAOn4B,GAAK,EACxB43B,GAAU,QAKU,iBAAVO,IACdP,EAASO,GAOb,GADA7nB,EAAM4nB,EACFA,GAAgC,mBAAbA,IACM,iBAAbA,GACmB,iBAApBA,EAASx3B,QACpB,MAAM,IAAIY,MAAM,kBAMpB,OAAO+C,EAAI,GAAI,CAAC,GAAIwS,GACxB,EAER,CA1NA,E,gCClKAzX,EAAOD,QAAU4C,KAAKuL,G,gCCAtBlO,EAAOD,QAAU4C,KAAKG,K,gCCAtB9C,EAAOD,QAAU+a,OAAOhN,OAAS,SAAepK,GAC/C,OAAOA,GAAMA,CACd,C,gCCFA1D,EAAOD,QAAU4C,KAAKiC,G,gCCAtB5E,EAAOD,QAAU4C,KAAKgC,G,gCCAtB3E,EAAOD,QAAU4C,KAAKsJ,G,+BCAtBjM,EAAOD,QAAU4C,KAAK0F,K,oCCDtB,IAAI2wB,EAAS,EAAQ,MAGrBh5B,EAAOD,QAAU,SAAcszB,GAC9B,OAAI2F,EAAO3F,IAAsB,IAAXA,EACdA,EAEDA,EAAS,GAAK,EAAI,CAC1B,C,gCCPArzB,EAAOD,QAAU,CAChB,eACA,eACA,eACA,YACA,aACA,aACA,aACA,oBACA,cACA,cACA,gBACA,iB,mBCdD,IAOIk5B,EACAC,EARAC,EAAUn5B,EAAOD,QAAU,CAAC,EAUhC,SAASq5B,IACL,MAAM,IAAIl3B,MAAM,kCACpB,CACA,SAASm3B,IACL,MAAM,IAAIn3B,MAAM,oCACpB,CAqBA,SAASo3B,EAAWC,GAChB,GAAIN,IAAqBO,WAErB,OAAOA,WAAWD,EAAK,GAG3B,IAAKN,IAAqBG,IAAqBH,IAAqBO,WAEhE,OADAP,EAAmBO,WACZA,WAAWD,EAAK,GAE3B,IAEI,OAAON,EAAiBM,EAAK,EACjC,CAAE,MAAM/0B,GACJ,IAEI,OAAOy0B,EAAiBpuB,KAAK,KAAM0uB,EAAK,EAC5C,CAAE,MAAM/0B,GAEJ,OAAOy0B,EAAiBpuB,KAAK9C,KAAMwxB,EAAK,EAC5C,CACJ,CAGJ,EA5CC,WACG,IAEQN,EADsB,mBAAfO,WACYA,WAEAJ,CAE3B,CAAE,MAAO50B,GACLy0B,EAAmBG,CACvB,CACA,IAEQF,EADwB,mBAAjBO,aACcA,aAEAJ,CAE7B,CAAE,MAAO70B,GACL00B,EAAqBG,CACzB,CACJ,CAnBA,GAwEA,IAEIK,EAFAC,EAAQ,GACRC,GAAW,EAEXC,GAAc,EAElB,SAASC,IACAF,GAAaF,IAGlBE,GAAW,EACPF,EAAap4B,OACbq4B,EAAQD,EAAaxtB,OAAOytB,GAE5BE,GAAc,EAEdF,EAAMr4B,QACNy4B,IAER,CAEA,SAASA,IACL,IAAIH,EAAJ,CAGA,IAAII,EAAUV,EAAWQ,GACzBF,GAAW,EAGX,IADA,IAAI34B,EAAM04B,EAAMr4B,OACVL,GAAK,CAGP,IAFAy4B,EAAeC,EACfA,EAAQ,KACCE,EAAa54B,GACdy4B,GACAA,EAAaG,GAAYI,MAGjCJ,GAAc,EACd54B,EAAM04B,EAAMr4B,MAChB,CACAo4B,EAAe,KACfE,GAAW,EAnEf,SAAyBM,GACrB,GAAIhB,IAAuBO,aAEvB,OAAOA,aAAaS,GAGxB,IAAKhB,IAAuBG,IAAwBH,IAAuBO,aAEvE,OADAP,EAAqBO,aACdA,aAAaS,GAExB,IAEI,OAAOhB,EAAmBgB,EAC9B,CAAE,MAAO11B,GACL,IAEI,OAAO00B,EAAmBruB,KAAK,KAAMqvB,EACzC,CAAE,MAAO11B,GAGL,OAAO00B,EAAmBruB,KAAK9C,KAAMmyB,EACzC,CACJ,CAIJ,CA0CIC,CAAgBH,EAlBhB,CAmBJ,CAgBA,SAASI,EAAKb,EAAKngB,GACfrR,KAAKwxB,IAAMA,EACXxxB,KAAKqR,MAAQA,CACjB,CAWA,SAASihB,IAAQ,CA5BjBlB,EAAQmB,SAAW,SAAUf,GACzB,IAAIxwB,EAAO,IAAI/G,MAAM+I,UAAUzJ,OAAS,GACxC,GAAIyJ,UAAUzJ,OAAS,EACnB,IAAK,IAAIV,EAAI,EAAGA,EAAImK,UAAUzJ,OAAQV,IAClCmI,EAAKnI,EAAI,GAAKmK,UAAUnK,GAGhC+4B,EAAMh4B,KAAK,IAAIy4B,EAAKb,EAAKxwB,IACJ,IAAjB4wB,EAAMr4B,QAAiBs4B,GACvBN,EAAWS,EAEnB,EAOAK,EAAKl0B,UAAU+zB,IAAM,WACjBlyB,KAAKwxB,IAAI9c,MAAM,KAAM1U,KAAKqR,MAC9B,EACA+f,EAAQoB,MAAQ,UAChBpB,EAAQqB,SAAU,EAClBrB,EAAQsB,IAAM,CAAC,EACftB,EAAQuB,KAAO,GACfvB,EAAQwB,QAAU,GAClBxB,EAAQyB,SAAW,CAAC,EAIpBzB,EAAQ9O,GAAKgQ,EACblB,EAAQvQ,YAAcyR,EACtBlB,EAAQxQ,KAAO0R,EACflB,EAAQ5O,IAAM8P,EACdlB,EAAQ/O,eAAiBiQ,EACzBlB,EAAQ7O,mBAAqB+P,EAC7BlB,EAAQrP,KAAOuQ,EACflB,EAAQvL,gBAAkByM,EAC1BlB,EAAQtL,oBAAsBwM,EAE9BlB,EAAQzP,UAAY,SAAU7kB,GAAQ,MAAO,EAAG,EAEhDs0B,EAAQ0B,QAAU,SAAUh2B,GACxB,MAAM,IAAI3C,MAAM,mCACpB,EAEAi3B,EAAQ2B,IAAM,WAAc,MAAO,GAAI,EACvC3B,EAAQ4B,MAAQ,SAAU7gB,GACtB,MAAM,IAAIhY,MAAM,iCACpB,EACAi3B,EAAQ6B,MAAQ,WAAa,OAAO,CAAG,C,iCC7KvC,SAAS7lB,EAAOV,GACZ,GAAIzS,MAAM+W,QAAQtE,GAAQ,CACtB,MAAMlS,EAAS,GACf,IAAK,IAAI3B,EAAI,EAAGA,EAAI6T,EAAMnT,OAAQV,IAC9B2B,EAAOZ,KAAKwT,EAAOV,EAAM7T,KAE7B,MAAMqW,EAAMgkB,KAAe14B,GAC3B,OAAO04B,EAAYC,EAAajkB,EAAI3V,OAAQ,KAAM2V,EACtD,CACA,MAAMkkB,EAAWC,EAAQ3mB,GACzB,OAAwB,IAApB0mB,EAAS75B,QAAgB65B,EAAS,GAAK,IAChCA,EAEJF,EAAYC,EAAaC,EAAS75B,OAAQ,KAAM65B,EAC3D,CASA,SAASE,EAAU5mB,EAAOrS,EAAOC,GAC7B,GAAIA,EAAMoS,EAAMnT,OACZ,MAAM,IAAIY,MAAM,kEAEpB,OAAOuS,EAAM1Q,MAAM3B,EAAOC,EAC9B,CAKA,SAASi5B,EAAa3zB,GAClB,GAAa,IAATA,EAAE,GACF,MAAM,IAAIzF,MAAM,4BAEpB,OAAOq5B,EAAaC,EAAW7zB,GACnC,CACA,SAASuzB,EAAaj6B,EAAK4Z,GACvB,GAAI5Z,EAAM,GACN,OAAOc,WAAWyV,KAAK,CAACvW,EAAM4Z,IAElC,MAAM4gB,EAAYC,EAAYz6B,GAExB8a,EAAY2f,EAAY7gB,EAAS,GADvB4gB,EAAUn6B,OAAS,GAEnC,OAAOS,WAAWyV,KAAKmkB,EAAW5f,EAAY0f,GAClD,CACA,SAASG,EAAOnnB,EAAOonB,GAAS,GAC5B,IAAKpnB,GAA0B,IAAjBA,EAAMnT,OAChB,OAAOS,WAAWyV,KAAK,IAE3B,MACMskB,EAAUC,EADGX,EAAQ3mB,IAE3B,GAAIonB,EACA,OAAOC,EAEX,GAAiC,IAA7BA,EAAQE,UAAU16B,OAClB,MAAM,IAAIY,MAAM,uCAEpB,OAAO45B,EAAQ9iB,IACnB,CAGA,SAAS+iB,EAAQtnB,GACb,IAAInT,EAAQ26B,EAASjjB,EAAMkjB,EAAgB/yB,EAC3C,MAAM2yB,EAAU,GACV/f,EAAYtH,EAAM,GACxB,GAAIsH,GAAa,IAEb,MAAO,CACH/C,KAAMvE,EAAM1Q,MAAM,EAAG,GACrBi4B,UAAWvnB,EAAM1Q,MAAM,IAG1B,GAAIgY,GAAa,IAAM,CAWxB,GARAza,EAASya,EAAY,IAGjB/C,EADc,MAAd+C,EACOha,WAAWyV,KAAK,IAGhB6jB,EAAU5mB,EAAO,EAAGnT,GAEhB,IAAXA,GAAgB0X,EAAK,GAAK,IAC1B,MAAM,IAAI9W,MAAM,6EAEpB,MAAO,CACH8W,KAAMA,EACNgjB,UAAWvnB,EAAM1Q,MAAMzC,GAE/B,CACK,GAAIya,GAAa,IAAM,CAIxB,GADAkgB,EAAUlgB,EAAY,IAClBtH,EAAMnT,OAAS,EAAI26B,EACnB,MAAM,IAAI/5B,MAAM,mDAGpB,GADAZ,EAASg6B,EAAaD,EAAU5mB,EAAO,EAAGwnB,IACtC36B,GAAU,GACV,MAAM,IAAIY,MAAM,6DAGpB,OADA8W,EAAOqiB,EAAU5mB,EAAOwnB,EAAS36B,EAAS26B,GACnC,CACHjjB,KAAMA,EACNgjB,UAAWvnB,EAAM1Q,MAAMzC,EAAS26B,GAExC,CACK,GAAIlgB,GAAa,IAAM,CAIxB,IAFAza,EAASya,EAAY,IACrBmgB,EAAiBb,EAAU5mB,EAAO,EAAGnT,GAC9B46B,EAAe56B,QAClB6H,EAAI4yB,EAAQG,GACZJ,EAAQn6B,KAAKwH,EAAE6P,MACfkjB,EAAiB/yB,EAAE6yB,UAEvB,MAAO,CACHhjB,KAAM8iB,EACNE,UAAWvnB,EAAM1Q,MAAMzC,GAE/B,CACK,CAID,GAFA26B,EAAUlgB,EAAY,IACtBza,EAASg6B,EAAaD,EAAU5mB,EAAO,EAAGwnB,IACtC36B,EAAS,GACT,MAAM,IAAIY,MAAM,uCAEpB,MAAMi6B,EAAcF,EAAU36B,EAC9B,GAAI66B,EAAc1nB,EAAMnT,OACpB,MAAM,IAAIY,MAAM,qDAGpB,IADAg6B,EAAiBb,EAAU5mB,EAAOwnB,EAASE,GACpCD,EAAe56B,QAClB6H,EAAI4yB,EAAQG,GACZJ,EAAQn6B,KAAKwH,EAAE6P,MACfkjB,EAAiB/yB,EAAE6yB,UAEvB,MAAO,CACHhjB,KAAM8iB,EACNE,UAAWvnB,EAAM1Q,MAAMo4B,GAE/B,CACJ,CA5JAjlB,OAAO+F,eAAeld,EAAS,aAAc,CAAE0X,OAAO,IACtD1X,EAAQq8B,MAAQr8B,EAAQ67B,OAAS77B,EAAQoV,YAAS,EAuBlDpV,EAAQoV,OAASA,EA+CjBpV,EAAQ67B,OAASA,EAsFjB,MAAMS,EAAcr6B,MAAMwV,KAAK,CAAElW,OAAQ,MAAO,CAACg7B,EAAI17B,IAAMA,EAAEwF,SAAS,IAAIm2B,SAAS,EAAG,OACtF,SAASf,EAAWgB,GAEhB,IAAI3E,EAAM,GACV,IAAK,IAAIj3B,EAAI,EAAGA,EAAI47B,EAAOl7B,OAAQV,IAC/Bi3B,GAAOwE,EAAYG,EAAO57B,IAE9B,OAAOi3B,CACX,CACA,SAAS0D,EAAakB,GAClB,MAAMC,EAAO5hB,OAAOI,SAASuhB,EAAS,IACtC,GAAI3hB,OAAOhN,MAAM4uB,GACb,MAAM,IAAIx6B,MAAM,yBACpB,OAAOw6B,CACX,CAEA,SAASf,EAAW9D,GAChB,GAAmB,iBAARA,EACP,MAAM,IAAIvgB,UAAU,2CAA6CugB,GAErE,GAAIA,EAAIv2B,OAAS,EACb,MAAM,IAAIY,MAAM,6CACpB,MAAMkX,EAAQ,IAAIrX,WAAW81B,EAAIv2B,OAAS,GAC1C,IAAK,IAAIV,EAAI,EAAGA,EAAIwY,EAAM9X,OAAQV,IAAK,CACnC,MAAMiD,EAAQ,EAAJjD,EACVwY,EAAMxY,GAAK26B,EAAa1D,EAAI9zB,MAAMF,EAAGA,EAAI,GAC7C,CACA,OAAOuV,CACX,CAEA,SAAS6hB,KAAe0B,GACpB,GAAsB,IAAlBA,EAAOr7B,OACP,OAAOq7B,EAAO,GAClB,MAAMr7B,EAASq7B,EAAOhW,QAAO,CAACjjB,EAAG7C,IAAQ6C,EAAI7C,EAAIS,QAAQ,GACnD4tB,EAAS,IAAIntB,WAAWT,GAC9B,IAAK,IAAIV,EAAI,EAAGg8B,EAAM,EAAGh8B,EAAI+7B,EAAOr7B,OAAQV,IAAK,CAC7C,MAAMC,EAAM87B,EAAO/7B,GACnBsuB,EAAO/kB,IAAItJ,EAAK+7B,GAChBA,GAAO/7B,EAAIS,MACf,CACA,OAAO4tB,CACX,CACA,SAAS3V,EAAYsjB,GACjB,OAAO,IAAI3nB,aAAcC,OAAO0nB,EACpC,CAEA,SAASnB,EAAYoB,GACjB,GAAIA,EAAU,EACV,MAAM,IAAI56B,MAAM,kDAEpB,MAAM21B,EAAMiF,EAAQ12B,SAAS,IAC7B,OAAOyxB,EAAIv2B,OAAS,EAAI,IAAIu2B,IAAQA,CACxC,CAMA,SAASkF,EAAc93B,GACnB,OAAOA,EAAI3D,QAAU,GAAgB,MAAX2D,EAAI,IAAyB,MAAXA,EAAI,EACpD,CASA,SAASm2B,EAAQzzB,GACb,GAAIA,aAAa5F,WACb,OAAO4F,EAEX,GAAiB,iBAANA,EACP,OAAIo1B,EAAcp1B,GACPg0B,GArBAj4B,EASI,iBADCuB,EAa+B0C,GAXxC1C,EAEJ83B,EAAc93B,GAAOA,EAAIlB,MAAM,GAAKkB,GAXlC3D,OAAS,EAAI,IAAIoC,IAAMA,GAsBrB6V,EAAY5R,GAvB3B,IAAmBjE,EAQKuB,EAiBpB,GAAiB,iBAAN0C,GAA+B,iBAANA,EAChC,OAAKA,EAGEg0B,EAAWD,EAAY/zB,IAFnB5F,WAAWyV,KAAK,IAI/B,GAAI7P,QACA,OAAO5F,WAAWyV,KAAK,IAE3B,MAAM,IAAItV,MAAM,6CAA+CyF,EACnE,CACA5H,EAAQq8B,MAAQ,CACZZ,aACAP,cACAU,aACApiB,eAEJ,MAAMyjB,EAAM,CAAE7nB,SAAQymB,UACtB77B,EAAA,QAAkBi9B,C,uBC7PlB,IAAI3kB,EAAS,EAAQ,MACjB3B,EAAS2B,EAAO3B,OAGpB,SAASumB,EAAWpY,EAAKC,GACvB,IAAK,IAAI1Q,KAAOyQ,EACdC,EAAI1Q,GAAOyQ,EAAIzQ,EAEnB,CASA,SAAS8oB,EAAY9lB,EAAKC,EAAkB/V,GAC1C,OAAOoV,EAAOU,EAAKC,EAAkB/V,EACvC,CAVIoV,EAAOc,MAAQd,EAAOE,OAASF,EAAOa,aAAeb,EAAO2G,gBAC9Drd,EAAOD,QAAUsY,GAGjB4kB,EAAU5kB,EAAQtY,GAClBA,EAAQ2W,OAASwmB,GAOnBA,EAAWh3B,UAAYgR,OAAOmS,OAAO3S,EAAOxQ,WAG5C+2B,EAAUvmB,EAAQwmB,GAElBA,EAAW1lB,KAAO,SAAUJ,EAAKC,EAAkB/V,GACjD,GAAmB,iBAAR8V,EACT,MAAM,IAAIE,UAAU,iCAEtB,OAAOZ,EAAOU,EAAKC,EAAkB/V,EACvC,EAEA47B,EAAWtmB,MAAQ,SAAUrB,EAAMhB,EAAMoD,GACvC,GAAoB,iBAATpC,EACT,MAAM,IAAI+B,UAAU,6BAEtB,IAAIL,EAAMP,EAAOnB,GAUjB,YATaqD,IAATrE,EACsB,iBAAboD,EACTV,EAAI1C,KAAKA,EAAMoD,GAEfV,EAAI1C,KAAKA,GAGX0C,EAAI1C,KAAK,GAEJ0C,CACT,EAEAimB,EAAW3lB,YAAc,SAAUhC,GACjC,GAAoB,iBAATA,EACT,MAAM,IAAI+B,UAAU,6BAEtB,OAAOZ,EAAOnB,EAChB,EAEA2nB,EAAW7f,gBAAkB,SAAU9H,GACrC,GAAoB,iBAATA,EACT,MAAM,IAAI+B,UAAU,6BAEtB,OAAOe,EAAO1B,WAAWpB,EAC3B,C,oCC9DA,IAAI4Q,EAAe,EAAQ,KACvBlmB,EAAS,EAAQ,IACjBk9B,EAAiB,EAAQ,IAAR,GACjBzV,EAAO,EAAQ,MAEfjC,EAAa,EAAQ,MACrB2X,EAASjX,EAAa,gBAG1BnmB,EAAOD,QAAU,SAA2BklB,EAAI3jB,GAC/C,GAAkB,mBAAP2jB,EACV,MAAM,IAAIQ,EAAW,0BAEtB,GAAsB,iBAAXnkB,GAAuBA,EAAS,GAAKA,EAAS,YAAc87B,EAAO97B,KAAYA,EACzF,MAAM,IAAImkB,EAAW,8CAGtB,IAAI6B,EAAQvc,UAAUzJ,OAAS,KAAOyJ,UAAU,GAE5CsyB,GAA+B,EAC/BC,GAA2B,EAC/B,GAAI,WAAYrY,GAAMyC,EAAM,CAC3B,IAAIH,EAAOG,EAAKzC,EAAI,UAChBsC,IAASA,EAAKxD,eACjBsZ,GAA+B,GAE5B9V,IAASA,EAAKzD,WACjBwZ,GAA2B,EAE7B,CASA,OAPID,GAAgCC,IAA6BhW,KAC5D6V,EACHl9B,EAA4C,EAAM,SAAUqB,GAAQ,GAAM,GAE1ErB,EAA4C,EAAM,SAAUqB,IAGvD2jB,CACR,C,mCCvCA,IAAIvO,EAAS,eACT6mB,EAAW,EAAQ,MAGvB,SAASC,EAAKC,EAAWC,GACxB31B,KAAK41B,OAASjnB,EAAOE,MAAM6mB,GAC3B11B,KAAK61B,WAAaF,EAClB31B,KAAK81B,WAAaJ,EAClB11B,KAAK+1B,KAAO,CACb,CAEAN,EAAKt3B,UAAU63B,OAAS,SAAU/kB,EAAMglB,GAEvChlB,EAAOukB,EAASvkB,EAAMglB,GAAO,QAO7B,IALA,IAAIC,EAAQl2B,KAAK41B,OACbF,EAAY11B,KAAK81B,WACjBv8B,EAAS0X,EAAK1X,OACd48B,EAAQn2B,KAAK+1B,KAERjjB,EAAS,EAAGA,EAASvZ,GAAS,CAItC,IAHA,IAAI68B,EAAWD,EAAQT,EACnBzB,EAAYr5B,KAAKgC,IAAIrD,EAASuZ,EAAQ4iB,EAAYU,GAE7Cv9B,EAAI,EAAGA,EAAIo7B,EAAWp7B,IAC9Bq9B,EAAME,EAAWv9B,GAAKoY,EAAK6B,EAASja,GAIrCia,GAAUmhB,GADVkC,GAASlC,GAGIyB,GAAe,GAC3B11B,KAAKq2B,QAAQH,EAEf,CAGA,OADAl2B,KAAK+1B,MAAQx8B,EACNyG,IACR,EAEAy1B,EAAKt3B,UAAUm4B,OAAS,SAAUL,GACjC,IAAI3wB,EAAMtF,KAAK+1B,KAAO/1B,KAAK81B,WAE3B91B,KAAK41B,OAAOtwB,GAAO,IAMnBtF,KAAK41B,OAAOppB,KAAK,EAAGlH,EAAM,GAEtBA,GAAOtF,KAAK61B,aACf71B,KAAKq2B,QAAQr2B,KAAK41B,QAClB51B,KAAK41B,OAAOppB,KAAK,IAGlB,IAAI+pB,EAAmB,EAAZv2B,KAAK+1B,KAGhB,GAAIQ,GAAQ,WACXv2B,KAAK41B,OAAOvb,cAAckc,EAAMv2B,KAAK81B,WAAa,OAG5C,CACN,IAAIU,GAAkB,WAAPD,KAAuB,EAClCE,GAAYF,EAAOC,GAAW,WAElCx2B,KAAK41B,OAAOvb,cAAcoc,EAAUz2B,KAAK81B,WAAa,GACtD91B,KAAK41B,OAAOvb,cAAcmc,EAASx2B,KAAK81B,WAAa,EACtD,CAEA91B,KAAKq2B,QAAQr2B,KAAK41B,QAClB,IAAIc,EAAO12B,KAAK22B,QAEhB,OAAOV,EAAMS,EAAKr4B,SAAS43B,GAAOS,CACnC,EAEAjB,EAAKt3B,UAAUk4B,QAAU,WACxB,MAAM,IAAIl8B,MAAM,0CACjB,EAEAlC,EAAOD,QAAUy9B,C,oCCzEjB,IAAImB,EAAW,EAAQ,MACnBnB,EAAO,EAAQ,KACf9mB,EAAS,eAETkoB,EAAI,CACP,WACA,WACA,WACA,WACA,UACA,WACA,WACA,WACA,WACA,UACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,UACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,UACA,UACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,UACA,UACA,UACA,UACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,YAGGC,EAAI,IAAI78B,MAAM,IAElB,SAAS88B,IACR/2B,KAAKijB,OAELjjB,KAAKg3B,GAAKF,EAEVrB,EAAK3yB,KAAK9C,KAAM,GAAI,GACrB,CAiBA,SAASyvB,EAAGvzB,EAAGC,EAAGN,GACjB,OAAOA,EAAKK,GAAKC,EAAIN,EACtB,CAEA,SAASo7B,EAAI/6B,EAAGC,EAAGN,GAClB,OAAQK,EAAIC,EAAMN,GAAKK,EAAIC,EAC5B,CAEA,SAAS+6B,EAAOh7B,GACf,OAASA,IAAM,EAAMA,GAAK,KAASA,IAAM,GAAOA,GAAK,KAASA,IAAM,GAAOA,GAAK,GACjF,CAEA,SAASi7B,EAAOj7B,GACf,OAASA,IAAM,EAAMA,GAAK,KAASA,IAAM,GAAOA,GAAK,KAASA,IAAM,GAAOA,GAAK,EACjF,CAEA,SAASk7B,EAAOl7B,GACf,OAASA,IAAM,EAAMA,GAAK,KAASA,IAAM,GAAOA,GAAK,IAAQA,IAAM,CACpE,CAjCA06B,EAASG,EAAQtB,GAEjBsB,EAAO54B,UAAU8kB,KAAO,WAUvB,OATAjjB,KAAKq3B,GAAK,WACVr3B,KAAKs3B,GAAK,WACVt3B,KAAKu3B,GAAK,WACVv3B,KAAKw3B,GAAK,WACVx3B,KAAKy3B,GAAK,WACVz3B,KAAK03B,GAAK,WACV13B,KAAK23B,GAAK,UACV33B,KAAK43B,GAAK,WAEH53B,IACR,EA0BA+2B,EAAO54B,UAAUk4B,QAAU,SAAUtoB,GAYpC,IAXA,IALe7R,EAKXqoB,EAAIvkB,KAAKg3B,GAETr7B,EAAc,EAAVqE,KAAKq3B,GACTj7B,EAAc,EAAV4D,KAAKs3B,GACTh7B,EAAc,EAAV0D,KAAKu3B,GACTn2B,EAAc,EAAVpB,KAAKw3B,GACT/6B,EAAc,EAAVuD,KAAKy3B,GACT7H,EAAc,EAAV5vB,KAAK03B,GACTG,EAAc,EAAV73B,KAAK23B,GACT1rB,EAAc,EAAVjM,KAAK43B,GAEJ/+B,EAAI,EAAGA,EAAI,KAAMA,EACzB0rB,EAAE1rB,GAAKkV,EAAEkL,YAAgB,EAAJpgB,GAEtB,KAAOA,EAAI,KAAMA,EAChB0rB,EAAE1rB,GAAqE,KApBzDqD,EAoBCqoB,EAAE1rB,EAAI,MAnBP,GAAOqD,GAAK,KAASA,IAAM,GAAOA,GAAK,IAAQA,IAAM,IAmBxCqoB,EAAE1rB,EAAI,GAAKu+B,EAAO7S,EAAE1rB,EAAI,KAAO0rB,EAAE1rB,EAAI,IAGjE,IAAK,IAAIiD,EAAI,EAAGA,EAAI,KAAMA,EAAG,CAC5B,IAAIg8B,EAAM7rB,EAAIkrB,EAAO16B,GAAKgzB,EAAGhzB,EAAGmzB,EAAGiI,GAAKhB,EAAE/6B,GAAKyoB,EAAEzoB,GAAM,EACnDi8B,EAAMb,EAAOv7B,GAAKs7B,EAAIt7B,EAAGS,EAAGE,GAAM,EAEtC2P,EAAI4rB,EACJA,EAAIjI,EACJA,EAAInzB,EACJA,EAAK2E,EAAI02B,EAAM,EACf12B,EAAI9E,EACJA,EAAIF,EACJA,EAAIT,EACJA,EAAKm8B,EAAKC,EAAM,CACjB,CAEA/3B,KAAKq3B,GAAM17B,EAAIqE,KAAKq3B,GAAM,EAC1Br3B,KAAKs3B,GAAMl7B,EAAI4D,KAAKs3B,GAAM,EAC1Bt3B,KAAKu3B,GAAMj7B,EAAI0D,KAAKu3B,GAAM,EAC1Bv3B,KAAKw3B,GAAMp2B,EAAIpB,KAAKw3B,GAAM,EAC1Bx3B,KAAKy3B,GAAMh7B,EAAIuD,KAAKy3B,GAAM,EAC1Bz3B,KAAK03B,GAAM9H,EAAI5vB,KAAK03B,GAAM,EAC1B13B,KAAK23B,GAAME,EAAI73B,KAAK23B,GAAM,EAC1B33B,KAAK43B,GAAM3rB,EAAIjM,KAAK43B,GAAM,CAC3B,EAEAb,EAAO54B,UAAUw4B,MAAQ,WACxB,IAAIqB,EAAIrpB,EAAOa,YAAY,IAW3B,OATAwoB,EAAEhd,aAAahb,KAAKq3B,GAAI,GACxBW,EAAEhd,aAAahb,KAAKs3B,GAAI,GACxBU,EAAEhd,aAAahb,KAAKu3B,GAAI,GACxBS,EAAEhd,aAAahb,KAAKw3B,GAAI,IACxBQ,EAAEhd,aAAahb,KAAKy3B,GAAI,IACxBO,EAAEhd,aAAahb,KAAK03B,GAAI,IACxBM,EAAEhd,aAAahb,KAAK23B,GAAI,IACxBK,EAAEhd,aAAahb,KAAK43B,GAAI,IAEjBI,CACR,EAEA//B,EAAOD,QAAU++B,C,oCC1LjB,IAAIpoB,EAAS,eACTqC,EAAU,EAAQ,MAClBinB,EAAmB,EAAQ,MAE3B/nB,EAASD,YAAYC,QAAU,SAAgB7N,GAClD,IAEC,OADA41B,EAAiB51B,IACV,CACR,CAAE,MAAO5F,GACR,OAAO,CACR,CACD,EAEIy7B,EAAsC,oBAAfl+B,WACvBm+B,EAAwC,oBAAhBloB,aACF,oBAAfjW,WACPo+B,EAAqBD,IAAmBxpB,EAAOxQ,qBAAqBnE,YAAc2U,EAAOkG,qBAE7F5c,EAAOD,QAAU,SAAkBiZ,EAAMrB,GACxC,GAAIjB,EAAOgC,SAASM,GACnB,OAAIA,EAAK7S,eAAiB,aAAc6S,GAEhCtC,EAAOc,KAAKwB,GAEbA,EAGR,GAAoB,iBAATA,EACV,OAAOtC,EAAOc,KAAKwB,EAAMrB,GAO1B,GAAIuoB,GAAkBjoB,EAAOe,GAAO,CAEnC,GAAwB,IAApBA,EAAK5Y,WACR,OAAOsW,EAAOE,MAAM,GAIrB,GAAIupB,EAAoB,CACvB,IAAIrkB,EAAMpF,EAAOc,KAAKwB,EAAKX,OAAQW,EAAKV,WAAYU,EAAK5Y,YAKzD,GAAI0b,EAAI1b,aAAe4Y,EAAK5Y,WAC3B,OAAO0b,CAET,CAGA,IAAIza,EAAQ2X,aAAgBjX,WAAaiX,EAAO,IAAIjX,WAAWiX,EAAKX,OAAQW,EAAKV,WAAYU,EAAK5Y,YAC9F8uB,EAASxY,EAAOc,KAAKnW,GAMzB,GAAI6tB,EAAO5tB,SAAW0X,EAAK5Y,WAC1B,OAAO8uB,CAET,CAMA,GAAI+Q,GAAiBjnB,aAAgBjX,WACpC,OAAO2U,EAAOc,KAAKwB,GAGpB,IAAIonB,EAAQrnB,EAAQC,GACpB,GAAIonB,EACH,IAAK,IAAIx/B,EAAI,EAAGA,EAAIoY,EAAK1X,OAAQV,GAAK,EAAG,CACxC,IAAIqD,EAAI+U,EAAKpY,GACb,GACc,iBAANqD,GACJA,EAAI,GACJA,EAAI,OACFA,IAAMA,EAEX,MAAM,IAAI+S,WAAW,kDAEvB,CAQD,GACCopB,GACC1pB,EAAOgC,SAASM,IACbA,EAAK7S,aACgC,mBAA9B6S,EAAK7S,YAAYuS,UACxBM,EAAK7S,YAAYuS,SAASM,GAG9B,OAAOtC,EAAOc,KAAKwB,GAGpB,MAAM,IAAI1B,UAAU,yFACrB,C,wBC5GC,SAASzX,EAAM83B,GACd,aACqC33B,EAAOD,QAASC,EAAOD,QAAU43B,EAAE,EAAQ,OAC3E93B,EAAKwgC,KAAKC,KAAO3I,EAAE93B,EAAKwgC,KAE/B,CALA,CAKEt4B,MAAM,SAASs4B,GACf,aAEA,IAAKA,EAAM,MAAM,IAAIn+B,MAAM,wBAE3B,IAAIq+B,EAAa,IAEjB,SAASC,EAAKvc,EAAS7P,GACrB,IACIxT,EAAG6/B,EADHxpB,EAAM,IAAIlV,WAAWw+B,EAAa59B,KAAKiC,IAHX,GAG0Bqf,EAAQ3iB,SAMlE,IAHI8S,EAAI9S,OAASi/B,IACfnsB,EAAMisB,EAAK5B,KAAKrqB,IAEbxT,EAAI,EAAGA,EAAI2/B,EAAY3/B,IAAKqW,EAAIrW,GAAK,GAC1C,IAAKA,EAAI,EAAGA,EAAIwT,EAAI9S,OAAQV,IAAKqW,EAAIrW,IAAMwT,EAAIxT,GAI/C,IAHAqW,EAAI9M,IAAI8Z,EAASsc,GACjBE,EAAYJ,EAAK5B,KAAKxnB,EAAIoI,SAAS,EAAGkhB,EAAatc,EAAQ3iB,SAEtDV,EAAI,EAAGA,EAAI2/B,EAAY3/B,IAAKqW,EAAIrW,GAAK,GAC1C,IAAKA,EAAI,EAAGA,EAAIwT,EAAI9S,OAAQV,IAAKqW,EAAIrW,IAAMwT,EAAIxT,GAE/C,OADAqW,EAAI9M,IAAIs2B,EAAWF,GACZF,EAAK5B,KAAKxnB,EAAIoI,SAAS,EAAGkhB,EAAaE,EAAUn/B,QAC1D,CAEA,SAASg/B,EAAKrc,EAAS7P,GACrB,IAAI7K,EAAM,IAAIxH,WAAW,IAEzB,OADAwH,EAAIY,IAAIq2B,EAAKvc,EAAS7P,GAAKiL,SAAS,EAAG,KAChC9V,CACT,CAUA,OARA+2B,EAAKI,KAAO,SAAUzc,EAAS7P,GAC7B,OAAOosB,EAAKvc,EAAS7P,EACvB,EAEAksB,EAAKK,WAAa,GAClBL,EAAKM,eAAiB,GACtBN,EAAKO,UAAY,GAEVP,CAET,G,wBC9CA,SAAUD,GACV,aAQA,IAAIS,EAAK,SAAS9V,GAChB,IAAIpqB,EAAGkD,EAAI,IAAIwtB,aAAa,IAC5B,GAAItG,EAAM,IAAKpqB,EAAI,EAAGA,EAAIoqB,EAAK1pB,OAAQV,IAAKkD,EAAElD,GAAKoqB,EAAKpqB,GACxD,OAAOkD,CACT,EAGIi9B,EAAc,WAAuB,MAAM,IAAI7+B,MAAM,UAAY,EAEjE8+B,EAAK,IAAIj/B,WAAW,IACpBk/B,EAAK,IAAIl/B,WAAW,IAAKk/B,EAAG,GAAK,EAErC,IAAIC,EAAMJ,IACNK,EAAML,EAAG,CAAC,IACVM,EAAUN,EAAG,CAAC,MAAQ,IACtBO,EAAIP,EAAG,CAAC,MAAQ,KAAQ,MAAQ,MAAQ,MAAQ,MAAQ,KAAQ,IAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,QAChIQ,EAAKR,EAAG,CAAC,MAAQ,KAAQ,MAAQ,MAAQ,MAAQ,MAAQ,KAAQ,IAAQ,MAAQ,MAAQ,MAAQ,KAAQ,MAAQ,MAAQ,MAAQ,OACjIS,EAAIT,EAAG,CAAC,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,OAChIU,EAAIV,EAAG,CAAC,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,QAChIW,EAAIX,EAAG,CAAC,MAAQ,MAAQ,KAAQ,MAAQ,MAAQ,MAAQ,KAAQ,MAAQ,MAAQ,MAAQ,IAAQ,MAAQ,MAAQ,MAAQ,KAAQ,QAEpI,SAASY,EAAKz9B,EAAGrD,EAAGoT,EAAGvP,GACrBR,EAAErD,GAAQoT,GAAK,GAAM,IACrB/P,EAAErD,EAAE,GAAMoT,GAAK,GAAM,IACrB/P,EAAErD,EAAE,GAAMoT,GAAM,EAAK,IACrB/P,EAAErD,EAAE,GAAS,IAAJoT,EACT/P,EAAErD,EAAE,GAAM6D,GAAK,GAAO,IACtBR,EAAErD,EAAE,GAAM6D,GAAK,GAAO,IACtBR,EAAErD,EAAE,GAAM6D,GAAM,EAAM,IACtBR,EAAErD,EAAE,GAAS,IAAJ6D,CACX,CAEA,SAASk9B,EAAG19B,EAAGuJ,EAAItJ,EAAG09B,EAAIp+B,GACxB,IAAI5C,EAAEuI,EAAI,EACV,IAAKvI,EAAI,EAAGA,EAAI4C,EAAG5C,IAAKuI,GAAKlF,EAAEuJ,EAAG5M,GAAGsD,EAAE09B,EAAGhhC,GAC1C,OAAQ,EAAMuI,EAAI,IAAO,GAAM,CACjC,CAEA,SAAS04B,EAAiB59B,EAAGuJ,EAAItJ,EAAG09B,GAClC,OAAOD,EAAG19B,EAAEuJ,EAAGtJ,EAAE09B,EAAG,GACtB,CAEA,SAASE,EAAiB79B,EAAGuJ,EAAItJ,EAAG09B,GAClC,OAAOD,EAAG19B,EAAEuJ,EAAGtJ,EAAE09B,EAAG,GACtB,CA4UA,SAASG,EAAoBx4B,EAAIy4B,EAAIz9B,EAAEF,IA1UvC,SAAsB49B,EAAG53B,EAAG9F,EAAGF,GAsB7B,IArBA,IAmBe69B,EAnBXC,EAAc,IAAR99B,EAAG,IAAqB,IAARA,EAAG,KAAY,GAAa,IAARA,EAAG,KAAY,IAAc,IAARA,EAAG,KAAY,GAC9E+9B,EAAc,IAAR79B,EAAG,IAAqB,IAARA,EAAG,KAAY,GAAa,IAARA,EAAG,KAAY,IAAc,IAARA,EAAG,KAAY,GAC9E89B,EAAc,IAAR99B,EAAG,IAAqB,IAARA,EAAG,KAAY,GAAa,IAARA,EAAG,KAAY,IAAc,IAARA,EAAG,KAAY,GAC9E+9B,EAAc,IAAR/9B,EAAG,IAAqB,IAARA,EAAG,KAAY,GAAa,IAARA,EAAE,MAAa,IAAc,IAARA,EAAE,MAAa,GAC9Eg+B,EAAc,IAARh+B,EAAE,KAAsB,IAARA,EAAE,MAAa,GAAa,IAARA,EAAE,MAAa,IAAc,IAARA,EAAE,MAAa,GAC9Ei+B,EAAc,IAARn+B,EAAG,IAAqB,IAARA,EAAG,KAAY,GAAa,IAARA,EAAG,KAAY,IAAc,IAARA,EAAG,KAAY,GAC9Eo+B,EAAc,IAARp4B,EAAG,IAAqB,IAARA,EAAG,KAAY,GAAa,IAARA,EAAG,KAAY,IAAc,IAARA,EAAG,KAAY,GAC9Eq4B,EAAc,IAARr4B,EAAG,IAAqB,IAARA,EAAG,KAAY,GAAa,IAARA,EAAG,KAAY,IAAc,IAARA,EAAG,KAAY,GAC9Es4B,EAAc,IAARt4B,EAAG,IAAqB,IAARA,EAAG,KAAY,GAAa,IAARA,EAAE,MAAa,IAAc,IAARA,EAAE,MAAa,GAC9Eu4B,EAAc,IAARv4B,EAAE,KAAsB,IAARA,EAAE,MAAa,GAAa,IAARA,EAAE,MAAa,IAAc,IAARA,EAAE,MAAa,GAC9Ew4B,EAAc,IAARx+B,EAAG,IAAqB,IAARA,EAAG,KAAY,GAAa,IAARA,EAAE,MAAa,IAAc,IAARA,EAAE,MAAa,GAC9Ey+B,EAAc,IAARv+B,EAAE,KAAsB,IAARA,EAAE,MAAa,GAAa,IAARA,EAAE,MAAa,IAAc,IAARA,EAAE,MAAa,GAC9Ew+B,EAAc,IAARx+B,EAAE,KAAsB,IAARA,EAAE,MAAa,GAAa,IAARA,EAAE,MAAa,IAAc,IAARA,EAAE,MAAa,GAC9Ey+B,EAAc,IAARz+B,EAAE,KAAsB,IAARA,EAAE,MAAa,GAAa,IAARA,EAAE,MAAa,IAAc,IAARA,EAAE,MAAa,GAC9E0+B,EAAc,IAAR1+B,EAAE,KAAsB,IAARA,EAAE,MAAa,GAAa,IAARA,EAAE,MAAa,IAAc,IAARA,EAAE,MAAa,GAC9E2+B,EAAc,IAAR7+B,EAAE,KAAsB,IAARA,EAAE,MAAa,GAAa,IAARA,EAAE,MAAa,IAAc,IAARA,EAAE,MAAa,GAE9E+O,EAAK+uB,EAAI9uB,EAAK+uB,EAAIe,EAAKd,EAAIe,EAAKd,EAAIe,EAAKd,EAAIe,EAAKd,EAAIe,EAAKd,EAAIe,EAAKd,EACpEe,EAAKd,EAAIe,EAAKd,EAAIe,EAAMd,EAAKe,EAAMd,EAAKe,EAAMd,EAAKe,EAAMd,EAAKe,EAAMd,EACpEe,EAAMd,EAEDtiC,EAAI,EAAGA,EAAI,GAAIA,GAAK,EAQ3BwS,IADA8uB,GADA2B,IADA3B,GADAuB,IADAvB,GADAmB,IADAnB,EAAI9uB,EAAKywB,EAAM,IACN,EAAI3B,IAAI,IACR9uB,EAAK,IACL,EAAI8uB,IAAI,IACRmB,EAAK,IACJ,GAAKnB,IAAI,IACTuB,EAAK,IACN,GAAKvB,IAAI,GASlBoB,IADApB,GADA7uB,IADA6uB,GADA4B,IADA5B,GADAwB,IADAxB,EAAIoB,EAAKjwB,EAAK,IACL,EAAI6uB,IAAI,IACRoB,EAAK,IACJ,EAAIpB,IAAI,IACRwB,EAAK,IACN,GAAKxB,IAAI,IACT4B,EAAM,IACN,GAAK5B,IAAI,GASlByB,IADAzB,GADAqB,IADArB,GADAiB,IADAjB,GADA6B,IADA7B,EAAIyB,EAAMJ,EAAK,IACL,EAAIrB,IAAI,IACRyB,EAAM,IACP,EAAIzB,IAAI,IACR6B,EAAM,IACN,GAAK7B,IAAI,IACTiB,EAAK,IACJ,GAAKjB,IAAI,GASnB8B,IADA9B,GADA0B,IADA1B,GADAsB,IADAtB,GADAkB,IADAlB,EAAI8B,EAAMJ,EAAM,IACP,EAAI1B,IAAI,IACR8B,EAAM,IACN,EAAI9B,IAAI,IACRkB,EAAK,IACJ,GAAKlB,IAAI,IACTsB,EAAK,IACL,GAAKtB,IAAI,GASnB9uB,IADA8uB,GADAkB,IADAlB,GADAiB,IADAjB,GADA7uB,IADA6uB,EAAI9uB,EAAKgwB,EAAK,IACL,EAAIlB,IAAI,IACR9uB,EAAK,IACL,EAAI8uB,IAAI,IACR7uB,EAAK,IACL,GAAK6uB,IAAI,IACTiB,EAAK,IACL,GAAKjB,IAAI,GASlBoB,IADApB,GADAmB,IADAnB,GADAsB,IADAtB,GADAqB,IADArB,EAAIoB,EAAKD,EAAK,IACL,EAAInB,IAAI,IACRoB,EAAK,IACL,EAAIpB,IAAI,IACRqB,EAAK,IACL,GAAKrB,IAAI,IACTsB,EAAK,IACL,GAAKtB,IAAI,GASlByB,IADAzB,GADAwB,IADAxB,GADAuB,IADAvB,GADA0B,IADA1B,EAAIyB,EAAMD,EAAK,IACL,EAAIxB,IAAI,IACRyB,EAAM,IACP,EAAIzB,IAAI,IACR0B,EAAM,IACN,GAAK1B,IAAI,IACTuB,EAAK,IACJ,GAAKvB,IAAI,GASnB8B,IADA9B,GADA6B,IADA7B,GADA4B,IADA5B,GADA2B,IADA3B,EAAI8B,EAAMD,EAAM,IACN,EAAI7B,IAAI,IACR8B,EAAM,IACN,EAAI9B,IAAI,IACR2B,EAAM,IACN,GAAK3B,IAAI,IACT4B,EAAM,IACN,GAAK5B,IAAI,GAEpB9uB,EAAMA,EAAM+uB,EAAK,EACjB9uB,EAAMA,EAAM+uB,EAAK,EACjBe,EAAMA,EAAMd,EAAK,EACjBe,EAAMA,EAAMd,EAAK,EACjBe,EAAMA,EAAMd,EAAK,EACjBe,EAAMA,EAAMd,EAAK,EACjBe,EAAMA,EAAMd,EAAK,EACjBe,EAAMA,EAAMd,EAAK,EACjBe,EAAMA,EAAMd,EAAK,EACjBe,EAAMA,EAAMd,EAAK,EAClBe,EAAMA,EAAMd,EAAM,EAClBe,EAAMA,EAAMd,EAAM,EAClBe,EAAMA,EAAMd,EAAM,EAClBe,EAAMA,EAAMd,EAAM,EAClBe,EAAMA,EAAMd,EAAM,EAClBe,EAAMA,EAAMd,EAAM,EAElBjB,EAAG,GAAK7uB,IAAQ,EAAI,IACpB6uB,EAAG,GAAK7uB,IAAQ,EAAI,IACpB6uB,EAAG,GAAK7uB,IAAO,GAAK,IACpB6uB,EAAG,GAAK7uB,IAAO,GAAK,IAEpB6uB,EAAG,GAAK5uB,IAAQ,EAAI,IACpB4uB,EAAG,GAAK5uB,IAAQ,EAAI,IACpB4uB,EAAG,GAAK5uB,IAAO,GAAK,IACpB4uB,EAAG,GAAK5uB,IAAO,GAAK,IAEpB4uB,EAAG,GAAKkB,IAAQ,EAAI,IACpBlB,EAAG,GAAKkB,IAAQ,EAAI,IACpBlB,EAAE,IAAMkB,IAAO,GAAK,IACpBlB,EAAE,IAAMkB,IAAO,GAAK,IAEpBlB,EAAE,IAAMmB,IAAQ,EAAI,IACpBnB,EAAE,IAAMmB,IAAQ,EAAI,IACpBnB,EAAE,IAAMmB,IAAO,GAAK,IACpBnB,EAAE,IAAMmB,IAAO,GAAK,IAEpBnB,EAAE,IAAMoB,IAAQ,EAAI,IACpBpB,EAAE,IAAMoB,IAAQ,EAAI,IACpBpB,EAAE,IAAMoB,IAAO,GAAK,IACpBpB,EAAE,IAAMoB,IAAO,GAAK,IAEpBpB,EAAE,IAAMqB,IAAQ,EAAI,IACpBrB,EAAE,IAAMqB,IAAQ,EAAI,IACpBrB,EAAE,IAAMqB,IAAO,GAAK,IACpBrB,EAAE,IAAMqB,IAAO,GAAK,IAEpBrB,EAAE,IAAMsB,IAAQ,EAAI,IACpBtB,EAAE,IAAMsB,IAAQ,EAAI,IACpBtB,EAAE,IAAMsB,IAAO,GAAK,IACpBtB,EAAE,IAAMsB,IAAO,GAAK,IAEpBtB,EAAE,IAAMuB,IAAQ,EAAI,IACpBvB,EAAE,IAAMuB,IAAQ,EAAI,IACpBvB,EAAE,IAAMuB,IAAO,GAAK,IACpBvB,EAAE,IAAMuB,IAAO,GAAK,IAEpBvB,EAAE,IAAMwB,IAAQ,EAAI,IACpBxB,EAAE,IAAMwB,IAAQ,EAAI,IACpBxB,EAAE,IAAMwB,IAAO,GAAK,IACpBxB,EAAE,IAAMwB,IAAO,GAAK,IAEpBxB,EAAE,IAAMyB,IAAQ,EAAI,IACpBzB,EAAE,IAAMyB,IAAQ,EAAI,IACpBzB,EAAE,IAAMyB,IAAO,GAAK,IACpBzB,EAAE,IAAMyB,IAAO,GAAK,IAEpBzB,EAAE,IAAM0B,IAAS,EAAI,IACrB1B,EAAE,IAAM0B,IAAS,EAAI,IACrB1B,EAAE,IAAM0B,IAAQ,GAAK,IACrB1B,EAAE,IAAM0B,IAAQ,GAAK,IAErB1B,EAAE,IAAM2B,IAAS,EAAI,IACrB3B,EAAE,IAAM2B,IAAS,EAAI,IACrB3B,EAAE,IAAM2B,IAAQ,GAAK,IACrB3B,EAAE,IAAM2B,IAAQ,GAAK,IAErB3B,EAAE,IAAM4B,IAAS,EAAI,IACrB5B,EAAE,IAAM4B,IAAS,EAAI,IACrB5B,EAAE,IAAM4B,IAAQ,GAAK,IACrB5B,EAAE,IAAM4B,IAAQ,GAAK,IAErB5B,EAAE,IAAM6B,IAAS,EAAI,IACrB7B,EAAE,IAAM6B,IAAS,EAAI,IACrB7B,EAAE,IAAM6B,IAAQ,GAAK,IACrB7B,EAAE,IAAM6B,IAAQ,GAAK,IAErB7B,EAAE,IAAM8B,IAAS,EAAI,IACrB9B,EAAE,IAAM8B,IAAS,EAAI,IACrB9B,EAAE,IAAM8B,IAAQ,GAAK,IACrB9B,EAAE,IAAM8B,IAAQ,GAAK,IAErB9B,EAAE,IAAM+B,IAAS,EAAI,IACrB/B,EAAE,IAAM+B,IAAS,EAAI,IACrB/B,EAAE,IAAM+B,IAAQ,GAAK,IACrB/B,EAAE,IAAM+B,IAAQ,GAAK,GACvB,CA4IEC,CAAa16B,EAAIy4B,EAAIz9B,EAAEF,EACzB,CAEA,SAAS6/B,EAAqB36B,EAAIy4B,EAAIz9B,EAAEF,IA7IxC,SAAuB49B,EAAE53B,EAAE9F,EAAEF,GAsB3B,IArBA,IAmBe69B,EAFX9uB,EAjBc,IAAR/O,EAAG,IAAqB,IAARA,EAAG,KAAY,GAAa,IAARA,EAAG,KAAY,IAAc,IAARA,EAAG,KAAY,GAiBrEgP,EAhBK,IAAR9O,EAAG,IAAqB,IAARA,EAAG,KAAY,GAAa,IAARA,EAAG,KAAY,IAAc,IAARA,EAAG,KAAY,GAgB5D4+B,EAfJ,IAAR5+B,EAAG,IAAqB,IAARA,EAAG,KAAY,GAAa,IAARA,EAAG,KAAY,IAAc,IAARA,EAAG,KAAY,GAenD6+B,EAdb,IAAR7+B,EAAG,IAAqB,IAARA,EAAG,KAAY,GAAa,IAARA,EAAE,MAAa,IAAc,IAARA,EAAE,MAAa,GAc1C8+B,EAbtB,IAAR9+B,EAAE,KAAsB,IAARA,EAAE,MAAa,GAAa,IAARA,EAAE,MAAa,IAAc,IAARA,EAAE,MAAa,GAajC++B,EAZ/B,IAARj/B,EAAG,IAAqB,IAARA,EAAG,KAAY,GAAa,IAARA,EAAG,KAAY,IAAc,IAARA,EAAG,KAAY,GAYxBk/B,EAXxC,IAARl5B,EAAG,IAAqB,IAARA,EAAG,KAAY,GAAa,IAARA,EAAG,KAAY,IAAc,IAARA,EAAG,KAAY,GAWfm5B,EAVjD,IAARn5B,EAAG,IAAqB,IAARA,EAAG,KAAY,GAAa,IAARA,EAAG,KAAY,IAAc,IAARA,EAAG,KAAY,GAW9Eo5B,EAVc,IAARp5B,EAAG,IAAqB,IAARA,EAAG,KAAY,GAAa,IAARA,EAAE,MAAa,IAAc,IAARA,EAAE,MAAa,GAUrEq5B,EATK,IAARr5B,EAAE,KAAsB,IAARA,EAAE,MAAa,GAAa,IAARA,EAAE,MAAa,IAAc,IAARA,EAAE,MAAa,GAS5Ds5B,EARJ,IAARt/B,EAAG,IAAqB,IAARA,EAAG,KAAY,GAAa,IAARA,EAAE,MAAa,IAAc,IAARA,EAAE,MAAa,GAQjDu/B,EAPf,IAARr/B,EAAE,KAAsB,IAARA,EAAE,MAAa,GAAa,IAARA,EAAE,MAAa,IAAc,IAARA,EAAE,MAAa,GAOtCs/B,EAN1B,IAARt/B,EAAE,KAAsB,IAARA,EAAE,MAAa,GAAa,IAARA,EAAE,MAAa,IAAc,IAARA,EAAE,MAAa,GAM3Bu/B,EALrC,IAARv/B,EAAE,KAAsB,IAARA,EAAE,MAAa,GAAa,IAARA,EAAE,MAAa,IAAc,IAARA,EAAE,MAAa,GAKhBw/B,EAJhD,IAARx/B,EAAE,KAAsB,IAARA,EAAE,MAAa,GAAa,IAARA,EAAE,MAAa,IAAc,IAARA,EAAE,MAAa,GAK9Ey/B,EAJc,IAAR3/B,EAAE,KAAsB,IAARA,EAAE,MAAa,GAAa,IAARA,EAAE,MAAa,IAAc,IAARA,EAAE,MAAa,GAMzEzD,EAAI,EAAGA,EAAI,GAAIA,GAAK,EAQ3BwS,IADA8uB,GADA2B,IADA3B,GADAuB,IADAvB,GADAmB,IADAnB,EAAI9uB,EAAKywB,EAAM,IACN,EAAI3B,IAAI,IACR9uB,EAAK,IACL,EAAI8uB,IAAI,IACRmB,EAAK,IACJ,GAAKnB,IAAI,IACTuB,EAAK,IACN,GAAKvB,IAAI,GASlBoB,IADApB,GADA7uB,IADA6uB,GADA4B,IADA5B,GADAwB,IADAxB,EAAIoB,EAAKjwB,EAAK,IACL,EAAI6uB,IAAI,IACRoB,EAAK,IACJ,EAAIpB,IAAI,IACRwB,EAAK,IACN,GAAKxB,IAAI,IACT4B,EAAM,IACN,GAAK5B,IAAI,GASlByB,IADAzB,GADAqB,IADArB,GADAiB,IADAjB,GADA6B,IADA7B,EAAIyB,EAAMJ,EAAK,IACL,EAAIrB,IAAI,IACRyB,EAAM,IACP,EAAIzB,IAAI,IACR6B,EAAM,IACN,GAAK7B,IAAI,IACTiB,EAAK,IACJ,GAAKjB,IAAI,GASnB8B,IADA9B,GADA0B,IADA1B,GADAsB,IADAtB,GADAkB,IADAlB,EAAI8B,EAAMJ,EAAM,IACP,EAAI1B,IAAI,IACR8B,EAAM,IACN,EAAI9B,IAAI,IACRkB,EAAK,IACJ,GAAKlB,IAAI,IACTsB,EAAK,IACL,GAAKtB,IAAI,GASnB9uB,IADA8uB,GADAkB,IADAlB,GADAiB,IADAjB,GADA7uB,IADA6uB,EAAI9uB,EAAKgwB,EAAK,IACL,EAAIlB,IAAI,IACR9uB,EAAK,IACL,EAAI8uB,IAAI,IACR7uB,EAAK,IACL,GAAK6uB,IAAI,IACTiB,EAAK,IACL,GAAKjB,IAAI,GASlBoB,IADApB,GADAmB,IADAnB,GADAsB,IADAtB,GADAqB,IADArB,EAAIoB,EAAKD,EAAK,IACL,EAAInB,IAAI,IACRoB,EAAK,IACL,EAAIpB,IAAI,IACRqB,EAAK,IACL,GAAKrB,IAAI,IACTsB,EAAK,IACL,GAAKtB,IAAI,GASlByB,IADAzB,GADAwB,IADAxB,GADAuB,IADAvB,GADA0B,IADA1B,EAAIyB,EAAMD,EAAK,IACL,EAAIxB,IAAI,IACRyB,EAAM,IACP,EAAIzB,IAAI,IACR0B,EAAM,IACN,GAAK1B,IAAI,IACTuB,EAAK,IACJ,GAAKvB,IAAI,GASnB8B,IADA9B,GADA6B,IADA7B,GADA4B,IADA5B,GADA2B,IADA3B,EAAI8B,EAAMD,EAAM,IACN,EAAI7B,IAAI,IACR8B,EAAM,IACN,EAAI9B,IAAI,IACR2B,EAAM,IACN,GAAK3B,IAAI,IACT4B,EAAM,IACN,GAAK5B,IAAI,GAGrBD,EAAG,GAAK7uB,IAAQ,EAAI,IACpB6uB,EAAG,GAAK7uB,IAAQ,EAAI,IACpB6uB,EAAG,GAAK7uB,IAAO,GAAK,IACpB6uB,EAAG,GAAK7uB,IAAO,GAAK,IAEpB6uB,EAAG,GAAKqB,IAAQ,EAAI,IACpBrB,EAAG,GAAKqB,IAAQ,EAAI,IACpBrB,EAAG,GAAKqB,IAAO,GAAK,IACpBrB,EAAG,GAAKqB,IAAO,GAAK,IAEpBrB,EAAG,GAAK0B,IAAS,EAAI,IACrB1B,EAAG,GAAK0B,IAAS,EAAI,IACrB1B,EAAE,IAAM0B,IAAQ,GAAK,IACrB1B,EAAE,IAAM0B,IAAQ,GAAK,IAErB1B,EAAE,IAAM+B,IAAS,EAAI,IACrB/B,EAAE,IAAM+B,IAAS,EAAI,IACrB/B,EAAE,IAAM+B,IAAQ,GAAK,IACrB/B,EAAE,IAAM+B,IAAQ,GAAK,IAErB/B,EAAE,IAAMsB,IAAQ,EAAI,IACpBtB,EAAE,IAAMsB,IAAQ,EAAI,IACpBtB,EAAE,IAAMsB,IAAO,GAAK,IACpBtB,EAAE,IAAMsB,IAAO,GAAK,IAEpBtB,EAAE,IAAMuB,IAAQ,EAAI,IACpBvB,EAAE,IAAMuB,IAAQ,EAAI,IACpBvB,EAAE,IAAMuB,IAAO,GAAK,IACpBvB,EAAE,IAAMuB,IAAO,GAAK,IAEpBvB,EAAE,IAAMwB,IAAQ,EAAI,IACpBxB,EAAE,IAAMwB,IAAQ,EAAI,IACpBxB,EAAE,IAAMwB,IAAO,GAAK,IACpBxB,EAAE,IAAMwB,IAAO,GAAK,IAEpBxB,EAAE,IAAMyB,IAAQ,EAAI,IACpBzB,EAAE,IAAMyB,IAAQ,EAAI,IACpBzB,EAAE,IAAMyB,IAAO,GAAK,IACpBzB,EAAE,IAAMyB,IAAO,GAAK,GACtB,CAOES,CAAc56B,EAAIy4B,EAAIz9B,EAAEF,EAC1B,CAEA,IAAI+/B,EAAQ,IAAIriC,WAAW,CAAC,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,MAGhG,SAASsiC,EAA0BhgC,EAAEigC,EAAKj4B,EAAEk4B,EAAKpgC,EAAEX,EAAEe,GACnD,IACI29B,EAAGthC,EADHgD,EAAI,IAAI7B,WAAW,IAAKkC,EAAI,IAAIlC,WAAW,IAE/C,IAAKnB,EAAI,EAAGA,EAAI,GAAIA,IAAKgD,EAAEhD,GAAK,EAChC,IAAKA,EAAI,EAAGA,EAAI,EAAGA,IAAKgD,EAAEhD,GAAK4C,EAAE5C,GACjC,KAAOuD,GAAK,IAAI,CAEd,IADA49B,EAAoB99B,EAAEL,EAAEW,EAAE6/B,GACrBxjC,EAAI,EAAGA,EAAI,GAAIA,IAAKyD,EAAEigC,EAAK1jC,GAAKyL,EAAEk4B,EAAK3jC,GAAKqD,EAAErD,GAEnD,IADAshC,EAAI,EACCthC,EAAI,EAAGA,EAAI,GAAIA,IAClBshC,EAAIA,GAAY,IAAPt+B,EAAEhD,IAAa,EACxBgD,EAAEhD,GAAS,IAAJshC,EACPA,KAAO,EAET/9B,GAAK,GACLmgC,GAAQ,GACRC,GAAQ,EACV,CACA,GAAIpgC,EAAI,EAEN,IADA49B,EAAoB99B,EAAEL,EAAEW,EAAE6/B,GACrBxjC,EAAI,EAAGA,EAAIuD,EAAGvD,IAAKyD,EAAEigC,EAAK1jC,GAAKyL,EAAEk4B,EAAK3jC,GAAKqD,EAAErD,GAEpD,OAAO,CACT,CAEA,SAAS4jC,EAAsBngC,EAAEigC,EAAKngC,EAAEX,EAAEe,GACxC,IACI29B,EAAGthC,EADHgD,EAAI,IAAI7B,WAAW,IAAKkC,EAAI,IAAIlC,WAAW,IAE/C,IAAKnB,EAAI,EAAGA,EAAI,GAAIA,IAAKgD,EAAEhD,GAAK,EAChC,IAAKA,EAAI,EAAGA,EAAI,EAAGA,IAAKgD,EAAEhD,GAAK4C,EAAE5C,GACjC,KAAOuD,GAAK,IAAI,CAEd,IADA49B,EAAoB99B,EAAEL,EAAEW,EAAE6/B,GACrBxjC,EAAI,EAAGA,EAAI,GAAIA,IAAKyD,EAAEigC,EAAK1jC,GAAKqD,EAAErD,GAEvC,IADAshC,EAAI,EACCthC,EAAI,EAAGA,EAAI,GAAIA,IAClBshC,EAAIA,GAAY,IAAPt+B,EAAEhD,IAAa,EACxBgD,EAAEhD,GAAS,IAAJshC,EACPA,KAAO,EAET/9B,GAAK,GACLmgC,GAAQ,EACV,CACA,GAAIngC,EAAI,EAEN,IADA49B,EAAoB99B,EAAEL,EAAEW,EAAE6/B,GACrBxjC,EAAI,EAAGA,EAAIuD,EAAGvD,IAAKyD,EAAEigC,EAAK1jC,GAAKqD,EAAErD,GAExC,OAAO,CACT,CAEA,SAAS6jC,EAAcpgC,EAAEigC,EAAKn7B,EAAE3F,EAAEe,GAChC,IAAIZ,EAAI,IAAI5B,WAAW,IACvBmiC,EAAqBvgC,EAAEH,EAAEe,EAAE6/B,GAE3B,IADA,IAAIM,EAAK,IAAI3iC,WAAW,GACfnB,EAAI,EAAGA,EAAI,EAAGA,IAAK8jC,EAAG9jC,GAAK4C,EAAE5C,EAAE,IACxC,OAAO4jC,EAAsBngC,EAAEigC,EAAKn7B,EAAEu7B,EAAG/gC,EAC3C,CAEA,SAASghC,EAAkBtgC,EAAEigC,EAAKj4B,EAAEk4B,EAAKp7B,EAAE3F,EAAEe,GAC3C,IAAIZ,EAAI,IAAI5B,WAAW,IACvBmiC,EAAqBvgC,EAAEH,EAAEe,EAAE6/B,GAE3B,IADA,IAAIM,EAAK,IAAI3iC,WAAW,GACfnB,EAAI,EAAGA,EAAI,EAAGA,IAAK8jC,EAAG9jC,GAAK4C,EAAE5C,EAAE,IACxC,OAAOyjC,EAA0BhgC,EAAEigC,EAAKj4B,EAAEk4B,EAAKp7B,EAAEu7B,EAAG/gC,EACtD,CAOA,IAAIihC,EAAW,SAASxwB,GAQtB,IAAIywB,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAPhCr9B,KAAKsQ,OAAS,IAAItW,WAAW,IAC7BgG,KAAKjE,EAAI,IAAIkuB,YAAY,IACzBjqB,KAAKiM,EAAI,IAAIge,YAAY,IACzBjqB,KAAK60B,IAAM,IAAI5K,YAAY,GAC3BjqB,KAAKs9B,SAAW,EAChBt9B,KAAKu9B,IAAM,EAIXT,EAAe,IAAVzwB,EAAK,IAAuB,IAAVA,EAAK,KAAc,EAAGrM,KAAKjE,EAAE,GAAkC,KAA7B,EACzDghC,EAAe,IAAV1wB,EAAK,IAAuB,IAAVA,EAAK,KAAc,EAAGrM,KAAKjE,EAAE,GAAkC,MAA3B+gC,IAAO,GAAOC,GAAO,GAChFC,EAAe,IAAV3wB,EAAK,IAAuB,IAAVA,EAAK,KAAc,EAAGrM,KAAKjE,EAAE,GAAkC,MAA3BghC,IAAO,GAAOC,GAAO,GAChFC,EAAe,IAAV5wB,EAAK,IAAuB,IAAVA,EAAK,KAAc,EAAGrM,KAAKjE,EAAE,GAAkC,MAA3BihC,IAAQ,EAAMC,GAAO,GAChFC,EAAe,IAAV7wB,EAAK,IAAuB,IAAVA,EAAK,KAAc,EAAGrM,KAAKjE,EAAE,GAAkC,KAA3BkhC,IAAQ,EAAMC,GAAM,IAC/El9B,KAAKjE,EAAE,GAAOmhC,IAAQ,EAAM,KAC5BC,EAAe,IAAV9wB,EAAI,KAAwB,IAAVA,EAAI,MAAe,EAAGrM,KAAKjE,EAAE,GAAkC,MAA3BmhC,IAAO,GAAOC,GAAO,GAChFC,EAAe,IAAV/wB,EAAI,KAAwB,IAAVA,EAAI,MAAe,EAAGrM,KAAKjE,EAAE,GAAkC,MAA3BohC,IAAO,GAAOC,GAAO,GAChFC,EAAe,IAAVhxB,EAAI,KAAwB,IAAVA,EAAI,MAAe,EAAGrM,KAAKjE,EAAE,GAAkC,MAA3BqhC,IAAQ,EAAMC,GAAO,GAChFr9B,KAAKjE,EAAE,GAAOshC,IAAQ,EAAM,IAE5Br9B,KAAK60B,IAAI,GAAe,IAAVxoB,EAAI,KAAwB,IAAVA,EAAI,MAAe,EACnDrM,KAAK60B,IAAI,GAAe,IAAVxoB,EAAI,KAAwB,IAAVA,EAAI,MAAe,EACnDrM,KAAK60B,IAAI,GAAe,IAAVxoB,EAAI,KAAwB,IAAVA,EAAI,MAAe,EACnDrM,KAAK60B,IAAI,GAAe,IAAVxoB,EAAI,KAAwB,IAAVA,EAAI,MAAe,EACnDrM,KAAK60B,IAAI,GAAe,IAAVxoB,EAAI,KAAwB,IAAVA,EAAI,MAAe,EACnDrM,KAAK60B,IAAI,GAAe,IAAVxoB,EAAI,KAAwB,IAAVA,EAAI,MAAe,EACnDrM,KAAK60B,IAAI,GAAe,IAAVxoB,EAAI,KAAwB,IAAVA,EAAI,MAAe,EACnDrM,KAAK60B,IAAI,GAAe,IAAVxoB,EAAI,KAAwB,IAAVA,EAAI,MAAe,CACrD,EAmUA,SAASmxB,EAAmBh8B,EAAKi8B,EAAQn5B,EAAGk4B,EAAM/gC,EAAGe,GACnD,IAAIZ,EAAI,IAAIihC,EAASrgC,GAGrB,OAFAZ,EAAEo6B,OAAO1xB,EAAGk4B,EAAM/gC,GAClBG,EAAE8hC,OAAOl8B,EAAKi8B,GACP,CACT,CAEA,SAASE,EAA0B1xB,EAAG2xB,EAAMt5B,EAAGk4B,EAAM/gC,EAAGe,GACtD,IAAIN,EAAI,IAAIlC,WAAW,IAEvB,OADAwjC,EAAmBthC,EAAE,EAAEoI,EAAEk4B,EAAK/gC,EAAEe,GACzBs9B,EAAiB7tB,EAAE2xB,EAAK1hC,EAAE,EACnC,CAEA,SAAS2hC,EAAiBvhC,EAAEgI,EAAElD,EAAE3F,EAAEe,GAChC,IAAI3D,EACJ,GAAIuI,EAAI,GAAI,OAAQ,EAGpB,IAFAw7B,EAAkBtgC,EAAE,EAAEgI,EAAE,EAAElD,EAAE3F,EAAEe,GAC9BghC,EAAmBlhC,EAAG,GAAIA,EAAG,GAAI8E,EAAI,GAAI9E,GACpCzD,EAAI,EAAGA,EAAI,GAAIA,IAAKyD,EAAEzD,GAAK,EAChC,OAAO,CACT,CAEA,SAASilC,EAAsBx5B,EAAEhI,EAAE8E,EAAE3F,EAAEe,GACrC,IAAI3D,EACAqD,EAAI,IAAIlC,WAAW,IACvB,GAAIoH,EAAI,GAAI,OAAQ,EAEpB,GADAs7B,EAAcxgC,EAAE,EAAE,GAAGT,EAAEe,GACiC,IAApDmhC,EAA0BrhC,EAAG,GAAGA,EAAG,GAAG8E,EAAI,GAAGlF,GAAU,OAAQ,EAEnE,IADA0gC,EAAkBt4B,EAAE,EAAEhI,EAAE,EAAE8E,EAAE3F,EAAEe,GACzB3D,EAAI,EAAGA,EAAI,GAAIA,IAAKyL,EAAEzL,GAAK,EAChC,OAAO,CACT,CAEA,SAASklC,EAAShiC,EAAGJ,GACnB,IAAI9C,EACJ,IAAKA,EAAI,EAAGA,EAAI,GAAIA,IAAKkD,EAAElD,GAAU,EAAL8C,EAAE9C,EACpC,CAEA,SAASmlC,EAAS9D,GAChB,IAAIrhC,EAAG+G,EAAGtD,EAAI,EACd,IAAKzD,EAAI,EAAGA,EAAI,GAAIA,IAClB+G,EAAIs6B,EAAErhC,GAAKyD,EAAI,MACfA,EAAI1B,KAAKG,MAAM6E,EAAI,OACnBs6B,EAAErhC,GAAK+G,EAAQ,MAAJtD,EAEb49B,EAAE,IAAM59B,EAAE,EAAI,IAAMA,EAAE,EACxB,CAEA,SAAS2hC,EAAS37B,EAAG8C,EAAGhJ,GAEtB,IADA,IAAI8L,EAAG5L,IAAMF,EAAE,GACNvD,EAAI,EAAGA,EAAI,GAAIA,IACtBqP,EAAI5L,GAAKgG,EAAEzJ,GAAKuM,EAAEvM,IAClByJ,EAAEzJ,IAAMqP,EACR9C,EAAEvM,IAAMqP,CAEZ,CAEA,SAASg2B,EAAUhE,EAAGz+B,GACpB,IAAI5C,EAAGiD,EAAGM,EACNkI,EAAIy0B,IAAM7wB,EAAI6wB,IAClB,IAAKlgC,EAAI,EAAGA,EAAI,GAAIA,IAAKqP,EAAErP,GAAK4C,EAAE5C,GAIlC,IAHAmlC,EAAS91B,GACT81B,EAAS91B,GACT81B,EAAS91B,GACJpM,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAEtB,IADAwI,EAAE,GAAK4D,EAAE,GAAK,MACTrP,EAAI,EAAGA,EAAI,GAAIA,IAClByL,EAAEzL,GAAKqP,EAAErP,GAAK,OAAWyL,EAAEzL,EAAE,IAAI,GAAM,GACvCyL,EAAEzL,EAAE,IAAM,MAEZyL,EAAE,IAAM4D,EAAE,IAAM,OAAW5D,EAAE,KAAK,GAAM,GACxClI,EAAKkI,EAAE,KAAK,GAAM,EAClBA,EAAE,KAAO,MACT25B,EAAS/1B,EAAG5D,EAAG,EAAElI,EACnB,CACA,IAAKvD,EAAI,EAAGA,EAAI,GAAIA,IAClBqhC,EAAE,EAAErhC,GAAY,IAAPqP,EAAErP,GACXqhC,EAAE,EAAErhC,EAAE,GAAKqP,EAAErP,IAAI,CAErB,CAEA,SAASslC,EAASxiC,EAAGS,GACnB,IAAIE,EAAI,IAAItC,WAAW,IAAKoH,EAAI,IAAIpH,WAAW,IAG/C,OAFAkkC,EAAU5hC,EAAGX,GACbuiC,EAAU98B,EAAGhF,GACN29B,EAAiBz9B,EAAG,EAAG8E,EAAG,EACnC,CAEA,SAASg9B,EAASziC,GAChB,IAAIyF,EAAI,IAAIpH,WAAW,IAEvB,OADAkkC,EAAU98B,EAAGzF,GACC,EAAPyF,EAAE,EACX,CAEA,SAASi9B,EAAYnE,EAAGz+B,GACtB,IAAI5C,EACJ,IAAKA,EAAI,EAAGA,EAAI,GAAIA,IAAKqhC,EAAErhC,GAAK4C,EAAE,EAAE5C,IAAM4C,EAAE,EAAE5C,EAAE,IAAM,GACtDqhC,EAAE,KAAO,KACX,CAEA,SAASoE,EAAEpE,EAAGv+B,EAAGS,GACf,IAAK,IAAIvD,EAAI,EAAGA,EAAI,GAAIA,IAAKqhC,EAAErhC,GAAK8C,EAAE9C,GAAKuD,EAAEvD,EAC/C,CAEA,SAAS0lC,EAAErE,EAAGv+B,EAAGS,GACf,IAAK,IAAIvD,EAAI,EAAGA,EAAI,GAAIA,IAAKqhC,EAAErhC,GAAK8C,EAAE9C,GAAKuD,EAAEvD,EAC/C,CAEA,SAASkV,EAAEmsB,EAAGv+B,EAAGS,GACf,IAAIwD,EAAGtD,EACJwgC,EAAK,EAAIC,EAAK,EAAIC,EAAK,EAAIC,EAAK,EAAIC,EAAK,EAAIC,EAAK,EAAIC,EAAK,EAAIC,EAAK,EACpEmB,EAAK,EAAIC,EAAK,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EACrEC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EACrEC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAC5D/0B,EAAK3O,EAAE,GACP4O,EAAK5O,EAAE,GACP2jC,EAAK3jC,EAAE,GACP4jC,EAAK5jC,EAAE,GACP6jC,EAAK7jC,EAAE,GACP8jC,EAAK9jC,EAAE,GACP+jC,EAAK/jC,EAAE,GACPgkC,EAAKhkC,EAAE,GACPikC,EAAKjkC,EAAE,GACPkkC,EAAKlkC,EAAE,GACPmkC,EAAMnkC,EAAE,IACRokC,EAAMpkC,EAAE,IACRqkC,EAAMrkC,EAAE,IACRskC,EAAMtkC,EAAE,IACRukC,EAAMvkC,EAAE,IACRwkC,EAAMxkC,EAAE,IAGV0gC,IADAl9B,EAAIjE,EAAE,IACIoP,EACVgyB,GAAMn9B,EAAIoL,EACVgyB,GAAMp9B,EAAImgC,EACV9C,GAAMr9B,EAAIogC,EACV9C,GAAMt9B,EAAIqgC,EACV9C,GAAMv9B,EAAIsgC,EACV9C,GAAMx9B,EAAIugC,EACV9C,GAAMz9B,EAAIwgC,EACV5B,GAAM5+B,EAAIygC,EACV5B,GAAM7+B,EAAI0gC,EACV5B,GAAO9+B,EAAI2gC,EACX5B,GAAO/+B,EAAI4gC,EACX5B,GAAOh/B,EAAI6gC,EACX5B,GAAOj/B,EAAI8gC,EACX5B,GAAOl/B,EAAI+gC,EACX5B,GAAOn/B,EAAIghC,EAEX7D,IADAn9B,EAAIjE,EAAE,IACIoP,EACViyB,GAAMp9B,EAAIoL,EACViyB,GAAMr9B,EAAImgC,EACV7C,GAAMt9B,EAAIogC,EACV7C,GAAMv9B,EAAIqgC,EACV7C,GAAMx9B,EAAIsgC,EACV7C,GAAMz9B,EAAIugC,EACV3B,GAAM5+B,EAAIwgC,EACV3B,GAAM7+B,EAAIygC,EACV3B,GAAO9+B,EAAI0gC,EACX3B,GAAO/+B,EAAI2gC,EACX3B,GAAOh/B,EAAI4gC,EACX3B,GAAOj/B,EAAI6gC,EACX3B,GAAOl/B,EAAI8gC,EACX3B,GAAOn/B,EAAI+gC,EACX3B,GAAOp/B,EAAIghC,EAEX5D,IADAp9B,EAAIjE,EAAE,IACIoP,EACVkyB,GAAMr9B,EAAIoL,EACVkyB,GAAMt9B,EAAImgC,EACV5C,GAAMv9B,EAAIogC,EACV5C,GAAMx9B,EAAIqgC,EACV5C,GAAMz9B,EAAIsgC,EACV1B,GAAM5+B,EAAIugC,EACV1B,GAAM7+B,EAAIwgC,EACV1B,GAAO9+B,EAAIygC,EACX1B,GAAO/+B,EAAI0gC,EACX1B,GAAOh/B,EAAI2gC,EACX1B,GAAOj/B,EAAI4gC,EACX1B,GAAOl/B,EAAI6gC,EACX1B,GAAOn/B,EAAI8gC,EACX1B,GAAOp/B,EAAI+gC,EACX1B,GAAOr/B,EAAIghC,EAEX3D,IADAr9B,EAAIjE,EAAE,IACIoP,EACVmyB,GAAMt9B,EAAIoL,EACVmyB,GAAMv9B,EAAImgC,EACV3C,GAAMx9B,EAAIogC,EACV3C,GAAMz9B,EAAIqgC,EACVzB,GAAM5+B,EAAIsgC,EACVzB,GAAM7+B,EAAIugC,EACVzB,GAAO9+B,EAAIwgC,EACXzB,GAAO/+B,EAAIygC,EACXzB,GAAOh/B,EAAI0gC,EACXzB,GAAOj/B,EAAI2gC,EACXzB,GAAOl/B,EAAI4gC,EACXzB,GAAOn/B,EAAI6gC,EACXzB,GAAOp/B,EAAI8gC,EACXzB,GAAOr/B,EAAI+gC,EACXzB,GAAOt/B,EAAIghC,EAEX1D,IADAt9B,EAAIjE,EAAE,IACIoP,EACVoyB,GAAMv9B,EAAIoL,EACVoyB,GAAMx9B,EAAImgC,EACV1C,GAAMz9B,EAAIogC,EACVxB,GAAM5+B,EAAIqgC,EACVxB,GAAM7+B,EAAIsgC,EACVxB,GAAO9+B,EAAIugC,EACXxB,GAAO/+B,EAAIwgC,EACXxB,GAAOh/B,EAAIygC,EACXxB,GAAOj/B,EAAI0gC,EACXxB,GAAOl/B,EAAI2gC,EACXxB,GAAOn/B,EAAI4gC,EACXxB,GAAOp/B,EAAI6gC,EACXxB,GAAOr/B,EAAI8gC,EACXxB,GAAOt/B,EAAI+gC,EACXxB,GAAOv/B,EAAIghC,EAEXzD,IADAv9B,EAAIjE,EAAE,IACIoP,EACVqyB,GAAMx9B,EAAIoL,EACVqyB,GAAMz9B,EAAImgC,EACVvB,GAAM5+B,EAAIogC,EACVvB,GAAM7+B,EAAIqgC,EACVvB,GAAO9+B,EAAIsgC,EACXvB,GAAO/+B,EAAIugC,EACXvB,GAAOh/B,EAAIwgC,EACXvB,GAAOj/B,EAAIygC,EACXvB,GAAOl/B,EAAI0gC,EACXvB,GAAOn/B,EAAI2gC,EACXvB,GAAOp/B,EAAI4gC,EACXvB,GAAOr/B,EAAI6gC,EACXvB,GAAOt/B,EAAI8gC,EACXvB,GAAOv/B,EAAI+gC,EACXvB,GAAOx/B,EAAIghC,EAEXxD,IADAx9B,EAAIjE,EAAE,IACIoP,EACVsyB,GAAMz9B,EAAIoL,EACVwzB,GAAM5+B,EAAImgC,EACVtB,GAAM7+B,EAAIogC,EACVtB,GAAO9+B,EAAIqgC,EACXtB,GAAO/+B,EAAIsgC,EACXtB,GAAOh/B,EAAIugC,EACXtB,GAAOj/B,EAAIwgC,EACXtB,GAAOl/B,EAAIygC,EACXtB,GAAOn/B,EAAI0gC,EACXtB,GAAOp/B,EAAI2gC,EACXtB,GAAOr/B,EAAI4gC,EACXtB,GAAOt/B,EAAI6gC,EACXtB,GAAOv/B,EAAI8gC,EACXtB,GAAOx/B,EAAI+gC,EACXtB,GAAOz/B,EAAIghC,EAEXvD,IADAz9B,EAAIjE,EAAE,IACIoP,EACVyzB,GAAM5+B,EAAIoL,EACVyzB,GAAM7+B,EAAImgC,EACVrB,GAAO9+B,EAAIogC,EACXrB,GAAO/+B,EAAIqgC,EACXrB,GAAOh/B,EAAIsgC,EACXrB,GAAOj/B,EAAIugC,EACXrB,GAAOl/B,EAAIwgC,EACXrB,GAAOn/B,EAAIygC,EACXrB,GAAOp/B,EAAI0gC,EACXrB,GAAOr/B,EAAI2gC,EACXrB,GAAOt/B,EAAI4gC,EACXrB,GAAOv/B,EAAI6gC,EACXrB,GAAOx/B,EAAI8gC,EACXrB,GAAOz/B,EAAI+gC,EACXrB,GAAO1/B,EAAIghC,EAEXpC,IADA5+B,EAAIjE,EAAE,IACIoP,EACV0zB,GAAM7+B,EAAIoL,EACV0zB,GAAO9+B,EAAImgC,EACXpB,GAAO/+B,EAAIogC,EACXpB,GAAOh/B,EAAIqgC,EACXpB,GAAOj/B,EAAIsgC,EACXpB,GAAOl/B,EAAIugC,EACXpB,GAAOn/B,EAAIwgC,EACXpB,GAAOp/B,EAAIygC,EACXpB,GAAOr/B,EAAI0gC,EACXpB,GAAOt/B,EAAI2gC,EACXpB,GAAOv/B,EAAI4gC,EACXpB,GAAOx/B,EAAI6gC,EACXpB,GAAOz/B,EAAI8gC,EACXpB,GAAO1/B,EAAI+gC,EACXpB,GAAO3/B,EAAIghC,EAEXnC,IADA7+B,EAAIjE,EAAE,IACIoP,EACV2zB,GAAO9+B,EAAIoL,EACX2zB,GAAO/+B,EAAImgC,EACXnB,GAAOh/B,EAAIogC,EACXnB,GAAOj/B,EAAIqgC,EACXnB,GAAOl/B,EAAIsgC,EACXnB,GAAOn/B,EAAIugC,EACXnB,GAAOp/B,EAAIwgC,EACXnB,GAAOr/B,EAAIygC,EACXnB,GAAOt/B,EAAI0gC,EACXnB,GAAOv/B,EAAI2gC,EACXnB,GAAOx/B,EAAI4gC,EACXnB,GAAOz/B,EAAI6gC,EACXnB,GAAO1/B,EAAI8gC,EACXnB,GAAO3/B,EAAI+gC,EACXnB,GAAO5/B,EAAIghC,EAEXlC,IADA9+B,EAAIjE,EAAE,KACKoP,EACX4zB,GAAO/+B,EAAIoL,EACX4zB,GAAOh/B,EAAImgC,EACXlB,GAAOj/B,EAAIogC,EACXlB,GAAOl/B,EAAIqgC,EACXlB,GAAOn/B,EAAIsgC,EACXlB,GAAOp/B,EAAIugC,EACXlB,GAAOr/B,EAAIwgC,EACXlB,GAAOt/B,EAAIygC,EACXlB,GAAOv/B,EAAI0gC,EACXlB,GAAOx/B,EAAI2gC,EACXlB,GAAOz/B,EAAI4gC,EACXlB,GAAO1/B,EAAI6gC,EACXlB,GAAO3/B,EAAI8gC,EACXlB,GAAO5/B,EAAI+gC,EACXlB,GAAO7/B,EAAIghC,EAEXjC,IADA/+B,EAAIjE,EAAE,KACKoP,EACX6zB,GAAOh/B,EAAIoL,EACX6zB,GAAOj/B,EAAImgC,EACXjB,GAAOl/B,EAAIogC,EACXjB,GAAOn/B,EAAIqgC,EACXjB,GAAOp/B,EAAIsgC,EACXjB,GAAOr/B,EAAIugC,EACXjB,GAAOt/B,EAAIwgC,EACXjB,GAAOv/B,EAAIygC,EACXjB,GAAOx/B,EAAI0gC,EACXjB,GAAOz/B,EAAI2gC,EACXjB,GAAO1/B,EAAI4gC,EACXjB,GAAO3/B,EAAI6gC,EACXjB,GAAO5/B,EAAI8gC,EACXjB,GAAO7/B,EAAI+gC,EACXjB,GAAO9/B,EAAIghC,EAEXhC,IADAh/B,EAAIjE,EAAE,KACKoP,EACX8zB,GAAOj/B,EAAIoL,EACX8zB,GAAOl/B,EAAImgC,EACXhB,GAAOn/B,EAAIogC,EACXhB,GAAOp/B,EAAIqgC,EACXhB,GAAOr/B,EAAIsgC,EACXhB,GAAOt/B,EAAIugC,EACXhB,GAAOv/B,EAAIwgC,EACXhB,GAAOx/B,EAAIygC,EACXhB,GAAOz/B,EAAI0gC,EACXhB,GAAO1/B,EAAI2gC,EACXhB,GAAO3/B,EAAI4gC,EACXhB,GAAO5/B,EAAI6gC,EACXhB,GAAO7/B,EAAI8gC,EACXhB,GAAO9/B,EAAI+gC,EACXhB,GAAO//B,EAAIghC,EAEX/B,IADAj/B,EAAIjE,EAAE,KACKoP,EACX+zB,GAAOl/B,EAAIoL,EACX+zB,GAAOn/B,EAAImgC,EACXf,GAAOp/B,EAAIogC,EACXf,GAAOr/B,EAAIqgC,EACXf,GAAOt/B,EAAIsgC,EACXf,GAAOv/B,EAAIugC,EACXf,GAAOx/B,EAAIwgC,EACXf,GAAOz/B,EAAIygC,EACXf,GAAO1/B,EAAI0gC,EACXf,GAAO3/B,EAAI2gC,EACXf,GAAO5/B,EAAI4gC,EACXf,GAAO7/B,EAAI6gC,EACXf,GAAO9/B,EAAI8gC,EACXf,GAAO//B,EAAI+gC,EACXf,GAAOhgC,EAAIghC,EAEX9B,IADAl/B,EAAIjE,EAAE,KACKoP,EACXg0B,GAAOn/B,EAAIoL,EACXg0B,GAAOp/B,EAAImgC,EACXd,GAAOr/B,EAAIogC,EACXd,GAAOt/B,EAAIqgC,EACXd,GAAOv/B,EAAIsgC,EACXd,GAAOx/B,EAAIugC,EACXd,GAAOz/B,EAAIwgC,EACXd,GAAO1/B,EAAIygC,EACXd,GAAO3/B,EAAI0gC,EACXd,GAAO5/B,EAAI2gC,EACXd,GAAO7/B,EAAI4gC,EACXd,GAAO9/B,EAAI6gC,EACXd,GAAO//B,EAAI8gC,EACXd,GAAOhgC,EAAI+gC,EACXd,GAAOjgC,EAAIghC,EAEX7B,IADAn/B,EAAIjE,EAAE,KACKoP,EAkBXgyB,GAAO,IAhBPkC,GAAOr/B,EAAImgC,GAiBX/C,GAAO,IAhBPkC,GAAOt/B,EAAIogC,GAiBX/C,GAAO,IAhBPkC,GAAOv/B,EAAIqgC,GAiBX/C,GAAO,IAhBPkC,GAAOx/B,EAAIsgC,GAiBX/C,GAAO,IAhBPkC,GAAOz/B,EAAIugC,GAiBX/C,GAAO,IAhBPkC,GAAO1/B,EAAIwgC,GAiBX/C,GAAO,IAhBPkC,GAAO3/B,EAAIygC,GAiBX7B,GAAO,IAhBPgB,GAAO5/B,EAAI0gC,GAiBX7B,GAAO,IAhBPgB,GAAO7/B,EAAI2gC,GAiBX7B,GAAO,IAhBPgB,GAAO9/B,EAAI4gC,GAiBX7B,GAAO,IAhBPgB,GAAO//B,EAAI6gC,GAiBX7B,GAAO,IAhBPgB,GAAOhgC,EAAI8gC,GAiBX7B,GAAO,IAhBPgB,GAAOjgC,EAAI+gC,GAiBX7B,GAAO,IAhBPgB,GAAOlgC,EAAIghC,GAqBsC9D,GAAjDl9B,GAnBAk9B,GAAO,IAhBPkC,GAAOp/B,EAAIoL,KAkCX1O,EAAI,GACU,OAAgD,OAAzCA,EAAI1B,KAAKG,MAAM6E,EAAI,QACSm9B,GAAjDn9B,EAAKm9B,EAAKzgC,EAAI,OAAgD,OAAzCA,EAAI1B,KAAKG,MAAM6E,EAAI,QACSo9B,GAAjDp9B,EAAKo9B,EAAK1gC,EAAI,OAAgD,OAAzCA,EAAI1B,KAAKG,MAAM6E,EAAI,QACSq9B,GAAjDr9B,EAAKq9B,EAAK3gC,EAAI,OAAgD,OAAzCA,EAAI1B,KAAKG,MAAM6E,EAAI,QACSs9B,GAAjDt9B,EAAKs9B,EAAK5gC,EAAI,OAAgD,OAAzCA,EAAI1B,KAAKG,MAAM6E,EAAI,QACSu9B,GAAjDv9B,EAAKu9B,EAAK7gC,EAAI,OAAgD,OAAzCA,EAAI1B,KAAKG,MAAM6E,EAAI,QACSw9B,GAAjDx9B,EAAKw9B,EAAK9gC,EAAI,OAAgD,OAAzCA,EAAI1B,KAAKG,MAAM6E,EAAI,QACSy9B,GAAjDz9B,EAAKy9B,EAAK/gC,EAAI,OAAgD,OAAzCA,EAAI1B,KAAKG,MAAM6E,EAAI,QACS4+B,GAAjD5+B,EAAK4+B,EAAKliC,EAAI,OAAgD,OAAzCA,EAAI1B,KAAKG,MAAM6E,EAAI,QACS6+B,GAAjD7+B,EAAK6+B,EAAKniC,EAAI,OAAgD,OAAzCA,EAAI1B,KAAKG,MAAM6E,EAAI,QACQ8+B,GAAhD9+B,EAAI8+B,EAAMpiC,EAAI,OAAgD,OAAzCA,EAAI1B,KAAKG,MAAM6E,EAAI,QACQ++B,GAAhD/+B,EAAI++B,EAAMriC,EAAI,OAAgD,OAAzCA,EAAI1B,KAAKG,MAAM6E,EAAI,QACQg/B,GAAhDh/B,EAAIg/B,EAAMtiC,EAAI,OAAgD,OAAzCA,EAAI1B,KAAKG,MAAM6E,EAAI,QACQi/B,GAAhDj/B,EAAIi/B,EAAMviC,EAAI,OAAgD,OAAzCA,EAAI1B,KAAKG,MAAM6E,EAAI,QACQk/B,GAAhDl/B,EAAIk/B,EAAMxiC,EAAI,OAAgD,OAAzCA,EAAI1B,KAAKG,MAAM6E,EAAI,QACQm/B,GAAhDn/B,EAAIm/B,EAAMziC,EAAI,OAAgD,OAAzCA,EAAI1B,KAAKG,MAAM6E,EAAI,QAKSk9B,GAAjDl9B,GAJAk9B,GAAMxgC,EAAE,EAAI,IAAMA,EAAE,KAGpBA,EAAI,GACU,OAAgD,OAAzCA,EAAI1B,KAAKG,MAAM6E,EAAI,QACSm9B,GAAjDn9B,EAAKm9B,EAAKzgC,EAAI,OAAgD,OAAzCA,EAAI1B,KAAKG,MAAM6E,EAAI,QACSo9B,GAAjDp9B,EAAKo9B,EAAK1gC,EAAI,OAAgD,OAAzCA,EAAI1B,KAAKG,MAAM6E,EAAI,QACSq9B,GAAjDr9B,EAAKq9B,EAAK3gC,EAAI,OAAgD,OAAzCA,EAAI1B,KAAKG,MAAM6E,EAAI,QACSs9B,GAAjDt9B,EAAKs9B,EAAK5gC,EAAI,OAAgD,OAAzCA,EAAI1B,KAAKG,MAAM6E,EAAI,QACSu9B,GAAjDv9B,EAAKu9B,EAAK7gC,EAAI,OAAgD,OAAzCA,EAAI1B,KAAKG,MAAM6E,EAAI,QACSw9B,GAAjDx9B,EAAKw9B,EAAK9gC,EAAI,OAAgD,OAAzCA,EAAI1B,KAAKG,MAAM6E,EAAI,QACSy9B,GAAjDz9B,EAAKy9B,EAAK/gC,EAAI,OAAgD,OAAzCA,EAAI1B,KAAKG,MAAM6E,EAAI,QACS4+B,GAAjD5+B,EAAK4+B,EAAKliC,EAAI,OAAgD,OAAzCA,EAAI1B,KAAKG,MAAM6E,EAAI,QACS6+B,GAAjD7+B,EAAK6+B,EAAKniC,EAAI,OAAgD,OAAzCA,EAAI1B,KAAKG,MAAM6E,EAAI,QACQ8+B,GAAhD9+B,EAAI8+B,EAAMpiC,EAAI,OAAgD,OAAzCA,EAAI1B,KAAKG,MAAM6E,EAAI,QACQ++B,GAAhD/+B,EAAI++B,EAAMriC,EAAI,OAAgD,OAAzCA,EAAI1B,KAAKG,MAAM6E,EAAI,QACQg/B,GAAhDh/B,EAAIg/B,EAAMtiC,EAAI,OAAgD,OAAzCA,EAAI1B,KAAKG,MAAM6E,EAAI,QACQi/B,GAAhDj/B,EAAIi/B,EAAMviC,EAAI,OAAgD,OAAzCA,EAAI1B,KAAKG,MAAM6E,EAAI,QACQk/B,GAAhDl/B,EAAIk/B,EAAMxiC,EAAI,OAAgD,OAAzCA,EAAI1B,KAAKG,MAAM6E,EAAI,QACQm/B,GAAhDn/B,EAAIm/B,EAAMziC,EAAI,OAAgD,OAAzCA,EAAI1B,KAAKG,MAAM6E,EAAI,QACxCk9B,GAAMxgC,EAAE,EAAI,IAAMA,EAAE,GAEpB49B,EAAG,GAAK4C,EACR5C,EAAG,GAAK6C,EACR7C,EAAG,GAAK8C,EACR9C,EAAG,GAAK+C,EACR/C,EAAG,GAAKgD,EACRhD,EAAG,GAAKiD,EACRjD,EAAG,GAAKkD,EACRlD,EAAG,GAAKmD,EACRnD,EAAG,GAAKsE,EACRtE,EAAG,GAAKuE,EACRvE,EAAE,IAAMwE,EACRxE,EAAE,IAAMyE,EACRzE,EAAE,IAAM0E,EACR1E,EAAE,IAAM2E,EACR3E,EAAE,IAAM4E,EACR5E,EAAE,IAAM6E,CACV,CAEA,SAAS8B,EAAE3G,EAAGv+B,GACZoS,EAAEmsB,EAAGv+B,EAAGA,EACV,CAEA,SAASmlC,EAAS5G,EAAGrhC,GACnB,IACI8C,EADAW,EAAIy8B,IAER,IAAKp9B,EAAI,EAAGA,EAAI,GAAIA,IAAKW,EAAEX,GAAK9C,EAAE8C,GAClC,IAAKA,EAAI,IAAKA,GAAK,EAAGA,IACpBklC,EAAEvkC,EAAGA,GACI,IAANX,GAAiB,IAANA,GAASoS,EAAEzR,EAAGA,EAAGzD,GAEjC,IAAK8C,EAAI,EAAGA,EAAI,GAAIA,IAAKu+B,EAAEv+B,GAAKW,EAAEX,EACpC,CAEA,SAASolC,EAAQ7G,EAAGrhC,GAClB,IACI8C,EADAW,EAAIy8B,IAER,IAAKp9B,EAAI,EAAGA,EAAI,GAAIA,IAAKW,EAAEX,GAAK9C,EAAE8C,GAClC,IAAKA,EAAI,IAAKA,GAAK,EAAGA,IAClBklC,EAAEvkC,EAAGA,GACI,IAANX,GAASoS,EAAEzR,EAAGA,EAAGzD,GAExB,IAAK8C,EAAI,EAAGA,EAAI,GAAIA,IAAKu+B,EAAEv+B,GAAKW,EAAEX,EACpC,CAEA,SAASqlC,EAAkB57B,EAAG3J,EAAG6G,GAC/B,IAC8BvG,EAAGlD,EAD7BgD,EAAI,IAAI7B,WAAW,IACnBkC,EAAI,IAAIqtB,aAAa,IACrB5tB,EAAIo9B,IAAM38B,EAAI28B,IAAMz8B,EAAIy8B,IACxB33B,EAAI23B,IAAMt8B,EAAIs8B,IAAMnJ,EAAImJ,IAC5B,IAAKlgC,EAAI,EAAGA,EAAI,GAAIA,IAAKgD,EAAEhD,GAAK4C,EAAE5C,GAIlC,IAHAgD,EAAE,IAAW,IAANJ,EAAE,IAAS,GAClBI,EAAE,IAAI,IACNwiC,EAAYniC,EAAEoG,GACTzJ,EAAI,EAAGA,EAAI,GAAIA,IAClBuD,EAAEvD,GAAGqD,EAAErD,GACPuI,EAAEvI,GAAG8C,EAAE9C,GAAGyD,EAAEzD,GAAG,EAGjB,IADA8C,EAAE,GAAGyF,EAAE,GAAG,EACLvI,EAAE,IAAKA,GAAG,IAAKA,EAElBolC,EAAStiC,EAAES,EADXL,EAAGF,EAAEhD,IAAI,MAAQ,EAAFA,GAAM,GAErBolC,EAAS3hC,EAAE8E,EAAErF,GACbuiC,EAAE7hC,EAAEd,EAAEW,GACNiiC,EAAE5iC,EAAEA,EAAEW,GACNgiC,EAAEhiC,EAAEF,EAAEgF,GACNm9B,EAAEniC,EAAEA,EAAEgF,GACNy/B,EAAEz/B,EAAE3E,GACJokC,EAAEjR,EAAEj0B,GACJoS,EAAEpS,EAAEW,EAAEX,GACNoS,EAAEzR,EAAEF,EAAEK,GACN6hC,EAAE7hC,EAAEd,EAAEW,GACNiiC,EAAE5iC,EAAEA,EAAEW,GACNukC,EAAEzkC,EAAET,GACJ4iC,EAAEjiC,EAAE8E,EAAEwuB,GACN7hB,EAAEpS,EAAEW,EAAE+8B,GACNiF,EAAE3iC,EAAEA,EAAEyF,GACN2M,EAAEzR,EAAEA,EAAEX,GACNoS,EAAEpS,EAAEyF,EAAEwuB,GACN7hB,EAAE3M,EAAEhF,EAAEF,GACN2kC,EAAEzkC,EAAEK,GACJwhC,EAAStiC,EAAES,EAAEL,GACbkiC,EAAS3hC,EAAE8E,EAAErF,GAEf,IAAKlD,EAAI,EAAGA,EAAI,GAAIA,IAClBqD,EAAErD,EAAE,IAAI8C,EAAE9C,GACVqD,EAAErD,EAAE,IAAIyD,EAAEzD,GACVqD,EAAErD,EAAE,IAAIuD,EAAEvD,GACVqD,EAAErD,EAAE,IAAIuI,EAAEvI,GAEZ,IAAIooC,EAAM/kC,EAAEob,SAAS,IACjB4pB,EAAMhlC,EAAEob,SAAS,IAIrB,OAHAwpB,EAASG,EAAIA,GACblzB,EAAEmzB,EAAIA,EAAID,GACV/C,EAAU94B,EAAE87B,GACL,CACT,CAEA,SAASC,EAAuB/7B,EAAG3J,GACjC,OAAOulC,EAAkB57B,EAAG3J,EAAGy9B,EACjC,CAEA,SAASkI,EAAmBjlC,EAAGD,GAE7B,OADA88B,EAAY98B,EAAG,IACRilC,EAAuBhlC,EAAGD,EACnC,CAEA,SAASmlC,EAAoB7kC,EAAGL,EAAGD,GACjC,IAAIN,EAAI,IAAI5B,WAAW,IAEvB,OADAgnC,EAAkBplC,EAAGM,EAAGC,GACjBggC,EAAqB3/B,EAAGy8B,EAAIr9B,EAAGygC,EACxC,CA53BAQ,EAAS1+B,UAAUmjC,OAAS,SAASh9B,EAAGk4B,EAAMnvB,GA2B5C,IA1BA,IACIyvB,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAI/gC,EAChC2N,EAAIC,EAAIC,EAAIo3B,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAFpCC,EAAQ9hC,KAAKu9B,IAAM,EAAI,KAIvBwE,EAAK/hC,KAAKiM,EAAE,GACZ+1B,EAAKhiC,KAAKiM,EAAE,GACZg2B,EAAKjiC,KAAKiM,EAAE,GACZi2B,EAAKliC,KAAKiM,EAAE,GACZk2B,EAAKniC,KAAKiM,EAAE,GACZm2B,EAAKpiC,KAAKiM,EAAE,GACZo2B,EAAKriC,KAAKiM,EAAE,GACZq2B,EAAKtiC,KAAKiM,EAAE,GACZs2B,EAAKviC,KAAKiM,EAAE,GACZu2B,EAAKxiC,KAAKiM,EAAE,GAEZw2B,EAAKziC,KAAKjE,EAAE,GACZ2mC,EAAK1iC,KAAKjE,EAAE,GACZ4mC,EAAK3iC,KAAKjE,EAAE,GACZ6mC,EAAK5iC,KAAKjE,EAAE,GACZ8mC,EAAK7iC,KAAKjE,EAAE,GACZ+mC,EAAK9iC,KAAKjE,EAAE,GACZgnC,EAAK/iC,KAAKjE,EAAE,GACZinC,EAAKhjC,KAAKjE,EAAE,GACZknC,EAAKjjC,KAAKjE,EAAE,GACZmnC,EAAKljC,KAAKjE,EAAE,GAETsR,GAAS,IAcdpD,EAFA3N,EAAI,EAGJ2N,IAdmD83B,GAAmC,MAAtFjF,EAAkB,IAAbx4B,EAAEk4B,EAAM,IAA0B,IAAbl4B,EAAEk4B,EAAM,KAAc,IAcrCiG,EACXx4B,IAdmD+3B,GAAmC,MAA3BlF,IAAO,IAAlEC,EAAkB,IAAbz4B,EAAEk4B,EAAM,IAA0B,IAAbl4B,EAAEk4B,EAAM,KAAc,IAAgC,KAcpE,EAAI0G,GAChBj5B,IAdmDg4B,GAAmC,MAA3BlF,IAAO,IAAlEC,EAAkB,IAAb14B,EAAEk4B,EAAM,IAA0B,IAAbl4B,EAAEk4B,EAAM,KAAc,IAAgC,KAcpE,EAAIyG,GAChBh5B,IAdmDi4B,GAAmC,MAA3BlF,IAAQ,GAAnEC,EAAkB,IAAb34B,EAAEk4B,EAAM,IAA0B,IAAbl4B,EAAEk4B,EAAM,KAAc,IAAgC,KAcpE,EAAIwG,GAEhB1mC,GADA2N,IAdmDk4B,GAAmC,MAA3BlF,IAAQ,GAAnEC,EAAkB,IAAb54B,EAAEk4B,EAAM,IAA0B,IAAbl4B,EAAEk4B,EAAM,KAAc,IAA+B,MAcnE,EAAIuG,MACJ,GAAK94B,GAAM,KACvBA,IAfAm4B,GAAQlF,IAAQ,EAAM,OAeV,EAAI4F,GAChB74B,IAfmDo4B,GAAmC,MAA3BnF,IAAO,IAAlEC,EAAkB,IAAb74B,EAAEk4B,EAAK,KAA2B,IAAbl4B,EAAEk4B,EAAK,MAAe,IAAgC,KAepE,EAAIqG,GAChB54B,IAfmDq4B,GAAmC,MAA3BnF,IAAO,IAAlEC,EAAkB,IAAb94B,EAAEk4B,EAAK,KAA2B,IAAbl4B,EAAEk4B,EAAK,MAAe,IAAgC,KAepE,EAAIoG,GAChB34B,IAfmDs4B,GAAmC,MAA3BnF,IAAQ,GAAnEC,EAAkB,IAAb/4B,EAAEk4B,EAAK,KAA2B,IAAbl4B,EAAEk4B,EAAK,MAAe,IAAgC,KAepE,EAAImG,GAIhBz4B,EAFA5N,IADA2N,IAfAu4B,GAAQnF,IAAO,EAAMyE,IAeT,EAAIY,MACH,GAGbx4B,GAAM63B,EAAKW,EACXx4B,GAAM83B,EAAKS,EACXv4B,GAAM+3B,GAAM,EAAIiB,GAChBh5B,GAAMg4B,GAAM,EAAIe,GAEhB3mC,GADA4N,GAAMi4B,GAAM,EAAIa,MACJ,GAAK94B,GAAM,KACvBA,GAAMk4B,GAAM,EAAIW,GAChB74B,GAAMm4B,GAAM,EAAIS,GAChB54B,GAAMo4B,GAAM,EAAIO,GAChB34B,GAAMq4B,GAAM,EAAIK,GAEhBtmC,IADA4N,GAAMs4B,GAAM,EAAIG,MACH,GAAKz4B,GAAM,KAExBC,EAAK7N,EACL6N,GAAM43B,EAAKY,EACXx4B,GAAM63B,EAAKU,EACXv4B,GAAM83B,EAAKQ,EACXt4B,GAAM+3B,GAAM,EAAIgB,GAEhB5mC,GADA6N,GAAMg4B,GAAM,EAAIc,MACJ,GAAK94B,GAAM,KACvBA,GAAMi4B,GAAM,EAAIY,GAChB74B,GAAMk4B,GAAM,EAAIU,GAChB54B,GAAMm4B,GAAM,EAAIQ,GAChB34B,GAAMo4B,GAAM,EAAIM,GAIhBtB,EAFAjlC,IADA6N,GAAMq4B,GAAM,EAAII,MACH,GAGbrB,GAAMQ,EAAKa,EACXrB,GAAMS,EAAKW,EACXpB,GAAMU,EAAKS,EACXnB,GAAMW,EAAKO,EAEXnmC,GADAilC,GAAMY,GAAM,EAAIe,MACJ,GAAK3B,GAAM,KACvBA,GAAMa,GAAM,EAAIa,GAChB1B,GAAMc,GAAM,EAAIW,GAChBzB,GAAMe,GAAM,EAAIS,GAChBxB,GAAMgB,GAAM,EAAIO,GAIhBtB,EAFAllC,IADAilC,GAAMiB,GAAM,EAAIK,MACH,GAGbrB,GAAMO,EAAKc,EACXrB,GAAMQ,EAAKY,EACXpB,GAAMS,EAAKU,EACXnB,GAAMU,EAAKQ,EAEXpmC,GADAklC,GAAMW,EAAKM,KACC,GAAKjB,GAAM,KACvBA,GAAMY,GAAM,EAAIc,GAChB1B,GAAMa,GAAM,EAAIY,GAChBzB,GAAMc,GAAM,EAAIU,GAChBxB,GAAMe,GAAM,EAAIQ,GAIhBtB,EAFAnlC,IADAklC,GAAMgB,GAAM,EAAIM,MACH,GAGbrB,GAAMM,EAAKe,EACXrB,GAAMO,EAAKa,EACXpB,GAAMQ,EAAKW,EACXnB,GAAMS,EAAKS,EAEXrmC,GADAmlC,GAAMU,EAAKO,KACC,GAAKjB,GAAM,KACvBA,GAAMW,EAAKK,EACXhB,GAAMY,GAAM,EAAIa,GAChBzB,GAAMa,GAAM,EAAIW,GAChBxB,GAAMc,GAAM,EAAIS,GAIhBtB,EAFAplC,IADAmlC,GAAMe,GAAM,EAAIO,MACH,GAGbrB,GAAMK,EAAKgB,EACXrB,GAAMM,EAAKc,EACXpB,GAAMO,EAAKY,EACXnB,GAAMQ,EAAKU,EAEXtmC,GADAolC,GAAMS,EAAKQ,KACC,GAAKjB,GAAM,KACvBA,GAAMU,EAAKM,EACXhB,GAAMW,EAAKI,EACXf,GAAMY,GAAM,EAAIY,GAChBxB,GAAMa,GAAM,EAAIU,GAIhBtB,EAFArlC,IADAolC,GAAMc,GAAM,EAAIQ,MACH,GAGbrB,GAAMI,EAAKiB,EACXrB,GAAMK,EAAKe,EACXpB,GAAMM,EAAKa,EACXnB,GAAMO,EAAKW,EAEXvmC,GADAqlC,GAAMQ,EAAKS,KACC,GAAKjB,GAAM,KACvBA,GAAMS,EAAKO,EACXhB,GAAMU,EAAKK,EACXf,GAAMW,EAAKG,EACXd,GAAMY,GAAM,EAAIW,GAIhBtB,EAFAtlC,IADAqlC,GAAMa,GAAM,EAAIS,MACH,GAGbrB,GAAMG,EAAKkB,EACXrB,GAAMI,EAAKgB,EACXpB,GAAMK,EAAKc,EACXnB,GAAMM,EAAKY,EAEXxmC,GADAslC,GAAMO,EAAKU,KACC,GAAKjB,GAAM,KACvBA,GAAMQ,EAAKQ,EACXhB,GAAMS,EAAKM,EACXf,GAAMU,EAAKI,EACXd,GAAMW,EAAKE,EAIXZ,EAFAvlC,IADAslC,GAAMY,GAAM,EAAIU,MACH,GAGbrB,GAAME,EAAKmB,EACXrB,GAAMG,EAAKiB,EACXpB,GAAMI,EAAKe,EACXnB,GAAMK,EAAKa,EAEXzmC,GADAulC,GAAMM,EAAKW,KACC,GAAKjB,GAAM,KACvBA,GAAMO,EAAKS,EACXhB,GAAMQ,EAAKO,EACXf,GAAMS,EAAKK,EACXd,GAAMU,EAAKG,EAUXX,EAJA93B,EAAS,MADT3N,GADAA,IAFAA,IADAulC,GAAMW,EAAKC,KACE,KAED,GAAKnmC,EAAM,IAhIL2N,GAAM,MAiIT,GAMf+3B,EAHA93B,GADA5N,KAAW,GAKX2lC,EA5GkB93B,GAAM,KA6GxB+3B,EA/FkBX,GAAM,KAgGxBY,EAlFkBX,GAAM,KAmFxBY,EArEkBX,GAAM,KAsExBY,EAxDkBX,GAAM,KAyDxBY,EA3CkBX,GAAM,KA4CxBY,EA9BkBX,GAAM,KA+BxBY,EAjBkBX,GAAM,KAmBxBrF,GAAQ,GACRnvB,GAAS,GAEXrN,KAAKiM,EAAE,GAAK81B,EACZ/hC,KAAKiM,EAAE,GAAK+1B,EACZhiC,KAAKiM,EAAE,GAAKg2B,EACZjiC,KAAKiM,EAAE,GAAKi2B,EACZliC,KAAKiM,EAAE,GAAKk2B,EACZniC,KAAKiM,EAAE,GAAKm2B,EACZpiC,KAAKiM,EAAE,GAAKo2B,EACZriC,KAAKiM,EAAE,GAAKq2B,EACZtiC,KAAKiM,EAAE,GAAKs2B,EACZviC,KAAKiM,EAAE,GAAKu2B,CACd,EAEA3F,EAAS1+B,UAAUu/B,OAAS,SAASyF,EAAKC,GACxC,IACI9mC,EAAG+mC,EAAMzT,EAAG/2B,EADZg/B,EAAI,IAAI5N,YAAY,IAGxB,GAAIjqB,KAAKs9B,SAAU,CAGjB,IAFAzkC,EAAImH,KAAKs9B,SACTt9B,KAAKsQ,OAAOzX,KAAO,EACZA,EAAI,GAAIA,IAAKmH,KAAKsQ,OAAOzX,GAAK,EACrCmH,KAAKu9B,IAAM,EACXv9B,KAAKshC,OAAOthC,KAAKsQ,OAAQ,EAAG,GAC9B,CAIA,IAFAhU,EAAI0D,KAAKiM,EAAE,KAAO,GAClBjM,KAAKiM,EAAE,IAAM,KACRpT,EAAI,EAAGA,EAAI,GAAIA,IAClBmH,KAAKiM,EAAEpT,IAAMyD,EACbA,EAAI0D,KAAKiM,EAAEpT,KAAO,GAClBmH,KAAKiM,EAAEpT,IAAM,KAaf,IAXAmH,KAAKiM,EAAE,IAAW,EAAJ3P,EACdA,EAAI0D,KAAKiM,EAAE,KAAO,GAClBjM,KAAKiM,EAAE,IAAM,KACbjM,KAAKiM,EAAE,IAAM3P,EACbA,EAAI0D,KAAKiM,EAAE,KAAO,GAClBjM,KAAKiM,EAAE,IAAM,KACbjM,KAAKiM,EAAE,IAAM3P,EAEbu7B,EAAE,GAAK73B,KAAKiM,EAAE,GAAK,EACnB3P,EAAIu7B,EAAE,KAAO,GACbA,EAAE,IAAM,KACHh/B,EAAI,EAAGA,EAAI,GAAIA,IAClBg/B,EAAEh/B,GAAKmH,KAAKiM,EAAEpT,GAAKyD,EACnBA,EAAIu7B,EAAEh/B,KAAO,GACbg/B,EAAEh/B,IAAM,KAKV,IAHAg/B,EAAE,IAAM,KAERwL,GAAY,EAAJ/mC,GAAS,EACZzD,EAAI,EAAGA,EAAI,GAAIA,IAAKg/B,EAAEh/B,IAAMwqC,EAEjC,IADAA,GAAQA,EACHxqC,EAAI,EAAGA,EAAI,GAAIA,IAAKmH,KAAKiM,EAAEpT,GAAMmH,KAAKiM,EAAEpT,GAAKwqC,EAAQxL,EAAEh/B,GAa5D,IAXAmH,KAAKiM,EAAE,GAAoE,OAA7DjM,KAAKiM,EAAE,GAAcjM,KAAKiM,EAAE,IAAM,IAChDjM,KAAKiM,EAAE,GAAoE,OAA7DjM,KAAKiM,EAAE,KAAQ,EAAMjM,KAAKiM,EAAE,IAAM,IAChDjM,KAAKiM,EAAE,GAAoE,OAA7DjM,KAAKiM,EAAE,KAAQ,EAAMjM,KAAKiM,EAAE,IAAO,GACjDjM,KAAKiM,EAAE,GAAoE,OAA7DjM,KAAKiM,EAAE,KAAQ,EAAMjM,KAAKiM,EAAE,IAAO,GACjDjM,KAAKiM,EAAE,GAAoE,OAA7DjM,KAAKiM,EAAE,KAAO,GAAOjM,KAAKiM,EAAE,IAAO,EAAMjM,KAAKiM,EAAE,IAAM,IACpEjM,KAAKiM,EAAE,GAAoE,OAA7DjM,KAAKiM,EAAE,KAAQ,EAAMjM,KAAKiM,EAAE,IAAM,IAChDjM,KAAKiM,EAAE,GAAoE,OAA7DjM,KAAKiM,EAAE,KAAQ,EAAMjM,KAAKiM,EAAE,IAAO,GACjDjM,KAAKiM,EAAE,GAAoE,OAA7DjM,KAAKiM,EAAE,KAAQ,EAAMjM,KAAKiM,EAAE,IAAO,GAEjD2jB,EAAI5vB,KAAKiM,EAAE,GAAKjM,KAAK60B,IAAI,GACzB70B,KAAKiM,EAAE,GAAS,MAAJ2jB,EACP/2B,EAAI,EAAGA,EAAI,EAAGA,IACjB+2B,GAAO5vB,KAAKiM,EAAEpT,GAAKmH,KAAK60B,IAAIh8B,GAAM,IAAM+2B,IAAM,IAAO,EACrD5vB,KAAKiM,EAAEpT,GAAS,MAAJ+2B,EAGduT,EAAIC,EAAQ,GAAMpjC,KAAKiM,EAAE,KAAO,EAAK,IACrCk3B,EAAIC,EAAQ,GAAMpjC,KAAKiM,EAAE,KAAO,EAAK,IACrCk3B,EAAIC,EAAQ,GAAMpjC,KAAKiM,EAAE,KAAO,EAAK,IACrCk3B,EAAIC,EAAQ,GAAMpjC,KAAKiM,EAAE,KAAO,EAAK,IACrCk3B,EAAIC,EAAQ,GAAMpjC,KAAKiM,EAAE,KAAO,EAAK,IACrCk3B,EAAIC,EAAQ,GAAMpjC,KAAKiM,EAAE,KAAO,EAAK,IACrCk3B,EAAIC,EAAQ,GAAMpjC,KAAKiM,EAAE,KAAO,EAAK,IACrCk3B,EAAIC,EAAQ,GAAMpjC,KAAKiM,EAAE,KAAO,EAAK,IACrCk3B,EAAIC,EAAQ,GAAMpjC,KAAKiM,EAAE,KAAO,EAAK,IACrCk3B,EAAIC,EAAQ,GAAMpjC,KAAKiM,EAAE,KAAO,EAAK,IACrCk3B,EAAIC,EAAO,IAAOpjC,KAAKiM,EAAE,KAAO,EAAK,IACrCk3B,EAAIC,EAAO,IAAOpjC,KAAKiM,EAAE,KAAO,EAAK,IACrCk3B,EAAIC,EAAO,IAAOpjC,KAAKiM,EAAE,KAAO,EAAK,IACrCk3B,EAAIC,EAAO,IAAOpjC,KAAKiM,EAAE,KAAO,EAAK,IACrCk3B,EAAIC,EAAO,IAAOpjC,KAAKiM,EAAE,KAAO,EAAK,IACrCk3B,EAAIC,EAAO,IAAOpjC,KAAKiM,EAAE,KAAO,EAAK,GACvC,EAEA4wB,EAAS1+B,UAAU63B,OAAS,SAAS1xB,EAAGk4B,EAAMnvB,GAC5C,IAAIxU,EAAGyqC,EAEP,GAAItjC,KAAKs9B,SAAU,CAIjB,KAHAgG,EAAQ,GAAKtjC,KAAKs9B,UACPjwB,IACTi2B,EAAOj2B,GACJxU,EAAI,EAAGA,EAAIyqC,EAAMzqC,IACpBmH,KAAKsQ,OAAOtQ,KAAKs9B,SAAWzkC,GAAKyL,EAAEk4B,EAAK3jC,GAI1C,GAHAwU,GAASi2B,EACT9G,GAAQ8G,EACRtjC,KAAKs9B,UAAYgG,EACbtjC,KAAKs9B,SAAW,GAClB,OACFt9B,KAAKshC,OAAOthC,KAAKsQ,OAAQ,EAAG,IAC5BtQ,KAAKs9B,SAAW,CAClB,CASA,GAPIjwB,GAAS,KACXi2B,EAAOj2B,EAASA,EAAQ,GACxBrN,KAAKshC,OAAOh9B,EAAGk4B,EAAM8G,GACrB9G,GAAQ8G,EACRj2B,GAASi2B,GAGPj2B,EAAO,CACT,IAAKxU,EAAI,EAAGA,EAAIwU,EAAOxU,IACrBmH,KAAKsQ,OAAOtQ,KAAKs9B,SAAWzkC,GAAKyL,EAAEk4B,EAAK3jC,GAC1CmH,KAAKs9B,UAAYjwB,CACnB,CACF,EA+jBA,IAAIk2B,EAAqB1F,EACrB2F,EAA0B1F,EAc1BjH,EAAI,CACN,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,UAAY,WAAY,UAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,UAAY,UACpC,UAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,UACpC,UAAY,WAAY,UAAY,WACpC,UAAY,WAAY,UAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,UAAY,WACpC,UAAY,WAAY,UAAY,UACpC,UAAY,UAAY,UAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,YAGtC,SAAS4M,EAAqBC,EAAIC,EAAIr/B,EAAG7I,GAyBvC,IAxBA,IACImoC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EACnCC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EACnCC,EAAIC,EAAIhsC,EAAGiD,EAAGmQ,EAAGvP,EAAGf,EAAGS,EAAGE,EAAG8E,EAH7B0jC,EAAK,IAAInb,WAAW,IAAKob,EAAK,IAAIpb,WAAW,IAK7Cqb,EAAMtB,EAAG,GACTuB,EAAMvB,EAAG,GACTwB,EAAMxB,EAAG,GACTyB,EAAMzB,EAAG,GACT0B,EAAM1B,EAAG,GACT2B,EAAM3B,EAAG,GACT4B,EAAM5B,EAAG,GACT6B,EAAM7B,EAAG,GAET8B,EAAM7B,EAAG,GACT8B,EAAM9B,EAAG,GACT+B,EAAM/B,EAAG,GACTgC,EAAMhC,EAAG,GACTiC,EAAMjC,EAAG,GACTkC,EAAMlC,EAAG,GACTmC,EAAMnC,EAAG,GACToC,EAAMpC,EAAG,GAETluB,EAAM,EACHha,GAAK,KAAK,CACf,IAAK5C,EAAI,EAAGA,EAAI,GAAIA,IAClBiD,EAAI,EAAIjD,EAAI4c,EACZqvB,EAAGjsC,GAAMyL,EAAExI,EAAE,IAAM,GAAOwI,EAAExI,EAAE,IAAM,GAAOwI,EAAExI,EAAE,IAAM,EAAKwI,EAAExI,EAAE,GAC9DipC,EAAGlsC,GAAMyL,EAAExI,EAAE,IAAM,GAAOwI,EAAExI,EAAE,IAAM,GAAOwI,EAAExI,EAAE,IAAM,EAAKwI,EAAExI,EAAE,GAEhE,IAAKjD,EAAI,EAAGA,EAAI,GAAIA,IA+HlB,GA9HA+qC,EAAMoB,EACNnB,EAAMoB,EACNnB,EAAMoB,EACNnB,EAAMoB,EACNnB,EAAMoB,EACNnB,EAAMoB,EACNnB,EAAMoB,EAGNlB,EAAMoB,EACNnB,EAAMoB,EACNnB,EAAMoB,EACNnB,EAAMoB,EACNnB,EAAMoB,EACNnB,EAAMoB,EACNnB,EAAMoB,EAONnqC,EAAQ,OAFRe,EAAIqpC,GAEY3pC,EAAIM,IAAM,GAC1BJ,EAAQ,OAJR2P,EAAIs5B,GAIYnkC,EAAI6K,IAAM,GAM1BtQ,GAAS,OAFTe,GAAMkpC,IAAQ,GAAOR,GAAO,KAAcQ,IAAQ,GAAOR,GAAO,KAAcA,IAAQ,EAAYQ,GAAO,KAExFxpC,GAAKM,IAAM,GAC5BJ,GAAS,OAJT2P,GAAMm5B,IAAQ,GAAOQ,GAAO,KAAcR,IAAQ,GAAOQ,GAAO,KAAcA,IAAQ,EAAYR,GAAO,KAIxFhkC,GAAK6K,IAAM,GAM5BtQ,GAAS,OAFTe,EAAKkpC,EAAMC,GAASD,EAAME,GAET1pC,GAAKM,IAAM,GAC5BJ,GAAS,OAJT2P,EAAKm5B,EAAMC,GAASD,EAAME,GAITlkC,GAAK6K,IAAM,GAM5BtQ,GAAS,OAFTe,EAAIm6B,EAAI,EAAFh+B,EAAI,IAEOuD,GAAKM,IAAM,GAC5BJ,GAAS,OAJT2P,EAAI4qB,EAAI,EAAFh+B,IAIWuI,GAAK6K,IAAM,GAG5BA,EAAI64B,EAAGjsC,EAAE,IAGQuD,IAFjBM,EAAIqoC,EAAGlsC,EAAE,OAEmB,GAC5ByD,GAAS,MAAJ2P,EAAY7K,GAAK6K,IAAM,GAG5B3P,IADAF,IAHAT,GAAS,MAAJe,KAGM,MACA,GAUXf,EAAQ,OAFRe,EAJAmoC,EAAS,MAAJlpC,EAAaS,GAAK,IAMPA,EAAIM,IAAM,GAC1BJ,EAAQ,OAJR2P,EAJA24B,EAAS,MAAJtoC,GAFL8E,GAAK9E,IAAM,KAEY,IAQP8E,EAAI6K,IAAM,GAM1BtQ,GAAS,OAFTe,GAAM8oC,IAAQ,GAAOR,GAAO,IAAcA,IAAQ,EAAYQ,GAAO,KAAmBR,IAAQ,EAAYQ,GAAO,KAElGppC,GAAKM,IAAM,GAC5BJ,GAAS,OAJT2P,GAAM+4B,IAAQ,GAAOQ,GAAO,IAAcA,IAAQ,EAAYR,GAAO,KAAmBQ,IAAQ,EAAYR,GAAO,KAIlG5jC,GAAK6K,IAAM,GAMX7P,IAFjBM,EAAK8oC,EAAMC,EAAQD,EAAME,EAAQD,EAAMC,KAEX,GAC5BppC,GAAS,OAJT2P,EAAK+4B,EAAMC,EAAQD,EAAME,EAAQD,EAAMC,GAItB9jC,GAAK6K,IAAM,GAM5Bk4B,EAAW,OAHX7nC,IADAF,IAHAT,GAAS,MAAJe,KAGM,MACA,KACX0E,GAAK9E,IAAM,KAEgB,GAC3BqoC,EAAW,MAAJhpC,EAAeS,GAAK,GAM3BT,EAAQ,OAFRe,EAAI6nC,GAEYnoC,EAAIM,IAAM,GAC1BJ,EAAQ,OAJR2P,EAAI83B,GAIY3iC,EAAI6K,IAAM,GAKT7P,IAFjBM,EAAImoC,KAEwB,GAC5BvoC,GAAS,OAJT2P,EAAI24B,GAIaxjC,GAAK6K,IAAM,GAS5Bg5B,EAAMrB,EACNsB,EAAMrB,EACNsB,EAAMrB,EACNsB,EANArB,EAAW,OAHXznC,IADAF,IAHAT,GAAS,MAAJe,KAGM,MACA,KACX0E,GAAK9E,IAAM,KAEgB,GAO3B+oC,EAAMrB,EACNsB,EAAMrB,EACNsB,EAAMrB,EACNc,EAAMb,EAENsB,EAAMrB,EACNsB,EAAMrB,EACNsB,EAAMrB,EACNsB,EAdArB,EAAW,MAAJ5oC,EAAeS,GAAK,GAe3BypC,EAAMrB,EACNsB,EAAMrB,EACNsB,EAAMrB,EACNc,EAAMb,EAEF9rC,EAAE,IAAO,GACX,IAAKiD,EAAI,EAAGA,EAAI,GAAIA,IAElBmQ,EAAI64B,EAAGhpC,GAGPH,EAAQ,OAFRe,EAAIqoC,EAAGjpC,IAESM,EAAIM,IAAM,GAC1BJ,EAAQ,MAAJ2P,EAAY7K,EAAI6K,IAAM,GAE1BA,EAAI64B,GAAIhpC,EAAE,GAAG,IAGbH,GAAS,OAFTe,EAAIqoC,GAAIjpC,EAAE,GAAG,KAEIM,GAAKM,IAAM,GAC5BJ,GAAS,MAAJ2P,EAAY7K,GAAK6K,IAAM,GAG5B24B,EAAKE,GAAIhpC,EAAE,GAAG,IAKdH,GAAS,OAFTe,IAFAmoC,EAAKE,GAAIjpC,EAAE,GAAG,OAED,EAAM8oC,GAAM,KAAaC,IAAO,EAAMD,GAAM,KAAaC,IAAO,EAAMD,GAAM,KAExExoC,GAAKM,IAAM,GAC5BJ,GAAS,OAJT2P,GAAM24B,IAAO,EAAMC,GAAM,KAAaD,IAAO,EAAMC,GAAM,IAAYD,IAAO,GAI3DxjC,GAAK6K,IAAM,GAG5B24B,EAAKE,GAAIhpC,EAAE,IAAI,IAKEM,IAFjBM,IAFAmoC,EAAKE,GAAIjpC,EAAE,IAAI,OAEF,GAAO8oC,GAAM,KAAcA,IAAO,GAAYC,GAAM,IAAmBA,IAAO,EAAMD,GAAM,OAE3E,GAC5BtoC,GAAS,OAJT2P,GAAM24B,IAAO,GAAOC,GAAM,KAAcA,IAAO,GAAYD,GAAM,GAAkBA,IAAO,GAIzExjC,GAAK6K,IAAM,GAI5B7K,IADA9E,IADAF,IAHAT,GAAS,MAAJe,KAGM,MACA,MACA,GAEXooC,EAAGhpC,GAAU,MAAJQ,EAAe8E,GAAK,GAC7B2jC,EAAGjpC,GAAU,MAAJH,EAAeS,GAAK,GASnCT,EAAQ,OAFRe,EAAI8oC,GAEYppC,EAAIM,IAAM,GAC1BJ,EAAQ,OAJR2P,EAAI+4B,GAIY5jC,EAAI6K,IAAM,GAE1BA,EAAIy3B,EAAG,GAGUtnC,IAFjBM,EAAIinC,EAAG,MAEqB,GAC5BrnC,GAAS,MAAJ2P,EAAY7K,GAAK6K,IAAM,GAI5B7K,IADA9E,IADAF,IAHAT,GAAS,MAAJe,KAGM,MACA,MACA,GAEXgnC,EAAG,GAAKsB,EAAW,MAAJ1oC,EAAe8E,GAAK,GACnCuiC,EAAG,GAAK6B,EAAW,MAAJ7pC,EAAeS,GAAK,GAKnCT,EAAQ,OAFRe,EAAI+oC,GAEYrpC,EAAIM,IAAM,GAC1BJ,EAAQ,OAJR2P,EAAIg5B,GAIY7jC,EAAI6K,IAAM,GAE1BA,EAAIy3B,EAAG,GAGUtnC,IAFjBM,EAAIinC,EAAG,MAEqB,GAC5BrnC,GAAS,MAAJ2P,EAAY7K,GAAK6K,IAAM,GAI5B7K,IADA9E,IADAF,IAHAT,GAAS,MAAJe,KAGM,MACA,MACA,GAEXgnC,EAAG,GAAKuB,EAAW,MAAJ3oC,EAAe8E,GAAK,GACnCuiC,EAAG,GAAK8B,EAAW,MAAJ9pC,EAAeS,GAAK,GAKnCT,EAAQ,OAFRe,EAAIgpC,GAEYtpC,EAAIM,IAAM,GAC1BJ,EAAQ,OAJR2P,EAAIi5B,GAIY9jC,EAAI6K,IAAM,GAE1BA,EAAIy3B,EAAG,GAGUtnC,IAFjBM,EAAIinC,EAAG,MAEqB,GAC5BrnC,GAAS,MAAJ2P,EAAY7K,GAAK6K,IAAM,GAI5B7K,IADA9E,IADAF,IAHAT,GAAS,MAAJe,KAGM,MACA,MACA,GAEXgnC,EAAG,GAAKwB,EAAW,MAAJ5oC,EAAe8E,GAAK,GACnCuiC,EAAG,GAAK+B,EAAW,MAAJ/pC,EAAeS,GAAK,GAKnCT,EAAQ,OAFRe,EAAIipC,GAEYvpC,EAAIM,IAAM,GAC1BJ,EAAQ,OAJR2P,EAAIk5B,GAIY/jC,EAAI6K,IAAM,GAE1BA,EAAIy3B,EAAG,GAGUtnC,IAFjBM,EAAIinC,EAAG,MAEqB,GAC5BrnC,GAAS,MAAJ2P,EAAY7K,GAAK6K,IAAM,GAI5B7K,IADA9E,IADAF,IAHAT,GAAS,MAAJe,KAGM,MACA,MACA,GAEXgnC,EAAG,GAAKyB,EAAW,MAAJ7oC,EAAe8E,GAAK,GACnCuiC,EAAG,GAAKgC,EAAW,MAAJhqC,EAAeS,GAAK,GAKnCT,EAAQ,OAFRe,EAAIkpC,GAEYxpC,EAAIM,IAAM,GAC1BJ,EAAQ,OAJR2P,EAAIm5B,GAIYhkC,EAAI6K,IAAM,GAE1BA,EAAIy3B,EAAG,GAGUtnC,IAFjBM,EAAIinC,EAAG,MAEqB,GAC5BrnC,GAAS,MAAJ2P,EAAY7K,GAAK6K,IAAM,GAI5B7K,IADA9E,IADAF,IAHAT,GAAS,MAAJe,KAGM,MACA,MACA,GAEXgnC,EAAG,GAAK0B,EAAW,MAAJ9oC,EAAe8E,GAAK,GACnCuiC,EAAG,GAAKiC,EAAW,MAAJjqC,EAAeS,GAAK,GAKnCT,EAAQ,OAFRe,EAAImpC,GAEYzpC,EAAIM,IAAM,GAC1BJ,EAAQ,OAJR2P,EAAIo5B,GAIYjkC,EAAI6K,IAAM,GAE1BA,EAAIy3B,EAAG,GAGUtnC,IAFjBM,EAAIinC,EAAG,MAEqB,GAC5BrnC,GAAS,MAAJ2P,EAAY7K,GAAK6K,IAAM,GAI5B7K,IADA9E,IADAF,IAHAT,GAAS,MAAJe,KAGM,MACA,MACA,GAEXgnC,EAAG,GAAK2B,EAAW,MAAJ/oC,EAAe8E,GAAK,GACnCuiC,EAAG,GAAKkC,EAAW,MAAJlqC,EAAeS,GAAK,GAKnCT,EAAQ,OAFRe,EAAIopC,GAEY1pC,EAAIM,IAAM,GAC1BJ,EAAQ,OAJR2P,EAAIq5B,GAIYlkC,EAAI6K,IAAM,GAE1BA,EAAIy3B,EAAG,GAGUtnC,IAFjBM,EAAIinC,EAAG,MAEqB,GAC5BrnC,GAAS,MAAJ2P,EAAY7K,GAAK6K,IAAM,GAI5B7K,IADA9E,IADAF,IAHAT,GAAS,MAAJe,KAGM,MACA,MACA,GAEXgnC,EAAG,GAAK4B,EAAW,MAAJhpC,EAAe8E,GAAK,GACnCuiC,EAAG,GAAKmC,EAAW,MAAJnqC,EAAeS,GAAK,GAKnCT,EAAQ,OAFRe,EAAIqpC,GAEY3pC,EAAIM,IAAM,GAC1BJ,EAAQ,OAJR2P,EAAIs5B,GAIYnkC,EAAI6K,IAAM,GAE1BA,EAAIy3B,EAAG,GAGUtnC,IAFjBM,EAAIinC,EAAG,MAEqB,GAC5BrnC,GAAS,MAAJ2P,EAAY7K,GAAK6K,IAAM,GAI5B7K,IADA9E,IADAF,IAHAT,GAAS,MAAJe,KAGM,MACA,MACA,GAEXgnC,EAAG,GAAK6B,EAAW,MAAJjpC,EAAe8E,GAAK,GACnCuiC,EAAG,GAAKoC,EAAW,MAAJpqC,EAAeS,GAAK,GAEnCqZ,GAAO,IACPha,GAAK,GACP,CAEA,OAAOA,CACT,CAEA,SAASuqC,EAAYxkC,EAAK8C,EAAG7I,GAC3B,IAGI5C,EAHA6qC,EAAK,IAAI/Z,WAAW,GACpBga,EAAK,IAAIha,WAAW,GACpBztB,EAAI,IAAIlC,WAAW,KAChBoC,EAAIX,EAuBX,IArBAioC,EAAG,GAAK,WACRA,EAAG,GAAK,WACRA,EAAG,GAAK,WACRA,EAAG,GAAK,WACRA,EAAG,GAAK,WACRA,EAAG,GAAK,WACRA,EAAG,GAAK,UACRA,EAAG,GAAK,WAERC,EAAG,GAAK,WACRA,EAAG,GAAK,WACRA,EAAG,GAAK,WACRA,EAAG,GAAK,WACRA,EAAG,GAAK,WACRA,EAAG,GAAK,UACRA,EAAG,GAAK,WACRA,EAAG,GAAK,UAERF,EAAqBC,EAAIC,EAAIr/B,EAAG7I,GAChCA,GAAK,IAEA5C,EAAI,EAAGA,EAAI4C,EAAG5C,IAAKqD,EAAErD,GAAKyL,EAAElI,EAAEX,EAAE5C,GAQrC,IAPAqD,EAAET,GAAK,IAGPS,GADAT,EAAI,IAAI,KAAKA,EAAE,IAAI,EAAE,IACjB,GAAK,EACTk+B,EAAKz9B,EAAGT,EAAE,EAAKW,EAAI,UAAc,EAAGA,GAAK,GACzCqnC,EAAqBC,EAAIC,EAAIznC,EAAGT,GAE3B5C,EAAI,EAAGA,EAAI,EAAGA,IAAK8gC,EAAKn4B,EAAK,EAAE3I,EAAG6qC,EAAG7qC,GAAI8qC,EAAG9qC,IAEjD,OAAO,CACT,CAEA,SAASotC,EAAI3jC,EAAG8C,GACd,IAAIzJ,EAAIo9B,IAAM38B,EAAI28B,IAAMz8B,EAAIy8B,IACxB33B,EAAI23B,IAAMt8B,EAAIs8B,IAAMnJ,EAAImJ,IACxBlB,EAAIkB,IAAM9sB,EAAI8sB,IAAM7wB,EAAI6wB,IAE5BwF,EAAE5iC,EAAG2G,EAAE,GAAIA,EAAE,IACbi8B,EAAEr2B,EAAG9C,EAAE,GAAIA,EAAE,IACb2I,EAAEpS,EAAGA,EAAGuM,GACRo2B,EAAEliC,EAAGkG,EAAE,GAAIA,EAAE,IACbg8B,EAAEp2B,EAAG9C,EAAE,GAAIA,EAAE,IACb2I,EAAE3R,EAAGA,EAAG8L,GACR6F,EAAEzR,EAAGgG,EAAE,GAAI8C,EAAE,IACb2I,EAAEzR,EAAGA,EAAGi9B,GACRxrB,EAAE3M,EAAGkB,EAAE,GAAI8C,EAAE,IACbk5B,EAAEl9B,EAAGA,EAAGA,GACRm9B,EAAE9hC,EAAGL,EAAGT,GACR4iC,EAAE3O,EAAGxuB,EAAG9E,GACRgiC,EAAEzG,EAAGz2B,EAAG9E,GACRgiC,EAAEryB,EAAG7P,EAAGT,GAERoS,EAAEzL,EAAE,GAAI7F,EAAGmzB,GACX7hB,EAAEzL,EAAE,GAAI2J,EAAG4rB,GACX9pB,EAAEzL,EAAE,GAAIu1B,EAAGjI,GACX7hB,EAAEzL,EAAE,GAAI7F,EAAGwP,EACb,CAEA,SAASi6B,EAAM5jC,EAAG8C,EAAGhJ,GACnB,IAAIvD,EACJ,IAAKA,EAAI,EAAGA,EAAI,EAAGA,IACjBolC,EAAS37B,EAAEzJ,GAAIuM,EAAEvM,GAAIuD,EAEzB,CAEA,SAAS+pC,GAAKpqC,EAAGuG,GACf,IAAI8jC,EAAKrN,IAAMsN,EAAKtN,IAAMuN,EAAKvN,IAC/B+H,EAASwF,EAAIhkC,EAAE,IACfyL,EAAEq4B,EAAI9jC,EAAE,GAAIgkC,GACZv4B,EAAEs4B,EAAI/jC,EAAE,GAAIgkC,GACZpI,EAAUniC,EAAGsqC,GACbtqC,EAAE,KAAOqiC,EAASgI,IAAO,CAC3B,CAEA,SAASG,GAAWjkC,EAAG8C,EAAGxJ,GACxB,IAAIQ,EAAGvD,EAKP,IAJAklC,EAASz7B,EAAE,GAAI62B,GACf4E,EAASz7B,EAAE,GAAI82B,GACf2E,EAASz7B,EAAE,GAAI82B,GACf2E,EAASz7B,EAAE,GAAI62B,GACVtgC,EAAI,IAAKA,GAAK,IAAKA,EAEtBqtC,EAAM5jC,EAAG8C,EADThJ,EAAKR,EAAG/C,EAAE,EAAG,KAAS,EAAFA,GAAQ,GAE5BotC,EAAI7gC,EAAG9C,GACP2jC,EAAI3jC,EAAGA,GACP4jC,EAAM5jC,EAAG8C,EAAGhJ,EAEhB,CAEA,SAASoqC,GAAWlkC,EAAG1G,GACrB,IAAIwJ,EAAI,CAAC2zB,IAAMA,IAAMA,IAAMA,KAC3BgF,EAAS34B,EAAE,GAAIo0B,GACfuE,EAAS34B,EAAE,GAAIq0B,GACfsE,EAAS34B,EAAE,GAAIg0B,GACfrrB,EAAE3I,EAAE,GAAIo0B,EAAGC,GACX8M,GAAWjkC,EAAG8C,EAAGxJ,EACnB,CAEA,SAAS6qC,GAAoBC,EAAIC,EAAIC,GACnC,IAEI/tC,EAFAuI,EAAI,IAAIpH,WAAW,IACnBsI,EAAI,CAACy2B,IAAMA,IAAMA,IAAMA,KAY3B,IATK6N,GAAQ5N,EAAY2N,EAAI,IAC7BX,EAAY5kC,EAAGulC,EAAI,IACnBvlC,EAAE,IAAM,IACRA,EAAE,KAAO,IACTA,EAAE,KAAO,GAETolC,GAAWlkC,EAAGlB,GACd+kC,GAAKO,EAAIpkC,GAEJzJ,EAAI,EAAGA,EAAI,GAAIA,IAAK8tC,EAAG9tC,EAAE,IAAM6tC,EAAG7tC,GACvC,OAAO,CACT,CAEA,IAAIguC,GAAI,IAAItd,aAAa,CAAC,IAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,KAEvK,SAASud,GAAK/qC,EAAGG,GACf,IAAIwI,EAAO7L,EAAGiD,EAAGU,EACjB,IAAK3D,EAAI,GAAIA,GAAK,KAAMA,EAAG,CAEzB,IADA6L,EAAQ,EACH5I,EAAIjD,EAAI,GAAI2D,EAAI3D,EAAI,GAAIiD,EAAIU,IAAKV,EACpCI,EAAEJ,IAAM4I,EAAQ,GAAKxI,EAAErD,GAAKguC,GAAE/qC,GAAKjD,EAAI,KACvC6L,EAAQ9J,KAAKG,OAAOmB,EAAEJ,GAAK,KAAO,KAClCI,EAAEJ,IAAc,IAAR4I,EAEVxI,EAAEJ,IAAM4I,EACRxI,EAAErD,GAAK,CACT,CAEA,IADA6L,EAAQ,EACH5I,EAAI,EAAGA,EAAI,GAAIA,IAClBI,EAAEJ,IAAM4I,GAASxI,EAAE,KAAO,GAAK2qC,GAAE/qC,GACjC4I,EAAQxI,EAAEJ,IAAM,EAChBI,EAAEJ,IAAM,IAEV,IAAKA,EAAI,EAAGA,EAAI,GAAIA,IAAKI,EAAEJ,IAAM4I,EAAQmiC,GAAE/qC,GAC3C,IAAKjD,EAAI,EAAGA,EAAI,GAAIA,IAClBqD,EAAErD,EAAE,IAAMqD,EAAErD,IAAM,EAClBkD,EAAElD,GAAY,IAAPqD,EAAErD,EAEb,CAEA,SAAS+lB,GAAO7iB,GACd,IAA8BlD,EAA1BqD,EAAI,IAAIqtB,aAAa,IACzB,IAAK1wB,EAAI,EAAGA,EAAI,GAAIA,IAAKqD,EAAErD,GAAKkD,EAAElD,GAClC,IAAKA,EAAI,EAAGA,EAAI,GAAIA,IAAKkD,EAAElD,GAAK,EAChCiuC,GAAK/qC,EAAGG,EACV,CAGA,SAAS6qC,GAAYC,EAAI1iC,EAAG7I,EAAGkrC,GAC7B,IACI9tC,EAAGiD,EADHsF,EAAI,IAAIpH,WAAW,IAAKiS,EAAI,IAAIjS,WAAW,IAAK+B,EAAI,IAAI/B,WAAW,IAC7DkC,EAAI,IAAIqtB,aAAa,IAC3BjnB,EAAI,CAACy2B,IAAMA,IAAMA,IAAMA,KAE3BiN,EAAY5kC,EAAGulC,EAAI,IACnBvlC,EAAE,IAAM,IACRA,EAAE,KAAO,IACTA,EAAE,KAAO,GAET,IAAI6lC,EAAQxrC,EAAI,GAChB,IAAK5C,EAAI,EAAGA,EAAI4C,EAAG5C,IAAKmuC,EAAG,GAAKnuC,GAAKyL,EAAEzL,GACvC,IAAKA,EAAI,EAAGA,EAAI,GAAIA,IAAKmuC,EAAG,GAAKnuC,GAAKuI,EAAE,GAAKvI,GAO7C,IALAmtC,EAAYjqC,EAAGirC,EAAG1vB,SAAS,IAAK7b,EAAE,IAClCmjB,GAAO7iB,GACPyqC,GAAWlkC,EAAGvG,GACdoqC,GAAKa,EAAI1kC,GAEJzJ,EAAI,GAAIA,EAAI,GAAIA,IAAKmuC,EAAGnuC,GAAK8tC,EAAG9tC,GAIrC,IAHAmtC,EAAY/5B,EAAG+6B,EAAIvrC,EAAI,IACvBmjB,GAAO3S,GAEFpT,EAAI,EAAGA,EAAI,GAAIA,IAAKqD,EAAErD,GAAK,EAChC,IAAKA,EAAI,EAAGA,EAAI,GAAIA,IAAKqD,EAAErD,GAAKkD,EAAElD,GAClC,IAAKA,EAAI,EAAGA,EAAI,GAAIA,IAClB,IAAKiD,EAAI,EAAGA,EAAI,GAAIA,IAClBI,EAAErD,EAAEiD,IAAMmQ,EAAEpT,GAAKuI,EAAEtF,GAKvB,OADAgrC,GAAKE,EAAG1vB,SAAS,IAAKpb,GACf+qC,CACT,CAwCA,SAASC,GAAiB5iC,EAAG0iC,EAAIvrC,EAAGirC,GAClC,IAAI7tC,EACAqP,EAAI,IAAIlO,WAAW,IAAKiS,EAAI,IAAIjS,WAAW,IAC3CsI,EAAI,CAACy2B,IAAMA,IAAMA,IAAMA,KACvB3zB,EAAI,CAAC2zB,IAAMA,IAAMA,IAAMA,KAE3B,GAAIt9B,EAAI,GAAI,OAAQ,EAEpB,GA9CF,SAAmBM,EAAGuG,GACpB,IAAI4F,EAAI6wB,IAAMoO,EAAMpO,IAAMx+B,EAAMw+B,IAC5BqO,EAAMrO,IAAMsO,EAAOtO,IAAMuO,EAAOvO,IAChCwO,EAAOxO,IA2BX,OAzBAgF,EAAShiC,EAAE,GAAIq9B,GACfiF,EAAYtiC,EAAE,GAAIuG,GAClBu+B,EAAEtmC,EAAKwB,EAAE,IACTgS,EAAEq5B,EAAK7sC,EAAK++B,GACZiF,EAAEhkC,EAAKA,EAAKwB,EAAE,IACduiC,EAAE8I,EAAKrrC,EAAE,GAAIqrC,GAEbvG,EAAEwG,EAAMD,GACRvG,EAAEyG,EAAMD,GACRt5B,EAAEw5B,EAAMD,EAAMD,GACdt5B,EAAE7F,EAAGq/B,EAAMhtC,GACXwT,EAAE7F,EAAGA,EAAGk/B,GAERrG,EAAQ74B,EAAGA,GACX6F,EAAE7F,EAAGA,EAAG3N,GACRwT,EAAE7F,EAAGA,EAAGk/B,GACRr5B,EAAE7F,EAAGA,EAAGk/B,GACRr5B,EAAEhS,EAAE,GAAImM,EAAGk/B,GAEXvG,EAAEsG,EAAKprC,EAAE,IACTgS,EAAEo5B,EAAKA,EAAKC,GACRjJ,EAASgJ,EAAK5sC,IAAMwT,EAAEhS,EAAE,GAAIA,EAAE,GAAI29B,GAEtCmH,EAAEsG,EAAKprC,EAAE,IACTgS,EAAEo5B,EAAKA,EAAKC,GACRjJ,EAASgJ,EAAK5sC,IAAc,GAE5B6jC,EAASriC,EAAE,MAASuG,EAAE,KAAK,GAAIi8B,EAAExiC,EAAE,GAAIo9B,EAAKp9B,EAAE,IAElDgS,EAAEhS,EAAE,GAAIA,EAAE,GAAIA,EAAE,IACT,EACT,CAUMyrC,CAAUpiC,EAAGshC,GAAK,OAAQ,EAE9B,IAAK7tC,EAAI,EAAGA,EAAI4C,EAAG5C,IAAKyL,EAAEzL,GAAKmuC,EAAGnuC,GAClC,IAAKA,EAAI,EAAGA,EAAI,GAAIA,IAAKyL,EAAEzL,EAAE,IAAM6tC,EAAG7tC,GAUtC,GATAmtC,EAAY/5B,EAAG3H,EAAG7I,GAClBmjB,GAAO3S,GACPs6B,GAAWjkC,EAAG8C,EAAG6G,GAEjBu6B,GAAWphC,EAAG4hC,EAAG1vB,SAAS,KAC1B2uB,EAAI3jC,EAAG8C,GACP+gC,GAAKj+B,EAAG5F,GAER7G,GAAK,GACDs+B,EAAiBiN,EAAI,EAAG9+B,EAAG,GAAI,CACjC,IAAKrP,EAAI,EAAGA,EAAI4C,EAAG5C,IAAKyL,EAAEzL,GAAK,EAC/B,OAAQ,CACV,CAEA,IAAKA,EAAI,EAAGA,EAAI4C,EAAG5C,IAAKyL,EAAEzL,GAAKmuC,EAAGnuC,EAAI,IACtC,OAAO4C,CACT,CAEA,IAYIgsC,GAAoB,GACpBC,GAA6B,GAC7BC,GAA6B,GAiEjC,SAASC,GAAaprC,EAAGf,GACvB,GAhF8B,KAgF1Be,EAAEjD,OAAsC,MAAM,IAAIY,MAAM,gBAC5D,GAhFgC,KAgF5BsB,EAAElC,OAAwC,MAAM,IAAIY,MAAM,iBAChE,CAOA,SAAS0tC,KACP,IAAK,IAAIhvC,EAAI,EAAGA,EAAImK,UAAUzJ,OAAQV,IACpC,KAAMmK,UAAUnK,aAAcmB,YAC5B,MAAM,IAAIuV,UAAU,kCAE1B,CAEA,SAASu4B,GAAQhvC,GACf,IAAK,IAAID,EAAI,EAAGA,EAAIC,EAAIS,OAAQV,IAAKC,EAAID,GAAK,CAChD,CAhFAy/B,EAAKyP,SAAW,CACd5L,qBAAsBA,EACtBS,kBAAmBA,EACnBF,cAAeA,EACfJ,0BAA2BA,EAC3BG,sBAAuBA,EACvBe,mBAAoBA,EACpBG,0BAA2BA,EAC3B7D,iBAAkBA,EAClBC,iBAAkBA,EAClB8D,iBAAkBA,EAClBC,sBAAuBA,EACvBkD,kBAAmBA,EACnBG,uBAAwBA,EACxBE,oBAAqBA,EACrBkC,mBAAoBA,EACpByE,WAxsBF,SAAoB1rC,EAAGgI,EAAGlD,EAAG3F,EAAGU,EAAGD,GACjC,IAAIM,EAAI,IAAIxC,WAAW,IAEvB,OADAqnC,EAAoB7kC,EAAGL,EAAGD,GACnBqnC,EAAmBjnC,EAAGgI,EAAGlD,EAAG3F,EAAGe,EACxC,EAqsBEyrC,gBAnsBF,SAAyB3jC,EAAGhI,EAAG8E,EAAG3F,EAAGU,EAAGD,GACtC,IAAIM,EAAI,IAAIxC,WAAW,IAEvB,OADAqnC,EAAoB7kC,EAAGL,EAAGD,GACnBsnC,EAAwBl/B,EAAGhI,EAAG8E,EAAG3F,EAAGe,EAC7C,EAgsBE4kC,mBAAoBA,EACpB4E,YAAaA,EACbe,YAAaA,GACbN,oBAAqBA,GACrBS,iBAAkBA,GAElBgB,0BA1C8B,GA2C9BC,4BA1CgC,GA2ChCC,2BA1C+B,GA2C/BC,8BA1CkC,GA2ClCC,wBA1C4B,GA2C5BC,8BA1CkC,GA2ClCC,0BA1C8B,GA2C9BC,0BA1C8B,GA2C9BC,yBA1C6B,GA2C7BC,sBAlDgC,GAmDhCC,qBAlD+B,GAmD/BC,wBA1C4BR,GA2C5BZ,kBAAmBA,GACnBC,2BAA4BA,GAC5BC,2BAA4BA,GAC5BmB,sBA1C0B,GA2C1BC,kBA1CsB,GA4CtBhQ,GAAIA,EACJO,EAAGA,EACHuN,EAAGA,GACH3I,UAAWA,EACXG,YAAaA,EACbtwB,EAAGA,EACHuwB,EAAGA,EACHuC,EAAGA,EACHtC,EAAGA,EACHwC,QAASA,EACTkF,IAAKA,EACLlI,SAAUA,EACV+I,KAAMA,GACNP,WAAYA,GACZC,WAAYA,IA0BdlO,EAAK51B,YAAc,SAASjH,GAC1B,IAAIW,EAAI,IAAIpC,WAAWyB,GAEvB,OADAu9B,EAAY58B,EAAGX,GACRW,CACT,EAEAk8B,EAAK0Q,UAAY,SAASv7B,EAAKw7B,EAAO58B,GACpCw7B,GAAgBp6B,EAAKw7B,EAAO58B,GAC5Bu7B,GAAav7B,EAAK48B,GAGlB,IAFA,IAAI3kC,EAAI,IAAItK,WA3GmB,GA2GqByT,EAAIlU,QACpD+C,EAAI,IAAItC,WAAWsK,EAAE/K,QAChBV,EAAI,EAAGA,EAAI4U,EAAIlU,OAAQV,IAAKyL,EAAEzL,EA7GR,IA6GwC4U,EAAI5U,GAE3E,OADAglC,EAAiBvhC,EAAGgI,EAAGA,EAAE/K,OAAQ0vC,EAAO58B,GACjC/P,EAAEgb,SA9GyB,GA+GpC,EAEAghB,EAAK0Q,UAAUE,KAAO,SAASC,EAAKF,EAAO58B,GACzCw7B,GAAgBsB,EAAKF,EAAO58B,GAC5Bu7B,GAAav7B,EAAK48B,GAGlB,IAFA,IAAI3sC,EAAI,IAAItC,WApHsB,GAoHqBmvC,EAAI5vC,QACvD+K,EAAI,IAAItK,WAAWsC,EAAE/C,QAChBV,EAAI,EAAGA,EAAIswC,EAAI5vC,OAAQV,IAAKyD,EAAEzD,EAtHL,IAsHwCswC,EAAItwC,GAC9E,OAAIyD,EAAE/C,OAAS,IAC2C,IAAtDukC,EAAsBx5B,EAAGhI,EAAGA,EAAE/C,OAAQ0vC,EAAO58B,GADvB,KAEnB/H,EAAEgT,SA1HsB,GA2HjC,EAEAghB,EAAK0Q,UAAUlQ,UA/HiB,GAgIhCR,EAAK0Q,UAAUI,YA/HmB,GAgIlC9Q,EAAK0Q,UAAUK,eA9HqB,GAgIpC/Q,EAAKgR,WAAa,SAAS7tC,EAAG6G,GAE5B,GADAulC,GAAgBpsC,EAAG6G,GA/He,KAgI9B7G,EAAElC,OAA0C,MAAM,IAAIY,MAAM,cAChE,GAlI4B,KAkIxBmI,EAAE/I,OAAoC,MAAM,IAAIY,MAAM,cAC1D,IAAIiL,EAAI,IAAIpL,WAnIgB,IAqI5B,OADAgnC,EAAkB57B,EAAG3J,EAAG6G,GACjB8C,CACT,EAEAkzB,EAAKgR,WAAWjlC,KAAO,SAAS5I,GAE9B,GADAosC,GAAgBpsC,GAxIkB,KAyI9BA,EAAElC,OAA0C,MAAM,IAAIY,MAAM,cAChE,IAAIiL,EAAI,IAAIpL,WA3IgB,IA6I5B,OADAmnC,EAAuB/7B,EAAG3J,GACnB2J,CACT,EAEAkzB,EAAKgR,WAAWC,aA/IoB,GAgJpCjR,EAAKgR,WAAWE,mBAjJc,GAmJ9BlR,EAAK6Q,IAAM,SAAS17B,EAAKw7B,EAAOQ,EAAWC,GACzC,IAAIltC,EAAI87B,EAAK6Q,IAAIQ,OAAOF,EAAWC,GACnC,OAAOpR,EAAK0Q,UAAUv7B,EAAKw7B,EAAOzsC,EACpC,EAEA87B,EAAK6Q,IAAIQ,OAAS,SAASF,EAAWC,GACpC7B,GAAgB4B,EAAWC,GAzE7B,SAAyBhD,EAAIC,GAC3B,GA/E8B,KA+E1BD,EAAGntC,OAAsC,MAAM,IAAIY,MAAM,uBAC7D,GA/E8B,KA+E1BwsC,EAAGptC,OAAsC,MAAM,IAAIY,MAAM,sBAC/D,CAuEEyvC,CAAgBH,EAAWC,GAC3B,IAAIltC,EAAI,IAAIxC,WAvJiB,IAyJ7B,OADAqnC,EAAoB7kC,EAAGitC,EAAWC,GAC3BltC,CACT,EAEA87B,EAAK6Q,IAAIU,MAAQvR,EAAK0Q,UAEtB1Q,EAAK6Q,IAAID,KAAO,SAASz7B,EAAKw7B,EAAOQ,EAAWC,GAC9C,IAAIltC,EAAI87B,EAAK6Q,IAAIQ,OAAOF,EAAWC,GACnC,OAAOpR,EAAK0Q,UAAUE,KAAKz7B,EAAKw7B,EAAOzsC,EACzC,EAEA87B,EAAK6Q,IAAID,KAAKW,MAAQvR,EAAK0Q,UAAUE,KAErC5Q,EAAK6Q,IAAIW,QAAU,WACjB,IAAIpD,EAAK,IAAI1sC,WAxKiB,IAyK1B2sC,EAAK,IAAI3sC,WAxKiB,IA0K9B,OADAonC,EAAmBsF,EAAIC,GAChB,CAAC8C,UAAW/C,EAAIgD,UAAW/C,EACpC,EAEArO,EAAK6Q,IAAIW,QAAQC,cAAgB,SAASL,GAExC,GADA7B,GAAgB6B,GA9Kc,KA+K1BA,EAAUnwC,OACZ,MAAM,IAAIY,MAAM,uBAClB,IAAIusC,EAAK,IAAI1sC,WAlLiB,IAoL9B,OADAmnC,EAAuBuF,EAAIgD,GACpB,CAACD,UAAW/C,EAAIgD,UAAW,IAAI1vC,WAAW0vC,GACnD,EAEApR,EAAK6Q,IAAIa,gBAvLuB,GAwLhC1R,EAAK6Q,IAAIc,gBAvLuB,GAwLhC3R,EAAK6Q,IAAIe,gBAvLsB,GAwL/B5R,EAAK6Q,IAAIC,YA/LyB,GAgMlC9Q,EAAK6Q,IAAIE,eAAiB/Q,EAAK0Q,UAAUK,eAEzC/Q,EAAKt0B,KAAO,SAASyJ,EAAKi8B,GAExB,GADA7B,GAAgBp6B,EAAKi8B,GACjBA,EAAUnwC,SAAWouC,GACvB,MAAM,IAAIxtC,MAAM,uBAClB,IAAIgwC,EAAY,IAAInwC,WAAWytC,GAAkBh6B,EAAIlU,QAErD,OADAwtC,GAAYoD,EAAW18B,EAAKA,EAAIlU,OAAQmwC,GACjCS,CACT,EAEA7R,EAAKt0B,KAAKklC,KAAO,SAASiB,EAAWV,GAEnC,GADA5B,GAAgBsC,EAAWV,GACvBA,EAAUlwC,SAAWmuC,GACvB,MAAM,IAAIvtC,MAAM,uBAClB,IAAIvB,EAAM,IAAIoB,WAAWmwC,EAAU5wC,QAC/B6wC,EAAOlD,GAAiBtuC,EAAKuxC,EAAWA,EAAU5wC,OAAQkwC,GAC9D,GAAIW,EAAO,EAAG,OAAO,KAErB,IADA,IAAI9lC,EAAI,IAAItK,WAAWowC,GACdvxC,EAAI,EAAGA,EAAIyL,EAAE/K,OAAQV,IAAKyL,EAAEzL,GAAKD,EAAIC,GAC9C,OAAOyL,CACT,EAEAg0B,EAAKt0B,KAAKqmC,SAAW,SAAS58B,EAAKi8B,GAGjC,IAFA,IAAIS,EAAY7R,EAAKt0B,KAAKyJ,EAAKi8B,GAC3BY,EAAM,IAAItwC,WAAWytC,IAChB5uC,EAAI,EAAGA,EAAIyxC,EAAI/wC,OAAQV,IAAKyxC,EAAIzxC,GAAKsxC,EAAUtxC,GACxD,OAAOyxC,CACT,EAEAhS,EAAKt0B,KAAKqmC,SAASE,OAAS,SAAS98B,EAAK68B,EAAKb,GAE7C,GADA5B,GAAgBp6B,EAAK68B,EAAKb,GACtBa,EAAI/wC,SAAWkuC,GACjB,MAAM,IAAIttC,MAAM,sBAClB,GAAIsvC,EAAUlwC,SAAWmuC,GACvB,MAAM,IAAIvtC,MAAM,uBAClB,IAEItB,EAFAmuC,EAAK,IAAIhtC,WAAWytC,GAAoBh6B,EAAIlU,QAC5C+K,EAAI,IAAItK,WAAWytC,GAAoBh6B,EAAIlU,QAE/C,IAAKV,EAAI,EAAGA,EAAI4uC,GAAmB5uC,IAAKmuC,EAAGnuC,GAAKyxC,EAAIzxC,GACpD,IAAKA,EAAI,EAAGA,EAAI4U,EAAIlU,OAAQV,IAAKmuC,EAAGnuC,EAAE4uC,IAAqBh6B,EAAI5U,GAC/D,OAAQquC,GAAiB5iC,EAAG0iC,EAAIA,EAAGztC,OAAQkwC,IAAc,CAC3D,EAEAnR,EAAKt0B,KAAK8lC,QAAU,WAClB,IAAIpD,EAAK,IAAI1sC,WAAW0tC,IACpBf,EAAK,IAAI3sC,WAAW2tC,IAExB,OADAlB,GAAoBC,EAAIC,GACjB,CAAC8C,UAAW/C,EAAIgD,UAAW/C,EACpC,EAEArO,EAAKt0B,KAAK8lC,QAAQC,cAAgB,SAASL,GAEzC,GADA7B,GAAgB6B,GACZA,EAAUnwC,SAAWouC,GACvB,MAAM,IAAIxtC,MAAM,uBAElB,IADA,IAAIusC,EAAK,IAAI1sC,WAAW0tC,IACf7uC,EAAI,EAAGA,EAAI6tC,EAAGntC,OAAQV,IAAK6tC,EAAG7tC,GAAK6wC,EAAU,GAAG7wC,GACzD,MAAO,CAAC4wC,UAAW/C,EAAIgD,UAAW,IAAI1vC,WAAW0vC,GACnD,EAEApR,EAAKt0B,KAAK8lC,QAAQU,SAAW,SAASC,GAEpC,GADA5C,GAAgB4C,GA/OU,KAgPtBA,EAAKlxC,OACP,MAAM,IAAIY,MAAM,iBAGlB,IAFA,IAAIusC,EAAK,IAAI1sC,WAAW0tC,IACpBf,EAAK,IAAI3sC,WAAW2tC,IACf9uC,EAAI,EAAGA,EAAI,GAAIA,IAAK8tC,EAAG9tC,GAAK4xC,EAAK5xC,GAE1C,OADA4tC,GAAoBC,EAAIC,GAAI,GACrB,CAAC8C,UAAW/C,EAAIgD,UAAW/C,EACpC,EAEArO,EAAKt0B,KAAKgmC,gBAAkBtC,GAC5BpP,EAAKt0B,KAAKimC,gBAAkBtC,GAC5BrP,EAAKt0B,KAAK0mC,WA3PkB,GA4P5BpS,EAAKt0B,KAAK2mC,gBAAkBlD,GAE5BnP,EAAK5B,KAAO,SAASjpB,GACnBo6B,GAAgBp6B,GAChB,IAAIxB,EAAI,IAAIjS,WA/PU,IAiQtB,OADAgsC,EAAY/5B,EAAGwB,EAAKA,EAAIlU,QACjB0S,CACT,EAEAqsB,EAAK5B,KAAKkU,WApQc,GAsQxBtS,EAAKiS,OAAS,SAASruC,EAAGC,GAGxB,OAFA0rC,GAAgB3rC,EAAGC,GAEF,IAAbD,EAAE3C,QAA6B,IAAb4C,EAAE5C,QACpB2C,EAAE3C,SAAW4C,EAAE5C,QACkB,IAA7BqgC,EAAG19B,EAAG,EAAGC,EAAG,EAAGD,EAAE3C,OAC3B,EAEA++B,EAAKuS,QAAU,SAAS3tB,GACtB8b,EAAc9b,CAChB,EAEA,WAGE,IAAI1a,EAAyB,oBAATpK,KAAwBA,KAAKoK,QAAUpK,KAAK0yC,SAAY,KACxEtoC,GAAUA,EAAOC,gBAGnB61B,EAAKuS,SAAQ,SAAS3uC,EAAGT,GACvB,IAAI5C,EAAG+G,EAAI,IAAI5F,WAAWyB,GAC1B,IAAK5C,EAAI,EAAGA,EAAI4C,EAAG5C,GAHT,MAIR2J,EAAOC,gBAAgB7C,EAAE0X,SAASze,EAAGA,EAAI+B,KAAKgC,IAAInB,EAAI5C,EAJ9C,SAMV,IAAKA,EAAI,EAAGA,EAAI4C,EAAG5C,IAAKqD,EAAErD,GAAK+G,EAAE/G,GACjCivC,GAAQloC,EACV,KAGA4C,EAAS,EAAQ,QACHA,EAAOE,aACnB41B,EAAKuS,SAAQ,SAAS3uC,EAAGT,GACvB,IAAI5C,EAAG+G,EAAI4C,EAAOE,YAAYjH,GAC9B,IAAK5C,EAAI,EAAGA,EAAI4C,EAAG5C,IAAKqD,EAAErD,GAAK+G,EAAE/G,GACjCivC,GAAQloC,EACV,GAGL,CA1BD,EA4BC,CAt1ED,CAs1EoC3H,EAAOD,QAAUC,EAAOD,QAAWI,KAAKkgC,KAAOlgC,KAAKkgC,MAAQ,CAAC,E,oCCp1EjG,IAAI5a,EAAa,EAAQ,MAKrBqtB,EAHY,EAAQ,KAGAC,CAAU,+BAA+B,GAE7DC,EAAe,EAAQ,MAI3BhzC,EAAOD,QAAU+yC,GAAqB,SAA0B7uC,GAC/D,IAAK+uC,EAAa/uC,GACjB,MAAM,IAAIwhB,EAAW,qBAEtB,OAAOxhB,EAAEoU,MACV,C,sBClBA,IAAI46B,EACJ,GAA0B,iBAAf5qB,WACV4qB,EAAc5qB,gBAEd,IACC4qB,EAAc,EAAQ,KACvB,CAAE,MAAOj2B,GACT,CAAE,QAED,GADKi2B,GAAiC,oBAAX7qB,SAA0B6qB,EAAc7qB,SAC9D6qB,EAAe,MAAM,IAAI/wC,MAAM,kCACrC,CAGD,IAAIgxC,EAAkBD,EAAYE,WAAaF,EAAYG,aACvDC,EAAoB,EAAQ,MAMhC,SAASC,EAAaC,EAAKC,GAiB1B,OAdIA,EACe,IAAIN,EAAgBK,EAAKC,GAGzB,IAAIN,EAAgBK,EAWxC,CACIL,GACH,CAAC,aAAc,OAAQ,UAAW,UAAU5a,SAAQ,SAASmb,GAC5Dv8B,OAAO+F,eAAeq2B,EAAcG,EAAM,CACzCt2B,IAAK,WAAa,OAAO+1B,EAAgBO,EAAO,GAElD,IAMDzzC,EAAOD,QAAU,CACb,aAAiBmzC,EAAkBI,EAAe,KAClD,QAAiBD,E,uBCpDrBrzC,EAAOD,QAAU,EAAjB,a,oCCEA,IAAIu4B,EAAU,EAAQ,MAClBob,EAAuB,EAAQ,MAC/BjsB,EAAW,EAAQ,KACnBsrB,EAAY,EAAQ,MACpBrrB,EAAO,EAAQ,MACfyI,EAAW,EAAQ,MAEnBwjB,EAAYZ,EAAU,6BACtB5c,EAAiB,EAAQ,KAAR,GAEjByJ,EAA0B,oBAAfvX,WAA6B,EAAAuX,EAASvX,WACjDurB,EAAcF,IAEdG,EAASd,EAAU,0BAGnB3sB,EAAW2sB,EAAU,2BAA2B,IAAS,SAAiB35B,EAAO3B,GACpF,IAAK,IAAI7W,EAAI,EAAGA,EAAIwY,EAAM9X,OAAQV,GAAK,EACtC,GAAIwY,EAAMxY,KAAO6W,EAChB,OAAO7W,EAGT,OAAQ,CACT,EAIIkzC,EAAQ,CAAEnsB,UAAW,MAExB2Q,EAAQsb,EADLzd,GAAkBzO,GAAQyI,EACR,SAAU4jB,GAC9B,IAAIlzC,EAAM,IAAI++B,EAAEmU,GAChB,GAAIt9B,OAAOme,eAAe/zB,GAAOsvB,EAAU,CAC1C,IAAItT,EAAQsT,EAAStvB,GAEjB8zB,EAAajN,EAAK7K,EAAOpG,OAAOme,aACpC,IAAKD,GAAc9X,EAAO,CACzB,IAAIm3B,EAAa7jB,EAAStT,GAE1B8X,EAAajN,EAAKssB,EAAYv9B,OAAOme,YACtC,CAEAkf,EAAM,IAAMC,GAActsB,EAASkN,EAAWxX,IAC/C,CACD,EAEqB,SAAU42B,GAC9B,IAAIlzC,EAAM,IAAI++B,EAAEmU,GACZ9uB,EAAKpkB,EAAIkD,OAASlD,EAAIsJ,IACtB8a,IACH6uB,EACkD,IAAMC,GAGvDtsB,EAASxC,GAGZ,GA0CDjlB,EAAOD,QAAU,SAAyB0X,GACzC,IAAKA,GAA0B,iBAAVA,EAAsB,OAAO,EAClD,IAAK0e,EAAgB,CAEpB,IAAI8d,EAAMJ,EAAOF,EAAUl8B,GAAQ,GAAI,GACvC,OAAI2O,EAASwtB,EAAaK,IAAQ,EAC1BA,EAEI,WAARA,GA1BU,SAAsBx8B,GACU,IAAIkD,GAAQ,EAa3D,OAZA2d,EACiE,GACiB,SAAU4b,EAAQrvC,GAClG,IAAK8V,EACJ,IAECu5B,EAAOz8B,GACPkD,EAAmDk5B,EAAOhvC,EAAM,EACjE,CAAE,MAAOL,GAAU,CAErB,IAEMmW,CACR,CAeSw5B,CAAU18B,EAClB,CACA,OAAKiQ,EApDe,SAA2BjQ,GACK,IAAIkD,GAAQ,EAehE,OAdA2d,EACkE,GAEjE,SAAU4b,EAAQH,GACjB,IAAKp5B,EACJ,IAEK,IAAMu5B,EAAOz8B,KAAWs8B,IAC3Bp5B,EAAmDk5B,EAAOE,EAAY,GAExE,CAAE,MAAOvvC,GAAU,CAErB,IAEMmW,CACR,CAoCQy5B,CAAe38B,GADF,IAErB,C,sDClHA,IAAI48B,EAAgB,EAAQ,MAExBzU,EAA0B,oBAAfvX,WAA6B,EAAAuX,EAASvX,WAGrDroB,EAAOD,QAAU,WAEhB,IADA,IAA2DwJ,EAAM,GACxD3I,EAAI,EAAGA,EAAIyzC,EAAc/yC,OAAQV,IACN,mBAAxBg/B,EAAEyU,EAAczzC,MAE1B2I,EAAIA,EAAIjI,QAAU+yC,EAAczzC,IAGlC,OAAO2I,CACR,C,oCCfA,IAAI+qC,EAAS,EAAQ,MAErBt0C,EAAOD,QAAUu0C,C,oCCFjB,IAAIA,EAAS,EAAQ,MAErB,EAAQ,KACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MAERt0C,EAAOD,QAAUu0C,C,oCCPjB,IAAIA,EAAS,EAAQ,MAErBt0C,EAAOD,QAAUu0C,C,oCCFjB,IAAIA,EAAS,EAAQ,IAErBt0C,EAAOD,QAAUu0C,C,oCCFjB,EAAQ,MACR,IAEIp9B,EAFO,EAAQ,MAEDA,OAEd+F,EAAiBjd,EAAOD,QAAU,SAAwBw0C,EAAIngC,EAAKmT,GACrE,OAAOrQ,EAAO+F,eAAes3B,EAAIngC,EAAKmT,EACxC,EAEIrQ,EAAO+F,eAAeu3B,OAAMv3B,EAAeu3B,MAAO,E,oCCTtD,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,IAAIC,EAAO,EAAQ,MAEnBz0C,EAAOD,QAAU00C,EAAKh+B,M,oCCtBtB,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,IAAIi+B,EAA+B,EAAQ,KAE3C10C,EAAOD,QAAU20C,EAA6B/c,EAAE,W,oCCNhD,EAAQ,MACR,EAAQ,MACR,IAAI+c,EAA+B,EAAQ,KAE3C10C,EAAOD,QAAU20C,EAA6B/c,EAAE,c,oCCJhD,IAAI2c,EAAS,EAAQ,MAErBt0C,EAAOD,QAAUu0C,C,oCCFjB,IAAIA,EAAS,EAAQ,MACrB,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MAER,EAAQ,MACR,EAAQ,IACR,EAAQ,MACR,EAAQ,MACR,EAAQ,MACR,EAAQ,KAERt0C,EAAOD,QAAUu0C,C,oCCbjB,IAAIA,EAAS,EAAQ,MAErBt0C,EAAOD,QAAUu0C,C,oCCFjB,IAAIA,EAAS,EAAQ,MAErBt0C,EAAOD,QAAUu0C,C,oCCFjB,IAAIlmB,EAAa,EAAQ,MACrBumB,EAAc,EAAQ,MAEtBlvB,EAAanO,UAGjBtX,EAAOD,QAAU,SAAU60C,GACzB,GAAIxmB,EAAWwmB,GAAW,OAAOA,EACjC,MAAM,IAAInvB,EAAWkvB,EAAYC,GAAY,qBAC/C,C,kCCTA,IAAIC,EAAsB,EAAQ,MAE9BC,EAAUhwC,OACV2gB,EAAanO,UAEjBtX,EAAOD,QAAU,SAAU60C,GACzB,GAAIC,EAAoBD,GAAW,OAAOA,EAC1C,MAAM,IAAInvB,EAAW,aAAeqvB,EAAQF,GAAY,kBAC1D,C,gCCRA50C,EAAOD,QAAU,WAA0B,C,oCCA3C,IAAIg1C,EAAW,EAAQ,MAEnBD,EAAUhwC,OACV2gB,EAAanO,UAGjBtX,EAAOD,QAAU,SAAU60C,GACzB,GAAIG,EAASH,GAAW,OAAOA,EAC/B,MAAM,IAAInvB,EAAWqvB,EAAQF,GAAY,oBAC3C,C,oCCTA,IAAII,EAAkB,EAAQ,MAC1BC,EAAkB,EAAQ,MAC1BC,EAAoB,EAAQ,KAG5BC,EAAe,SAAUC,GAC3B,OAAO,SAAUC,EAAOC,EAAIC,GAC1B,IAAIthB,EAAI+gB,EAAgBK,GACpB/zC,EAAS4zC,EAAkBjhB,GAC/B,GAAe,IAAX3yB,EAAc,OAAQ8zC,IAAgB,EAC1C,IACI39B,EADAwW,EAAQgnB,EAAgBM,EAAWj0C,GAIvC,GAAI8zC,GAAeE,GAAOA,GAAI,KAAOh0C,EAAS2sB,GAG5C,IAFAxW,EAAQwc,EAAEhG,OAEIxW,EAAO,OAAO,OAEvB,KAAMnW,EAAS2sB,EAAOA,IAC3B,IAAKmnB,GAAennB,KAASgG,IAAMA,EAAEhG,KAAWqnB,EAAI,OAAOF,GAAennB,GAAS,EACnF,OAAQmnB,IAAgB,CAC5B,CACF,EAEAp1C,EAAOD,QAAU,CAGfse,SAAU82B,GAAa,GAGvBhzC,QAASgzC,GAAa,G,mCC/BxB,IAAIhwB,EAAO,EAAQ,MACfqwB,EAAc,EAAQ,MACtBC,EAAgB,EAAQ,MACxBC,EAAW,EAAQ,MACnBR,EAAoB,EAAQ,KAC5BS,EAAqB,EAAQ,MAE7Bh0C,EAAO6zC,EAAY,GAAG7zC,MAGtBwzC,EAAe,SAAUS,GAC3B,IAAIC,EAAkB,IAATD,EACTE,EAAqB,IAATF,EACZG,EAAmB,IAATH,EACVI,EAAoB,IAATJ,EACXK,EAAyB,IAATL,EAChBM,EAA4B,IAATN,EACnBO,EAAoB,IAATP,GAAcK,EAC7B,OAAO,SAAUZ,EAAOe,EAAYtqB,EAAMuqB,GASxC,IARA,IAOI5+B,EAAOyX,EAPP+E,EAAIyhB,EAASL,GACbl1C,EAAOs1C,EAAcxhB,GACrB3yB,EAAS4zC,EAAkB/0C,GAC3Bm2C,EAAgBnxB,EAAKixB,EAAYtqB,GACjCmC,EAAQ,EACR5E,EAASgtB,GAAkBV,EAC3B33B,EAAS63B,EAASxsB,EAAOgsB,EAAO/zC,GAAUw0C,GAAaI,EAAmB7sB,EAAOgsB,EAAO,QAAKz8B,EAE3FtX,EAAS2sB,EAAOA,IAAS,IAAIkoB,GAAYloB,KAAS9tB,KAEtD+uB,EAASonB,EADT7+B,EAAQtX,EAAK8tB,GACiBA,EAAOgG,GACjC2hB,GACF,GAAIC,EAAQ73B,EAAOiQ,GAASiB,OACvB,GAAIA,EAAQ,OAAQ0mB,GACvB,KAAK,EAAG,OAAO,EACf,KAAK,EAAG,OAAOn+B,EACf,KAAK,EAAG,OAAOwW,EACf,KAAK,EAAGtsB,EAAKqc,EAAQvG,QAChB,OAAQm+B,GACb,KAAK,EAAG,OAAO,EACf,KAAK,EAAGj0C,EAAKqc,EAAQvG,GAI3B,OAAOw+B,GAAiB,EAAIF,GAAWC,EAAWA,EAAWh4B,CAC/D,CACF,EAEAhe,EAAOD,QAAU,CAGfu4B,QAAS6c,EAAa,GAGtBvhC,IAAKuhC,EAAa,GAGlBoB,OAAQpB,EAAa,GAGrBqB,KAAMrB,EAAa,GAGnBsB,MAAOtB,EAAa,GAGpBuB,KAAMvB,EAAa,GAGnBwB,UAAWxB,EAAa,GAGxByB,aAAczB,EAAa,G,oCCvE7B,IAAI0B,EAAQ,EAAQ,MAChBC,EAAkB,EAAQ,MAC1BC,EAAa,EAAQ,KAErBC,EAAUF,EAAgB,WAE9B92C,EAAOD,QAAU,SAAUk3C,GAIzB,OAAOF,GAAc,KAAOF,GAAM,WAChC,IAAIz9B,EAAQ,GAKZ,OAJkBA,EAAMjT,YAAc,CAAC,GAC3B6wC,GAAW,WACrB,MAAO,CAAEl6B,IAAK,EAChB,EAC2C,IAApC1D,EAAM69B,GAAapmB,SAAS/T,GACrC,GACF,C,oCClBA,IAAI04B,EAAc,EAAQ,MAE1Bx1C,EAAOD,QAAUy1C,EAAY,GAAGzxC,M,oCCFhC,IAAIgV,EAAU,EAAQ,MAClBm+B,EAAgB,EAAQ,MACxBnC,EAAW,EAAQ,MAGnBiC,EAFkB,EAAQ,KAEhBF,CAAgB,WAC1BK,EAASn1C,MAIbhC,EAAOD,QAAU,SAAUq3C,GACzB,IAAIC,EASF,OAREt+B,EAAQq+B,KACVC,EAAID,EAAcjxC,aAEd+wC,EAAcG,KAAOA,IAAMF,GAAUp+B,EAAQs+B,EAAEnxC,aAC1C6uC,EAASsC,IAEN,QADVA,EAAIA,EAAEL,OAFwDK,OAAIz+B,SAKvDA,IAANy+B,EAAkBF,EAASE,CACtC,C,oCCrBA,IAAIC,EAA0B,EAAQ,MAItCt3C,EAAOD,QAAU,SAAUq3C,EAAe91C,GACxC,OAAO,IAAKg2C,EAAwBF,GAA7B,CAAwD,IAAX91C,EAAe,EAAIA,EACzE,C,oCCNA,IAAIk0C,EAAc,EAAQ,MAEtBpvC,EAAWovC,EAAY,CAAC,EAAEpvC,UAC1BmxC,EAAc/B,EAAY,GAAGzxC,OAEjC/D,EAAOD,QAAU,SAAUw0C,GACzB,OAAOgD,EAAYnxC,EAASmuC,GAAK,GAAI,EACvC,C,oCCPA,IAAIiD,EAAwB,EAAQ,MAChCppB,EAAa,EAAQ,MACrBqpB,EAAa,EAAQ,MAGrBC,EAFkB,EAAQ,KAEVZ,CAAgB,eAChClvB,EAAU1Q,OAGVygC,EAAwE,cAApDF,EAAW,WAAc,OAAO1sC,SAAW,CAAhC,IAUnC/K,EAAOD,QAAUy3C,EAAwBC,EAAa,SAAUlD,GAC9D,IAAItgB,EAAGggB,EAAK/kB,EACZ,YAActW,IAAP27B,EAAmB,YAAqB,OAAPA,EAAc,OAEO,iBAAjDN,EAXD,SAAUM,EAAIngC,GACzB,IACE,OAAOmgC,EAAGngC,EACZ,CAAE,MAAO4I,GAAqB,CAChC,CAOoB46B,CAAO3jB,EAAIrM,EAAQ2sB,GAAKmD,IAA8BzD,EAEpE0D,EAAoBF,EAAWxjB,GAEF,YAA5B/E,EAASuoB,EAAWxjB,KAAoB7F,EAAW6F,EAAE4jB,QAAU,YAAc3oB,CACpF,C,oCC5BA,IAAI2nB,EAAQ,EAAQ,MAEpB72C,EAAOD,SAAW82C,GAAM,WACtB,SAASiB,IAAkB,CAG3B,OAFAA,EAAE5xC,UAAUC,YAAc,KAEnB+Q,OAAO4Q,eAAe,IAAIgwB,KAASA,EAAE5xC,SAC9C,G,gCCLAlG,EAAOD,QAAU,SAAU0X,EAAOsgC,GAChC,MAAO,CAAEtgC,MAAOA,EAAOsgC,KAAMA,EAC/B,C,oCCJA,IAAIC,EAAc,EAAQ,MACtBC,EAAuB,EAAQ,MAC/BC,EAA2B,EAAQ,MAEvCl4C,EAAOD,QAAUi4C,EAAc,SAAUxxB,EAAQpS,EAAKqD,GACpD,OAAOwgC,EAAqBtgB,EAAEnR,EAAQpS,EAAK8jC,EAAyB,EAAGzgC,GACzE,EAAI,SAAU+O,EAAQpS,EAAKqD,GAEzB,OADA+O,EAAOpS,GAAOqD,EACP+O,CACT,C,gCCTAxmB,EAAOD,QAAU,SAAUo4C,EAAQ1gC,GACjC,MAAO,CACLyF,aAAuB,EAATi7B,GACdp0B,eAAyB,EAATo0B,GAChBr0B,WAAqB,EAATq0B,GACZ1gC,MAAOA,EAEX,C,oCCPA,IAAIugC,EAAc,EAAQ,MACtBC,EAAuB,EAAQ,MAC/BC,EAA2B,EAAQ,MAEvCl4C,EAAOD,QAAU,SAAUymB,EAAQpS,EAAKqD,GAClCugC,EAAaC,EAAqBtgB,EAAEnR,EAAQpS,EAAK8jC,EAAyB,EAAGzgC,IAC5E+O,EAAOpS,GAAOqD,CACrB,C,oCCPA,IAAIwF,EAAiB,EAAQ,MAE7Bjd,EAAOD,QAAU,SAAUie,EAAQnZ,EAAM8vB,GACvC,OAAO1X,EAAe0a,EAAE3Z,EAAQnZ,EAAM8vB,EACxC,C,oCCJA,IAAIyjB,EAA8B,EAAQ,MAE1Cp4C,EAAOD,QAAU,SAAUie,EAAQ5J,EAAKqD,EAAOmf,GAG7C,OAFIA,GAAWA,EAAQ1Z,WAAYc,EAAO5J,GAAOqD,EAC5C2gC,EAA4Bp6B,EAAQ5J,EAAKqD,GACvCuG,CACT,C,oCCNA,IAAIqK,EAAa,EAAQ,MAGrBpL,EAAiB/F,OAAO+F,eAE5Bjd,EAAOD,QAAU,SAAUqU,EAAKqD,GAC9B,IACEwF,EAAeoL,EAAYjU,EAAK,CAAEqD,MAAOA,EAAOsM,cAAc,EAAMD,UAAU,GAChF,CAAE,MAAO9G,GACPqL,EAAWjU,GAAOqD,CACpB,CAAE,OAAOA,CACX,C,oCCXA,IAAIo/B,EAAQ,EAAQ,MAGpB72C,EAAOD,SAAW82C,GAAM,WAEtB,OAA+E,IAAxE3/B,OAAO+F,eAAe,CAAC,EAAG,EAAG,CAAEE,IAAK,WAAc,OAAO,CAAG,IAAK,EAC1E,G,oCCNA,IAAIkL,EAAa,EAAQ,MACrB0sB,EAAW,EAAQ,MAEnBze,EAAWjO,EAAWiO,SAEtB+hB,EAAStD,EAASze,IAAaye,EAASze,EAASgiB,eAErDt4C,EAAOD,QAAU,SAAUw0C,GACzB,OAAO8D,EAAS/hB,EAASgiB,cAAc/D,GAAM,CAAC,CAChD,C,gCCTA,IAAI9uB,EAAanO,UAGjBtX,EAAOD,QAAU,SAAUw0C,GACzB,GAAIA,EAHiB,iBAGM,MAAM9uB,EAAW,kCAC5C,OAAO8uB,CACT,C,gCCJAv0C,EAAOD,QAAU,CACfw4C,YAAa,EACbC,oBAAqB,EACrBC,aAAc,EACdC,eAAgB,EAChBC,YAAa,EACbC,cAAe,EACfC,aAAc,EACdC,qBAAsB,EACtBC,SAAU,EACVC,kBAAmB,EACnBC,eAAgB,EAChBC,gBAAiB,EACjBC,kBAAmB,EACnBC,UAAW,EACXC,cAAe,EACfC,aAAc,EACdC,SAAU,EACVC,iBAAkB,EAClBC,OAAQ,EACRC,YAAa,EACbC,cAAe,EACfC,cAAe,EACfC,eAAgB,EAChBC,aAAc,EACdC,cAAe,EACfC,iBAAkB,EAClBC,iBAAkB,EAClBC,eAAgB,EAChBC,iBAAkB,EAClBC,cAAe,EACfC,UAAW,E,+BChCbr6C,EAAOD,QAAU,CACf,cACA,iBACA,gBACA,uBACA,iBACA,WACA,U,oCCRF,IAEIu6C,EAFa,EAAQ,MAEEA,UACvBC,EAAYD,GAAaA,EAAUC,UAEvCv6C,EAAOD,QAAUw6C,EAAYz1C,OAAOy1C,GAAa,E,mCCLjD,IAOInnB,EAAOuH,EAPPtS,EAAa,EAAQ,MACrBkyB,EAAY,EAAQ,MAEpBphB,EAAU9Q,EAAW8Q,QACrBqhB,EAAOnyB,EAAWmyB,KAClB5f,EAAWzB,GAAWA,EAAQyB,UAAY4f,GAAQA,EAAK7f,QACvD8f,EAAK7f,GAAYA,EAAS6f,GAG1BA,IAIF9f,GAHAvH,EAAQqnB,EAAGppC,MAAM,MAGD,GAAK,GAAK+hB,EAAM,GAAK,EAAI,IAAMA,EAAM,GAAKA,EAAM,MAK7DuH,GAAW4f,MACdnnB,EAAQmnB,EAAUnnB,MAAM,iBACVA,EAAM,IAAM,MACxBA,EAAQmnB,EAAUnnB,MAAM,oBACbuH,GAAWvH,EAAM,IAIhCpzB,EAAOD,QAAU46B,C,oCC1BjB,IAAItS,EAAa,EAAQ,MACrB5L,EAAQ,EAAQ,MAChB+4B,EAAc,EAAQ,MACtBpnB,EAAa,EAAQ,MACrB8F,EAA2B,UAC3BwmB,EAAW,EAAQ,MACnBjG,EAAO,EAAQ,MACftvB,EAAO,EAAQ,MACfizB,EAA8B,EAAQ,MACtC5lB,EAAS,EAAQ,MAErB,EAAQ,MAER,IAAImoB,EAAkB,SAAUC,GAC9B,IAAIC,EAAU,SAAUn3C,EAAGS,EAAGE,GAC5B,GAAI0D,gBAAgB8yC,EAAS,CAC3B,OAAQ9vC,UAAUzJ,QAChB,KAAK,EAAG,OAAO,IAAIs5C,EACnB,KAAK,EAAG,OAAO,IAAIA,EAAkBl3C,GACrC,KAAK,EAAG,OAAO,IAAIk3C,EAAkBl3C,EAAGS,GACxC,OAAO,IAAIy2C,EAAkBl3C,EAAGS,EAAGE,EACvC,CAAE,OAAOoY,EAAMm+B,EAAmB7yC,KAAMgD,UAC1C,EAEA,OADA8vC,EAAQ30C,UAAY00C,EAAkB10C,UAC/B20C,CACT,EAiBA76C,EAAOD,QAAU,SAAU62B,EAASsB,GAClC,IAUI4iB,EAAQC,EAAYC,EACpB5mC,EAAK6mC,EAAgBC,EAAgBC,EAAgBC,EAAgBzmB,EAXrE0mB,EAASzkB,EAAQ5Y,OACjBs9B,EAAS1kB,EAAQ2kB,OACjBC,EAAS5kB,EAAQ6kB,KACjBC,EAAQ9kB,EAAQ/Z,MAEhB8+B,EAAeL,EAASjzB,EAAamzB,EAASnzB,EAAWgzB,GAAUhzB,EAAWgzB,IAAWhzB,EAAWgzB,GAAQn1C,UAE5G8X,EAASs9B,EAAS7G,EAAOA,EAAK4G,IAAWjD,EAA4B3D,EAAM4G,EAAQ,CAAC,GAAGA,GACvFO,EAAkB59B,EAAO9X,UAK7B,IAAKkO,KAAO8jB,EAGV6iB,IAFAD,EAASJ,EAASY,EAASlnC,EAAMinC,GAAUG,EAAS,IAAM,KAAOpnC,EAAKwiB,EAAQilB,UAEtDF,GAAgBnpB,EAAOmpB,EAAcvnC,GAE7D8mC,EAAiBl9B,EAAO5J,GAEpB2mC,IAEFI,EAFkBvkB,EAAQklB,gBAC1BnnB,EAAaT,EAAyBynB,EAAcvnC,KACrBugB,EAAWld,MACpBkkC,EAAavnC,IAGrC6mC,EAAkBF,GAAcI,EAAkBA,EAAiBjjB,EAAO9jB,IAErE0mC,GAAWY,UAAgBR,UAAyBD,KAGzBG,EAA5BxkB,EAAQzR,MAAQ41B,EAA6B51B,EAAK81B,EAAgB5yB,GAE7DuO,EAAQmlB,MAAQhB,EAA6BJ,EAAgBM,GAE7DS,GAASttB,EAAW6sB,GAAkCzF,EAAYyF,GAErDA,GAGlBrkB,EAAQ4d,MAASyG,GAAkBA,EAAezG,MAAU0G,GAAkBA,EAAe1G,OAC/F4D,EAA4BgD,EAAgB,QAAQ,GAGtDhD,EAA4Bp6B,EAAQ5J,EAAKgnC,GAErCM,IAEGlpB,EAAOiiB,EADZuG,EAAoBK,EAAS,cAE3BjD,EAA4B3D,EAAMuG,EAAmB,CAAC,GAGxD5C,EAA4B3D,EAAKuG,GAAoB5mC,EAAK6mC,GAEtDrkB,EAAQolB,MAAQJ,IAAoBd,IAAWc,EAAgBxnC,KACjEgkC,EAA4BwD,EAAiBxnC,EAAK6mC,IAI1D,C,gCCtGAj7C,EAAOD,QAAU,SAAU+yB,GACzB,IACE,QAASA,GACX,CAAE,MAAO9V,GACP,OAAO,CACT,CACF,C,oCCNA,IAAIi/B,EAAc,EAAQ,MAEtBC,EAAoB12B,SAAStf,UAC7BuW,EAAQy/B,EAAkBz/B,MAC1B5R,EAAOqxC,EAAkBrxC,KAG7B7K,EAAOD,QAA4B,iBAAX4lB,SAAuBA,QAAQlJ,QAAUw/B,EAAcpxC,EAAKsa,KAAK1I,GAAS,WAChG,OAAO5R,EAAK4R,MAAMA,EAAO1R,UAC3B,E,oCCTA,IAAIyqC,EAAc,EAAQ,MACtB2G,EAAY,EAAQ,MACpBF,EAAc,EAAQ,MAEtB92B,EAAOqwB,EAAYA,EAAYrwB,MAGnCnlB,EAAOD,QAAU,SAAUklB,EAAI6G,GAE7B,OADAqwB,EAAUl3B,QACMrM,IAATkT,EAAqB7G,EAAKg3B,EAAc92B,EAAKF,EAAI6G,GAAQ,WAC9D,OAAO7G,EAAGxI,MAAMqP,EAAM/gB,UACxB,CACF,C,oCCZA,IAAI8rC,EAAQ,EAAQ,MAEpB72C,EAAOD,SAAW82C,GAAM,WAEtB,IAAI5uC,EAAO,WAA4B,EAAEkd,OAEzC,MAAsB,mBAARld,GAAsBA,EAAKqC,eAAe,YAC1D,G,oCCPA,IAAI2xC,EAAc,EAAQ,MAEtBpxC,EAAO2a,SAAStf,UAAU2E,KAE9B7K,EAAOD,QAAUk8C,EAAcpxC,EAAKsa,KAAKta,GAAQ,WAC/C,OAAOA,EAAK4R,MAAM5R,EAAME,UAC1B,C,oCCNA,IAAIitC,EAAc,EAAQ,MACtBxlB,EAAS,EAAQ,MAEjB0pB,EAAoB12B,SAAStf,UAE7Bk2C,EAAgBpE,GAAe9gC,OAAOgd,yBAEtCmkB,EAAS7lB,EAAO0pB,EAAmB,QAEnCG,EAAShE,GAA0D,cAAhD,WAAqC,EAAExzC,KAC1Dy3C,EAAejE,KAAYL,GAAgBA,GAAeoE,EAAcF,EAAmB,QAAQn4B,cAEvG/jB,EAAOD,QAAU,CACfs4C,OAAQA,EACRgE,OAAQA,EACRC,aAAcA,E,oCCfhB,IAAI9G,EAAc,EAAQ,MACtB2G,EAAY,EAAQ,MAExBn8C,EAAOD,QAAU,SAAUymB,EAAQpS,EAAKmoC,GACtC,IAEE,OAAO/G,EAAY2G,EAAUjlC,OAAOgd,yBAAyB1N,EAAQpS,GAAKmoC,IAC5E,CAAE,MAAOv/B,GAAqB,CAChC,C,oCCRA,IAAIy6B,EAAa,EAAQ,MACrBjC,EAAc,EAAQ,MAE1Bx1C,EAAOD,QAAU,SAAUklB,GAIzB,GAAuB,aAAnBwyB,EAAWxyB,GAAoB,OAAOuwB,EAAYvwB,EACxD,C,oCCRA,IAAIg3B,EAAc,EAAQ,MAEtBC,EAAoB12B,SAAStf,UAC7B2E,EAAOqxC,EAAkBrxC,KAEzB2xC,EAAsBP,GAAeC,EAAkB/2B,KAAKA,KAAKta,EAAMA,GAE3E7K,EAAOD,QAAUk8C,EAAcO,EAAsB,SAAUv3B,GAC7D,OAAO,WACL,OAAOpa,EAAK4R,MAAMwI,EAAIla,UACxB,CACF,C,oCCXA,IAAI0pC,EAAO,EAAQ,MACfpsB,EAAa,EAAQ,MACrB+F,EAAa,EAAQ,MAErBquB,EAAY,SAAUC,GACxB,OAAOtuB,EAAWsuB,GAAYA,OAAW9jC,CAC3C,EAEA5Y,EAAOD,QAAU,SAAU48C,EAAWJ,GACpC,OAAOxxC,UAAUzJ,OAAS,EAAIm7C,EAAUhI,EAAKkI,KAAeF,EAAUp0B,EAAWs0B,IAC7ElI,EAAKkI,IAAclI,EAAKkI,GAAWJ,IAAWl0B,EAAWs0B,IAAct0B,EAAWs0B,GAAWJ,EACnG,C,oCCXA,IAAI/G,EAAc,EAAQ,MACtBz8B,EAAU,EAAQ,MAClBqV,EAAa,EAAQ,MACrBwuB,EAAU,EAAQ,MAClBx2C,EAAW,EAAQ,KAEnBzE,EAAO6zC,EAAY,GAAG7zC,MAE1B3B,EAAOD,QAAU,SAAU+4B,GACzB,GAAI1K,EAAW0K,GAAW,OAAOA,EACjC,GAAK/f,EAAQ+f,GAAb,CAGA,IAFA,IAAI+jB,EAAY/jB,EAASx3B,OACrBwlB,EAAO,GACFlmB,EAAI,EAAGA,EAAIi8C,EAAWj8C,IAAK,CAClC,IAAIk8C,EAAUhkB,EAASl4B,GACD,iBAAXk8C,EAAqBn7C,EAAKmlB,EAAMg2B,GAChB,iBAAXA,GAA4C,WAArBF,EAAQE,IAA8C,WAArBF,EAAQE,IAAuBn7C,EAAKmlB,EAAM1gB,EAAS02C,GAC7H,CACA,IAAIC,EAAaj2B,EAAKxlB,OAClBzB,GAAO,EACX,OAAO,SAAUuU,EAAKqD,GACpB,GAAI5X,EAEF,OADAA,GAAO,EACA4X,EAET,GAAIsB,EAAQhR,MAAO,OAAO0P,EAC1B,IAAK,IAAI5T,EAAI,EAAGA,EAAIk5C,EAAYl5C,IAAK,GAAIijB,EAAKjjB,KAAOuQ,EAAK,OAAOqD,CACnE,CAjB8B,CAkBhC,C,oCC5BA,IAAI0kC,EAAY,EAAQ,MACpBa,EAAoB,EAAQ,MAIhCh9C,EAAOD,QAAU,SAAUk9C,EAAGh3C,GAC5B,IAAIggB,EAAOg3B,EAAEh3C,GACb,OAAO+2C,EAAkB/2B,QAAQrN,EAAYujC,EAAUl2B,EACzD,C,oCCRA,IAAIi3B,EAAQ,SAAU3I,GACpB,OAAOA,GAAMA,EAAG5xC,OAASA,MAAQ4xC,CACnC,EAGAv0C,EAAOD,QAELm9C,EAA2B,iBAAd70B,YAA0BA,aACvC60B,EAAuB,iBAAV90B,QAAsBA,SAEnC80B,EAAqB,iBAAR/8C,MAAoBA,OACjC+8C,EAAuB,iBAAV,EAAAtd,GAAsB,EAAAA,IACnCsd,EAAqB,iBAARn1C,MAAoBA,OAEjC,WAAe,OAAOA,IAAO,CAA7B,IAAoCyd,SAAS,cAATA,E,oCCdtC,IAAIgwB,EAAc,EAAQ,MACtBE,EAAW,EAAQ,MAEnBprC,EAAiBkrC,EAAY,CAAC,EAAElrC,gBAKpCtK,EAAOD,QAAUmX,OAAOsb,QAAU,SAAgB+hB,EAAIngC,GACpD,OAAO9J,EAAeorC,EAASnB,GAAKngC,EACtC,C,gCCVApU,EAAOD,QAAU,CAAC,C,oCCAlB,IAAIo9C,EAAa,EAAQ,MAEzBn9C,EAAOD,QAAUo9C,EAAW,WAAY,kB,oCCFxC,IAAInF,EAAc,EAAQ,MACtBnB,EAAQ,EAAQ,MAChByB,EAAgB,EAAQ,MAG5Bt4C,EAAOD,SAAWi4C,IAAgBnB,GAAM,WAEtC,OAES,IAFF3/B,OAAO+F,eAAeq7B,EAAc,OAAQ,IAAK,CACtDn7B,IAAK,WAAc,OAAO,CAAG,IAC5BzZ,CACL,G,oCCVA,IAAI8xC,EAAc,EAAQ,MACtBqB,EAAQ,EAAQ,MAChB+F,EAAU,EAAQ,MAElBh1B,EAAU1Q,OACV7F,EAAQmkC,EAAY,GAAGnkC,OAG3BrR,EAAOD,QAAU82C,GAAM,WAGrB,OAAQjvB,EAAQ,KAAK8M,qBAAqB,EAC5C,IAAK,SAAU6f,GACb,MAAuB,WAAhBqI,EAAQrI,GAAmBljC,EAAMkjC,EAAI,IAAM3sB,EAAQ2sB,EAC5D,EAAI3sB,C,oCCdJ,IAAI4tB,EAAc,EAAQ,MACtBpnB,EAAa,EAAQ,MACrBgvB,EAAQ,EAAQ,MAEhBC,EAAmB7H,EAAYhwB,SAASpf,UAGvCgoB,EAAWgvB,EAAME,iBACpBF,EAAME,cAAgB,SAAU/I,GAC9B,OAAO8I,EAAiB9I,EAC1B,GAGFv0C,EAAOD,QAAUq9C,EAAME,a,oCCbvB,IAYInzC,EAAKgT,EAAKoL,EAZVg1B,EAAkB,EAAQ,KAC1Bl1B,EAAa,EAAQ,MACrB0sB,EAAW,EAAQ,MACnBqD,EAA8B,EAAQ,MACtC5lB,EAAS,EAAQ,MACjBgrB,EAAS,EAAQ,MACjBC,EAAY,EAAQ,MACpBC,EAAa,EAAQ,MAErBC,EAA6B,6BAC7BrmC,EAAY+Q,EAAW/Q,UACvB2a,EAAU5J,EAAW4J,QAgBzB,GAAIsrB,GAAmBC,EAAO3wB,MAAO,CACnC,IAAIuwB,EAAQI,EAAO3wB,QAAU2wB,EAAO3wB,MAAQ,IAAIoF,GAEhDmrB,EAAMjgC,IAAMigC,EAAMjgC,IAClBigC,EAAM70B,IAAM60B,EAAM70B,IAClB60B,EAAMjzC,IAAMizC,EAAMjzC,IAElBA,EAAM,SAAUoqC,EAAIqJ,GAClB,GAAIR,EAAM70B,IAAIgsB,GAAK,MAAM,IAAIj9B,EAAUqmC,GAGvC,OAFAC,EAASC,OAAStJ,EAClB6I,EAAMjzC,IAAIoqC,EAAIqJ,GACPA,CACT,EACAzgC,EAAM,SAAUo3B,GACd,OAAO6I,EAAMjgC,IAAIo3B,IAAO,CAAC,CAC3B,EACAhsB,EAAM,SAAUgsB,GACd,OAAO6I,EAAM70B,IAAIgsB,EACnB,CACF,KAAO,CACL,IAAIuJ,EAAQL,EAAU,SACtBC,EAAWI,IAAS,EACpB3zC,EAAM,SAAUoqC,EAAIqJ,GAClB,GAAIprB,EAAO+hB,EAAIuJ,GAAQ,MAAM,IAAIxmC,EAAUqmC,GAG3C,OAFAC,EAASC,OAAStJ,EAClB6D,EAA4B7D,EAAIuJ,EAAOF,GAChCA,CACT,EACAzgC,EAAM,SAAUo3B,GACd,OAAO/hB,EAAO+hB,EAAIuJ,GAASvJ,EAAGuJ,GAAS,CAAC,CAC1C,EACAv1B,EAAM,SAAUgsB,GACd,OAAO/hB,EAAO+hB,EAAIuJ,EACpB,CACF,CAEA99C,EAAOD,QAAU,CACfoK,IAAKA,EACLgT,IAAKA,EACLoL,IAAKA,EACLw1B,QArDY,SAAUxJ,GACtB,OAAOhsB,EAAIgsB,GAAMp3B,EAAIo3B,GAAMpqC,EAAIoqC,EAAI,CAAC,EACtC,EAoDEyJ,UAlDc,SAAUpI,GACxB,OAAO,SAAUrB,GACf,IAAI1nB,EACJ,IAAKkoB,EAASR,KAAQ1nB,EAAQ1P,EAAIo3B,IAAKz7B,OAAS88B,EAC9C,MAAM,IAAIt+B,EAAU,0BAA4Bs+B,EAAO,aACvD,OAAO/oB,CACX,CACF,E,oCCzBA,IAAI+vB,EAAU,EAAQ,MAKtB58C,EAAOD,QAAUiC,MAAM+W,SAAW,SAAiB67B,GACjD,MAA6B,UAAtBgI,EAAQhI,EACjB,C,gCCNA,IAAIqJ,EAAiC,iBAAZ3nB,UAAwBA,SAASC,IAK1Dv2B,EAAOD,aAAgC,IAAfk+C,QAA8CrlC,IAAhBqlC,EAA4B,SAAUrJ,GAC1F,MAA0B,mBAAZA,GAA0BA,IAAaqJ,CACvD,EAAI,SAAUrJ,GACZ,MAA0B,mBAAZA,CAChB,C,oCCVA,IAAIY,EAAc,EAAQ,MACtBqB,EAAQ,EAAQ,MAChBzoB,EAAa,EAAQ,MACrBwuB,EAAU,EAAQ,MAClBO,EAAa,EAAQ,MACrBG,EAAgB,EAAQ,MAExBjjB,EAAO,WAA0B,EACjC6jB,EAAYf,EAAW,UAAW,aAClCgB,EAAoB,2BACpBrrB,EAAO0iB,EAAY2I,EAAkBrrB,MACrCsrB,GAAuBD,EAAkBl2C,KAAKoyB,GAE9CgkB,EAAsB,SAAuBzJ,GAC/C,IAAKxmB,EAAWwmB,GAAW,OAAO,EAClC,IAEE,OADAsJ,EAAU7jB,EAAM,GAAIua,IACb,CACT,CAAE,MAAO53B,GACP,OAAO,CACT,CACF,EAEIshC,EAAsB,SAAuB1J,GAC/C,IAAKxmB,EAAWwmB,GAAW,OAAO,EAClC,OAAQgI,EAAQhI,IACd,IAAK,gBACL,IAAK,oBACL,IAAK,yBAA0B,OAAO,EAExC,IAIE,OAAOwJ,KAAyBtrB,EAAKqrB,EAAmBb,EAAc1I,GACxE,CAAE,MAAO53B,GACP,OAAO,CACT,CACF,EAEAshC,EAAoB9J,MAAO,EAI3Bx0C,EAAOD,SAAWm+C,GAAarH,GAAM,WACnC,IAAI0H,EACJ,OAAOF,EAAoBA,EAAoBxzC,QACzCwzC,EAAoBnnC,UACpBmnC,GAAoB,WAAcE,GAAS,CAAM,KAClDA,CACP,IAAKD,EAAsBD,C,oCClD3B,IAAIxH,EAAQ,EAAQ,MAChBzoB,EAAa,EAAQ,MAErBowB,EAAc,kBAEd9D,EAAW,SAAU+D,EAASC,GAChC,IAAIjnC,EAAQuB,EAAK2lC,EAAUF,IAC3B,OAAOhnC,IAAUmnC,GACbnnC,IAAUonC,IACVzwB,EAAWswB,GAAa7H,EAAM6H,KAC5BA,EACR,EAEIC,EAAYjE,EAASiE,UAAY,SAAUjnC,GAC7C,OAAO5S,OAAO4S,GAAQxP,QAAQs2C,EAAa,KAAKh2C,aAClD,EAEIwQ,EAAO0hC,EAAS1hC,KAAO,CAAC,EACxB6lC,EAASnE,EAASmE,OAAS,IAC3BD,EAAWlE,EAASkE,SAAW,IAEnC5+C,EAAOD,QAAU26C,C,gCCnBjB16C,EAAOD,QAAU,SAAUw0C,GACzB,OAAOA,OACT,C,oCCJA,IAAInmB,EAAa,EAAQ,MAEzBpuB,EAAOD,QAAU,SAAUw0C,GACzB,MAAoB,iBAANA,EAAwB,OAAPA,EAAcnmB,EAAWmmB,EAC1D,C,oCCJA,IAAIQ,EAAW,EAAQ,MAEvB/0C,EAAOD,QAAU,SAAU60C,GACzB,OAAOG,EAASH,IAA0B,OAAbA,CAC/B,C,gCCJA50C,EAAOD,SAAU,C,oCCAjB,IAAIo9C,EAAa,EAAQ,MACrB/uB,EAAa,EAAQ,MACrB0wB,EAAgB,EAAQ,MACxBC,EAAoB,EAAQ,MAE5Bn3B,EAAU1Q,OAEdlX,EAAOD,QAAUg/C,EAAoB,SAAUxK,GAC7C,MAAoB,iBAANA,CAChB,EAAI,SAAUA,GACZ,IAAIyK,EAAU7B,EAAW,UACzB,OAAO/uB,EAAW4wB,IAAYF,EAAcE,EAAQ94C,UAAW0hB,EAAQ2sB,GACzE,C,oCCZA,IAAI0K,EAAoB,0BACpB51B,EAAS,EAAQ,MACjB6uB,EAA2B,EAAQ,MACnCgH,EAAiB,EAAQ,MACzBC,EAAY,EAAQ,MAEpBC,EAAa,WAAc,OAAOr3C,IAAM,EAE5C/H,EAAOD,QAAU,SAAUs/C,EAAqBC,EAAM1nB,EAAM2nB,GAC1D,IAAI7H,EAAgB4H,EAAO,YAI3B,OAHAD,EAAoBn5C,UAAYmjB,EAAO41B,EAAmB,CAAErnB,KAAMsgB,IAA2BqH,EAAiB3nB,KAC9GsnB,EAAeG,EAAqB3H,GAAe,GAAO,GAC1DyH,EAAUzH,GAAiB0H,EACpBC,CACT,C,mCCdA,IAAIG,EAAI,EAAQ,MACZ30C,EAAO,EAAQ,MACf40C,EAAU,EAAQ,MAClBC,EAAe,EAAQ,MACvBtxB,EAAa,EAAQ,MACrBuxB,EAA4B,EAAQ,MACpC73B,EAAiB,EAAQ,MACzB3Q,EAAiB,EAAQ,MACzB+nC,EAAiB,EAAQ,MACzB9G,EAA8B,EAAQ,MACtCwH,EAAgB,EAAQ,MACxB9I,EAAkB,EAAQ,MAC1BqI,EAAY,EAAQ,MACpBU,EAAgB,EAAQ,MAExBC,EAAuBJ,EAAarD,OACpC0D,EAA6BL,EAAapD,aAC1C2C,EAAoBY,EAAcZ,kBAClCe,EAAyBH,EAAcG,uBACvCC,EAAWnJ,EAAgB,YAC3BoJ,EAAO,OACPC,EAAS,SACTC,EAAU,UAEVhB,EAAa,WAAc,OAAOr3C,IAAM,EAE5C/H,EAAOD,QAAU,SAAUsgD,EAAUf,EAAMD,EAAqBznB,EAAM0oB,EAASC,EAAQzF,GACrF6E,EAA0BN,EAAqBC,EAAM1nB,GAErD,IAqBI4oB,EAA0BC,EAASC,EArBnCC,EAAqB,SAAUC,GACjC,GAAIA,IAASN,GAAWO,EAAiB,OAAOA,EAChD,IAAKb,GAA0BY,GAAQA,KAAQE,EAAmB,OAAOA,EAAkBF,GAE3F,OAAQA,GACN,KAAKV,EACL,KAAKC,EACL,KAAKC,EAAS,OAAO,WAAqB,OAAO,IAAIf,EAAoBt3C,KAAM64C,EAAO,EAGxF,OAAO,WAAc,OAAO,IAAIvB,EAAoBt3C,KAAO,CAC7D,EAEI2vC,EAAgB4H,EAAO,YACvByB,GAAwB,EACxBD,EAAoBT,EAASn6C,UAC7B86C,EAAiBF,EAAkBb,IAClCa,EAAkB,eAClBR,GAAWQ,EAAkBR,GAC9BO,GAAmBb,GAA0BgB,GAAkBL,EAAmBL,GAClFW,EAA6B,UAAT3B,GAAmBwB,EAAkBI,SAA4BF,EA+BzF,GA3BIC,IACFT,EAA2B14B,EAAem5B,EAAkBp2C,KAAK,IAAIw1C,OACpCnpC,OAAOhR,WAAas6C,EAAyB5oB,OACvE6nB,GAAW33B,EAAe04B,KAA8BvB,IACvD9nC,EACFA,EAAeqpC,EAA0BvB,GAC/B7wB,EAAWoyB,EAAyBP,KAC9CL,EAAcY,EAA0BP,EAAUb,IAItDF,EAAesB,EAA0B9I,GAAe,GAAM,GAC1D+H,IAASN,EAAUzH,GAAiB0H,IAKxCU,GAAwBQ,IAAYH,GAAUa,GAAkBA,EAAen8C,OAASs7C,KACrFV,GAAWM,EACd3H,EAA4B0I,EAAmB,OAAQX,IAEvDY,GAAwB,EACxBF,EAAkB,WAAoB,OAAOh2C,EAAKm2C,EAAgBj5C,KAAO,IAKzEu4C,EAMF,GALAG,EAAU,CACRU,OAAQR,EAAmBR,GAC3Br5B,KAAMy5B,EAASM,EAAkBF,EAAmBT,GACpDgB,QAASP,EAAmBP,IAE1BtF,EAAQ,IAAK4F,KAAOD,GAClBT,GAA0Be,KAA2BL,KAAOI,KAC9DlB,EAAckB,EAAmBJ,EAAKD,EAAQC,SAE3ClB,EAAE,CAAExhC,OAAQshC,EAAMziC,OAAO,EAAMg/B,OAAQmE,GAA0Be,GAAyBN,GASnG,OALMhB,IAAW3E,GAAWgG,EAAkBb,KAAcY,GAC1DjB,EAAckB,EAAmBb,EAAUY,EAAiB,CAAEh8C,KAAMy7C,IAEtEnB,EAAUG,GAAQuB,EAEXJ,CACT,C,oCCpGA,IAcIxB,EAAmBmC,EAAmCC,EAdtDxK,EAAQ,EAAQ,MAChBzoB,EAAa,EAAQ,MACrB2mB,EAAW,EAAQ,MACnB1rB,EAAS,EAAQ,MACjBvB,EAAiB,EAAQ,MACzB83B,EAAgB,EAAQ,MACxB9I,EAAkB,EAAQ,MAC1B2I,EAAU,EAAQ,MAElBQ,EAAWnJ,EAAgB,YAC3BkJ,GAAyB,EAOzB,GAAGl5B,OAGC,SAFNu6B,EAAgB,GAAGv6B,SAIjBs6B,EAAoCt5B,EAAeA,EAAeu5B,OACxBnqC,OAAOhR,YAAW+4C,EAAoBmC,GAHlDpB,GAAyB,IAO7BjL,EAASkK,IAAsBpI,GAAM,WACjE,IAAI5uC,EAAO,CAAC,EAEZ,OAAOg3C,EAAkBgB,GAAUp1C,KAAK5C,KAAUA,CACpD,IAE4Bg3C,EAAoB,CAAC,EACxCQ,IAASR,EAAoB51B,EAAO41B,IAIxC7wB,EAAW6wB,EAAkBgB,KAChCL,EAAcX,EAAmBgB,GAAU,WACzC,OAAOl4C,IACT,IAGF/H,EAAOD,QAAU,CACfk/C,kBAAmBA,EACnBe,uBAAwBA,E,gCC9C1BhgD,EAAOD,QAAU,CAAC,C,mCCAlB,IAAIuhD,EAAW,EAAQ,MAIvBthD,EAAOD,QAAU,SAAUqK,GACzB,OAAOk3C,EAASl3C,EAAI9I,OACtB,C,gCCNA,IAAIsB,EAAOD,KAAKC,KACZE,EAAQH,KAAKG,MAKjB9C,EAAOD,QAAU4C,KAAK4+C,OAAS,SAAet9C,GAC5C,IAAIT,GAAKS,EACT,OAAQT,EAAI,EAAIV,EAAQF,GAAMY,EAChC,C,oCCRA,IAoDIg+C,EApDAC,EAAW,EAAQ,MACnBC,EAAyB,EAAQ,MACjCC,EAAc,EAAQ,KACtBjE,EAAa,EAAQ,MACrBkE,EAAO,EAAQ,MACfC,EAAwB,EAAQ,MAChCpE,EAAY,EAAQ,MAIpBqE,EAAY,YACZC,EAAS,SACTC,EAAWvE,EAAU,YAErBwE,EAAmB,WAA0B,EAE7CC,EAAY,SAAUC,GACxB,MARO,IAQKJ,EATL,IASmBI,EAAnBC,KAAwCL,EATxC,GAUT,EAGIM,EAA4B,SAAUb,GACxCA,EAAgB1pC,MAAMoqC,EAAU,KAChCV,EAAgBc,QAChB,IAAIh2C,EAAOk1C,EAAgBe,aAAarrC,OAGxC,OADAsqC,EAAkB,KACXl1C,CACT,EAyBIk2C,EAAkB,WACpB,IACEhB,EAAkB,IAAIiB,cAAc,WACtC,CAAE,MAAOzlC,GAAsB,CAzBF,IAIzB0lC,EAFAC,EACAC,EAuBJJ,EAAqC,oBAAZlsB,SACrBA,SAASusB,QAAUrB,EACjBa,EAA0Bb,IA1B5BmB,EAASd,EAAsB,UAC/Be,EAAK,OAASb,EAAS,IAE3BY,EAAOG,MAAMC,QAAU,OACvBnB,EAAKoB,YAAYL,GAEjBA,EAAO99B,IAAM/f,OAAO89C,IACpBF,EAAiBC,EAAOM,cAAc3sB,UACvB2a,OACfyR,EAAe5qC,MAAMoqC,EAAU,sBAC/BQ,EAAeJ,QACRI,EAAe5K,GAiBlBuK,EAA0Bb,GAE9B,IADA,IAAIlgD,EAASqgD,EAAYrgD,OAClBA,YAAiBkhD,EAAgBV,GAAWH,EAAYrgD,IAC/D,OAAOkhD,GACT,EAEA9E,EAAWsE,IAAY,EAKvBhiD,EAAOD,QAAUmX,OAAOmS,QAAU,SAAgB4K,EAAGivB,GACnD,IAAIh0B,EAQJ,OAPU,OAAN+E,GACFguB,EAAiBH,GAAaL,EAASxtB,GACvC/E,EAAS,IAAI+yB,EACbA,EAAiBH,GAAa,KAE9B5yB,EAAO8yB,GAAY/tB,GACd/E,EAASszB,SACM5pC,IAAfsqC,EAA2Bh0B,EAASwyB,EAAuB/pB,EAAEzI,EAAQg0B,EAC9E,C,oCCnFA,IAAIlL,EAAc,EAAQ,MACtBmL,EAA0B,EAAQ,MAClClL,EAAuB,EAAQ,MAC/BwJ,EAAW,EAAQ,MACnBzM,EAAkB,EAAQ,MAC1BoO,EAAa,EAAQ,MAKzBrjD,EAAQ43B,EAAIqgB,IAAgBmL,EAA0BjsC,OAAOmsC,iBAAmB,SAA0BpvB,EAAGivB,GAC3GzB,EAASxtB,GAMT,IALA,IAII7f,EAJAkvC,EAAQtO,EAAgBkO,GACxBp8B,EAAOs8B,EAAWF,GAClB5hD,EAASwlB,EAAKxlB,OACd2sB,EAAQ,EAEL3sB,EAAS2sB,GAAOgqB,EAAqBtgB,EAAE1D,EAAG7f,EAAM0S,EAAKmH,KAAUq1B,EAAMlvC,IAC5E,OAAO6f,CACT,C,oCCnBA,IAAI+jB,EAAc,EAAQ,MACtBuL,EAAiB,EAAQ,MACzBJ,EAA0B,EAAQ,MAClC1B,EAAW,EAAQ,MACnB+B,EAAgB,EAAQ,KAExB/9B,EAAanO,UAEbuO,EAAkB3O,OAAO+F,eAEzBwmC,EAA4BvsC,OAAOgd,yBACnCwvB,EAAa,aACbpH,EAAe,eACfqH,EAAW,WAIf5jD,EAAQ43B,EAAIqgB,EAAcmL,EAA0B,SAAwBlvB,EAAGhuB,EAAG29C,GAIhF,GAHAnC,EAASxtB,GACThuB,EAAIu9C,EAAcv9C,GAClBw7C,EAASmC,GACQ,mBAAN3vB,GAA0B,cAANhuB,GAAqB,UAAW29C,GAAcD,KAAYC,IAAeA,EAAWD,GAAW,CAC5H,IAAIE,EAAUJ,EAA0BxvB,EAAGhuB,GACvC49C,GAAWA,EAAQF,KACrB1vB,EAAEhuB,GAAK29C,EAAWnsC,MAClBmsC,EAAa,CACX7/B,aAAcu4B,KAAgBsH,EAAaA,EAAWtH,GAAgBuH,EAAQvH,GAC9Ep/B,WAAYwmC,KAAcE,EAAaA,EAAWF,GAAcG,EAAQH,GACxE5/B,UAAU,GAGhB,CAAE,OAAO+B,EAAgBoO,EAAGhuB,EAAG29C,EACjC,EAAI/9B,EAAkB,SAAwBoO,EAAGhuB,EAAG29C,GAIlD,GAHAnC,EAASxtB,GACThuB,EAAIu9C,EAAcv9C,GAClBw7C,EAASmC,GACLL,EAAgB,IAClB,OAAO19B,EAAgBoO,EAAGhuB,EAAG29C,EAC/B,CAAE,MAAO5mC,GAAqB,CAC9B,GAAI,QAAS4mC,GAAc,QAASA,EAAY,MAAM,IAAIn+B,EAAW,2BAErE,MADI,UAAWm+B,IAAY3vB,EAAEhuB,GAAK29C,EAAWnsC,OACtCwc,CACT,C,oCC1CA,IAAI+jB,EAAc,EAAQ,MACtBntC,EAAO,EAAQ,MACfi5C,EAA6B,EAAQ,MACrC5L,EAA2B,EAAQ,MACnClD,EAAkB,EAAQ,MAC1BwO,EAAgB,EAAQ,KACxBhxB,EAAS,EAAQ,MACjB+wB,EAAiB,EAAQ,MAGzBE,EAA4BvsC,OAAOgd,yBAIvCn0B,EAAQ43B,EAAIqgB,EAAcyL,EAA4B,SAAkCxvB,EAAGhuB,GAGzF,GAFAguB,EAAI+gB,EAAgB/gB,GACpBhuB,EAAIu9C,EAAcv9C,GACds9C,EAAgB,IAClB,OAAOE,EAA0BxvB,EAAGhuB,EACtC,CAAE,MAAO+W,GAAqB,CAC9B,GAAIwV,EAAOyB,EAAGhuB,GAAI,OAAOiyC,GAA0BrtC,EAAKi5C,EAA2BnsB,EAAG1D,EAAGhuB,GAAIguB,EAAEhuB,GACjG,C,oCCpBA,IAAI22C,EAAU,EAAQ,MAClB5H,EAAkB,EAAQ,MAC1B+O,EAAuB,UACvBC,EAAa,EAAQ,MAErBC,EAA+B,iBAAV77B,QAAsBA,QAAUlR,OAAO4T,oBAC5D5T,OAAO4T,oBAAoB1C,QAAU,GAWzCpoB,EAAOD,QAAQ43B,EAAI,SAA6B4c,GAC9C,OAAO0P,GAA+B,WAAhBrH,EAAQrI,GAVX,SAAUA,GAC7B,IACE,OAAOwP,EAAqBxP,EAC9B,CAAE,MAAOv3B,GACP,OAAOgnC,EAAWC,EACpB,CACF,CAKMC,CAAe3P,GACfwP,EAAqB/O,EAAgBT,GAC3C,C,oCCtBA,IAAI4P,EAAqB,EAAQ,MAG7BzG,EAFc,EAAQ,KAEGxxC,OAAO,SAAU,aAK9CnM,EAAQ43B,EAAIzgB,OAAO4T,qBAAuB,SAA6BmJ,GACrE,OAAOkwB,EAAmBlwB,EAAGypB,EAC/B,C,kCCTA39C,EAAQ43B,EAAIzgB,OAAOuS,qB,oCCDnB,IAAI+I,EAAS,EAAQ,MACjBpE,EAAa,EAAQ,MACrBsnB,EAAW,EAAQ,MACnB+H,EAAY,EAAQ,MACpB2G,EAA2B,EAAQ,MAEnCpC,EAAWvE,EAAU,YACrB71B,EAAU1Q,OACVmtC,EAAkBz8B,EAAQ1hB,UAK9BlG,EAAOD,QAAUqkD,EAA2Bx8B,EAAQE,eAAiB,SAAUmM,GAC7E,IAAIzN,EAASkvB,EAASzhB,GACtB,GAAIzB,EAAOhM,EAAQw7B,GAAW,OAAOx7B,EAAOw7B,GAC5C,IAAI77C,EAAcqgB,EAAOrgB,YACzB,OAAIioB,EAAWjoB,IAAgBqgB,aAAkBrgB,EACxCA,EAAYD,UACZsgB,aAAkBoB,EAAUy8B,EAAkB,IACzD,C,oCCpBA,IAAI7O,EAAc,EAAQ,MAE1Bx1C,EAAOD,QAAUy1C,EAAY,CAAC,EAAEsJ,c,oCCFhC,IAAItJ,EAAc,EAAQ,MACtBhjB,EAAS,EAAQ,MACjBwiB,EAAkB,EAAQ,MAC1B7yC,EAAU,gBACVu7C,EAAa,EAAQ,MAErB/7C,EAAO6zC,EAAY,GAAG7zC,MAE1B3B,EAAOD,QAAU,SAAUymB,EAAQgD,GACjC,IAGIpV,EAHA6f,EAAI+gB,EAAgBxuB,GACpB5lB,EAAI,EACJsuB,EAAS,GAEb,IAAK9a,KAAO6f,GAAIzB,EAAOkrB,EAAYtpC,IAAQoe,EAAOyB,EAAG7f,IAAQzS,EAAKutB,EAAQ9a,GAE1E,KAAOoV,EAAMloB,OAASV,GAAO4xB,EAAOyB,EAAG7f,EAAMoV,EAAM5oB,SAChDuB,EAAQ+sB,EAAQ9a,IAAQzS,EAAKutB,EAAQ9a,IAExC,OAAO8a,CACT,C,oCCnBA,IAAIi1B,EAAqB,EAAQ,MAC7BxC,EAAc,EAAQ,KAK1B3hD,EAAOD,QAAUmX,OAAO4P,MAAQ,SAAcmN,GAC5C,OAAOkwB,EAAmBlwB,EAAG0tB,EAC/B,C,kCCRA,IAAI2C,EAAwB,CAAC,EAAE5vB,qBAE3BR,EAA2Bhd,OAAOgd,yBAGlCqwB,EAAcrwB,IAA6BowB,EAAsBz5C,KAAK,CAAE,EAAG,GAAK,GAIpF9K,EAAQ43B,EAAI4sB,EAAc,SAA8BtH,GACtD,IAAItoB,EAAaT,EAAyBnsB,KAAMk1C,GAChD,QAAStoB,GAAcA,EAAWzX,UACpC,EAAIonC,C,oCCXJ,IAAIE,EAAsB,EAAQ,MAC9BzP,EAAW,EAAQ,MACnB0P,EAAyB,EAAQ,MACjCC,EAAqB,EAAQ,IAMjC1kD,EAAOD,QAAUmX,OAAOC,iBAAmB,aAAe,CAAC,EAAI,WAC7D,IAEIwtC,EAFAC,GAAiB,EACjB38C,EAAO,CAAC,EAEZ,KACE08C,EAASH,EAAoBttC,OAAOhR,UAAW,YAAa,QACrD+B,EAAM,IACb28C,EAAiB38C,aAAgBjG,KACnC,CAAE,MAAOgb,GAAqB,CAC9B,OAAO,SAAwBiX,EAAGpX,GAGhC,OAFA4nC,EAAuBxwB,GACvBywB,EAAmB7nC,GACdk4B,EAAS9gB,IACV2wB,EAAgBD,EAAO1wB,EAAGpX,GACzBoX,EAAEtM,UAAY9K,EACZoX,GAHkBA,CAI3B,CACF,CAjB+D,QAiBzDrb,E,oCC3BN,IAAI4+B,EAAwB,EAAQ,MAChCoF,EAAU,EAAQ,MAItB58C,EAAOD,QAAUy3C,EAAwB,CAAC,EAAEpxC,SAAW,WACrD,MAAO,WAAaw2C,EAAQ70C,MAAQ,GACtC,C,mCCPA,IAAI8C,EAAO,EAAQ,MACfujB,EAAa,EAAQ,MACrB2mB,EAAW,EAAQ,MAEnBtvB,EAAanO,UAIjBtX,EAAOD,QAAU,SAAU0U,EAAOowC,GAChC,IAAI5/B,EAAIjQ,EACR,GAAa,WAAT6vC,GAAqBz2B,EAAWnJ,EAAKxQ,EAAMrO,YAAc2uC,EAAS//B,EAAMnK,EAAKoa,EAAIxQ,IAAS,OAAOO,EACrG,GAAIoZ,EAAWnJ,EAAKxQ,EAAMpO,WAAa0uC,EAAS//B,EAAMnK,EAAKoa,EAAIxQ,IAAS,OAAOO,EAC/E,GAAa,WAAT6vC,GAAqBz2B,EAAWnJ,EAAKxQ,EAAMrO,YAAc2uC,EAAS//B,EAAMnK,EAAKoa,EAAIxQ,IAAS,OAAOO,EACrG,MAAM,IAAIyQ,EAAW,0CACvB,C,gCCdAzlB,EAAOD,QAAU,CAAC,C,oCCAlB,IAAIi9C,EAAoB,EAAQ,MAE5Bv3B,EAAanO,UAIjBtX,EAAOD,QAAU,SAAUw0C,GACzB,GAAIyI,EAAkBzI,GAAK,MAAM,IAAI9uB,EAAW,wBAA0B8uB,GAC1E,OAAOA,CACT,C,oCCTA,IAAIiD,EAAwB,EAAQ,MAChCv6B,EAAiB,UACjBm7B,EAA8B,EAAQ,MACtC5lB,EAAS,EAAQ,MACjBpsB,EAAW,EAAQ,MAGnBsxC,EAFkB,EAAQ,KAEVZ,CAAgB,eAEpC92C,EAAOD,QAAU,SAAUw0C,EAAIuQ,EAAKtJ,EAAQuJ,GAC1C,IAAI/mC,EAASw9B,EAASjH,EAAKA,GAAMA,EAAGruC,UAChC8X,IACGwU,EAAOxU,EAAQ05B,IAClBz6B,EAAee,EAAQ05B,EAAe,CAAE3zB,cAAc,EAAMtM,MAAOqtC,IAEjEC,IAAevN,GACjBY,EAA4Bp6B,EAAQ,WAAY5X,GAGtD,C,oCCnBA,IAAIo3C,EAAS,EAAQ,MACjBwH,EAAM,EAAQ,MAEdl+B,EAAO02B,EAAO,QAElBx9C,EAAOD,QAAU,SAAUqU,GACzB,OAAO0S,EAAK1S,KAAS0S,EAAK1S,GAAO4wC,EAAI5wC,GACvC,C,oCCPA,IAAIqrC,EAAU,EAAQ,MAClBp3B,EAAa,EAAQ,MACrB48B,EAAuB,EAAQ,MAE/BC,EAAS,qBACT9H,EAAQp9C,EAAOD,QAAUsoB,EAAW68B,IAAWD,EAAqBC,EAAQ,CAAC,IAEhF9H,EAAMxiB,WAAawiB,EAAMxiB,SAAW,KAAKj5B,KAAK,CAC7Cg5B,QAAS,SACTwqB,KAAM1F,EAAU,OAAS,SACzB2F,UAAW,4CACXC,QAAS,2DACTntB,OAAQ,uC,oCCZV,IAAIklB,EAAQ,EAAQ,MAEpBp9C,EAAOD,QAAU,SAAUqU,EAAKqD,GAC9B,OAAO2lC,EAAMhpC,KAASgpC,EAAMhpC,GAAOqD,GAAS,CAAC,EAC/C,C,oCCJA,IAAI+9B,EAAc,EAAQ,MACtB8P,EAAsB,EAAQ,MAC9Bl/C,EAAW,EAAQ,KACnBq+C,EAAyB,EAAQ,MAEjCv/C,EAASswC,EAAY,GAAGtwC,QACxB/D,EAAaq0C,EAAY,GAAGr0C,YAC5Bo2C,EAAc/B,EAAY,GAAGzxC,OAE7BoxC,EAAe,SAAUoQ,GAC3B,OAAO,SAAUlQ,EAAO73B,GACtB,IAGI+C,EAAOilC,EAHP5c,EAAIxiC,EAASq+C,EAAuBpP,IACpCvnB,EAAWw3B,EAAoB9nC,GAC/BjI,EAAOqzB,EAAEtnC,OAEb,OAAIwsB,EAAW,GAAKA,GAAYvY,EAAagwC,EAAoB,QAAK3sC,GACtE2H,EAAQpf,EAAWynC,EAAG9a,IACP,OAAUvN,EAAQ,OAAUuN,EAAW,IAAMvY,IACtDiwC,EAASrkD,EAAWynC,EAAG9a,EAAW,IAAM,OAAU03B,EAAS,MAC3DD,EACErgD,EAAO0jC,EAAG9a,GACVvN,EACFglC,EACEhO,EAAY3O,EAAG9a,EAAUA,EAAW,GACV03B,EAAS,OAAlCjlC,EAAQ,OAAU,IAA0B,KACvD,CACF,EAEAvgB,EAAOD,QAAU,CAGf0lD,OAAQtQ,GAAa,GAGrBjwC,OAAQiwC,GAAa,G,oCCjCvB,IAAI4B,EAAa,EAAQ,KACrBF,EAAQ,EAAQ,MAGhB/B,EAFa,EAAQ,MAEAhwC,OAGzB9E,EAAOD,UAAYmX,OAAOuS,wBAA0BotB,GAAM,WACxD,IAAI6O,EAASjvC,OAAO,oBAKpB,OAAQq+B,EAAQ4Q,MAAaxuC,OAAOwuC,aAAmBjvC,UAEpDA,OAAO+9B,MAAQuC,GAAcA,EAAa,EAC/C,G,oCCjBA,IAAIlsC,EAAO,EAAQ,MACfsyC,EAAa,EAAQ,MACrBrG,EAAkB,EAAQ,MAC1B8I,EAAgB,EAAQ,MAE5B5/C,EAAOD,QAAU,WACf,IAAI0W,EAAS0mC,EAAW,UACpBwI,EAAkBlvC,GAAUA,EAAOvQ,UACnCG,EAAUs/C,GAAmBA,EAAgBt/C,QAC7Cu/C,EAAe9O,EAAgB,eAE/B6O,IAAoBA,EAAgBC,IAItChG,EAAc+F,EAAiBC,GAAc,SAAUC,GACrD,OAAOh7C,EAAKxE,EAAS0B,KACvB,GAAG,CAAE+9C,MAAO,GAEhB,C,oCCnBA,IAAI3I,EAAa,EAAQ,MACrB3H,EAAc,EAAQ,MAEtB/+B,EAAS0mC,EAAW,UACpB4I,EAAStvC,EAAOsvC,OAChBC,EAAkBxQ,EAAY/+B,EAAOvQ,UAAUG,SAInDrG,EAAOD,QAAU0W,EAAOwvC,oBAAsB,SAA4BxuC,GACxE,IACE,YAA0CmB,IAAnCmtC,EAAOC,EAAgBvuC,GAChC,CAAE,MAAOuF,GACP,OAAO,CACT,CACF,C,oCCHA,IAZA,IAAIwgC,EAAS,EAAQ,MACjBL,EAAa,EAAQ,MACrB3H,EAAc,EAAQ,MACtB0Q,EAAW,EAAQ,MACnBpP,EAAkB,EAAQ,MAE1BrgC,EAAS0mC,EAAW,UACpBgJ,EAAqB1vC,EAAO2vC,kBAC5Bt7B,EAAsBqyB,EAAW,SAAU,uBAC3C6I,EAAkBxQ,EAAY/+B,EAAOvQ,UAAUG,SAC/CggD,EAAwB7I,EAAO,OAE1B58C,EAAI,EAAG0lD,EAAax7B,EAAoBrU,GAAS8vC,EAAmBD,EAAWhlD,OAAQV,EAAI2lD,EAAkB3lD,IAEpH,IACE,IAAI4lD,EAAYF,EAAW1lD,GACvBslD,EAASzvC,EAAO+vC,KAAa1P,EAAgB0P,EACnD,CAAE,MAAOxpC,GAAqB,CAMhChd,EAAOD,QAAU,SAA2B0X,GAC1C,GAAI0uC,GAAsBA,EAAmB1uC,GAAQ,OAAO,EAC5D,IAEE,IADA,IAAIiuC,EAASM,EAAgBvuC,GACpB5T,EAAI,EAAGijB,EAAOgE,EAAoBu7B,GAAwBtJ,EAAaj2B,EAAKxlB,OAAQuC,EAAIk5C,EAAYl5C,IAE3G,GAAIwiD,EAAsBv/B,EAAKjjB,KAAO6hD,EAAQ,OAAO,CAEzD,CAAE,MAAO1oC,GAAqB,CAC9B,OAAO,CACT,C,oCCjCA,IAAIypC,EAAgB,EAAQ,MAG5BzmD,EAAOD,QAAU0mD,KAAmBhwC,OAAY,OAAOA,OAAOsvC,M,oCCH9D,IAAIT,EAAsB,EAAQ,MAE9B1gD,EAAMjC,KAAKiC,IACXD,EAAMhC,KAAKgC,IAKf3E,EAAOD,QAAU,SAAUkuB,EAAO3sB,GAChC,IAAIw7B,EAAUwoB,EAAoBr3B,GAClC,OAAO6O,EAAU,EAAIl4B,EAAIk4B,EAAUx7B,EAAQ,GAAKqD,EAAIm4B,EAASx7B,EAC/D,C,oCCVA,IAAIm0C,EAAgB,EAAQ,MACxBgP,EAAyB,EAAQ,MAErCzkD,EAAOD,QAAU,SAAUw0C,GACzB,OAAOkB,EAAcgP,EAAuBlQ,GAC9C,C,oCCNA,IAAIgN,EAAQ,EAAQ,MAIpBvhD,EAAOD,QAAU,SAAU60C,GACzB,IAAIvhB,GAAUuhB,EAEd,OAAOvhB,GAAWA,GAAqB,IAAXA,EAAe,EAAIkuB,EAAMluB,EACvD,C,oCCRA,IAAIiyB,EAAsB,EAAQ,MAE9B3gD,EAAMhC,KAAKgC,IAIf3E,EAAOD,QAAU,SAAU60C,GACzB,IAAI3zC,EAAMqkD,EAAoB1Q,GAC9B,OAAO3zC,EAAM,EAAI0D,EAAI1D,EAAK,kBAAoB,CAChD,C,oCCTA,IAAIwjD,EAAyB,EAAQ,MAEjC78B,EAAU1Q,OAIdlX,EAAOD,QAAU,SAAU60C,GACzB,OAAOhtB,EAAQ68B,EAAuB7P,GACxC,C,oCCRA,IAAI/pC,EAAO,EAAQ,MACfkqC,EAAW,EAAQ,MACnBmR,EAAW,EAAQ,MACnBQ,EAAY,EAAQ,MACpBC,EAAsB,EAAQ,KAC9B7P,EAAkB,EAAQ,MAE1BrxB,EAAanO,UACbsuC,EAAe9O,EAAgB,eAInC92C,EAAOD,QAAU,SAAU0U,EAAOowC,GAChC,IAAK9P,EAAStgC,IAAUyxC,EAASzxC,GAAQ,OAAOA,EAChD,IACIya,EADA03B,EAAeF,EAAUjyC,EAAOmxC,GAEpC,GAAIgB,EAAc,CAGhB,QAFahuC,IAATisC,IAAoBA,EAAO,WAC/B31B,EAASrkB,EAAK+7C,EAAcnyC,EAAOowC,IAC9B9P,EAAS7lB,IAAWg3B,EAASh3B,GAAS,OAAOA,EAClD,MAAM,IAAIzJ,EAAW,0CACvB,CAEA,YADa7M,IAATisC,IAAoBA,EAAO,UACxB8B,EAAoBlyC,EAAOowC,EACpC,C,mCCxBA,IAAI3rC,EAAc,EAAQ,MACtBgtC,EAAW,EAAQ,MAIvBlmD,EAAOD,QAAU,SAAU60C,GACzB,IAAIxgC,EAAM8E,EAAY07B,EAAU,UAChC,OAAOsR,EAAS9xC,GAAOA,EAAMA,EAAM,EACrC,C,oCCRA,IAGInM,EAAO,CAAC,EAEZA,EALsB,EAAQ,KAEV6uC,CAAgB,gBAGd,IAEtB92C,EAAOD,QAA2B,eAAjB+E,OAAOmD,E,mCCPxB,IAAI20C,EAAU,EAAQ,MAElB9H,EAAUhwC,OAEd9E,EAAOD,QAAU,SAAU60C,GACzB,GAA0B,WAAtBgI,EAAQhI,GAAwB,MAAM,IAAIt9B,UAAU,6CACxD,OAAOw9B,EAAQF,EACjB,C,gCCPA,IAAIE,EAAUhwC,OAEd9E,EAAOD,QAAU,SAAU60C,GACzB,IACE,OAAOE,EAAQF,EACjB,CAAE,MAAO53B,GACP,MAAO,QACT,CACF,C,oCCRA,IAAIw4B,EAAc,EAAQ,MAEtB7sC,EAAK,EACLk+C,EAAUlkD,KAAKsI,SACf7E,EAAWovC,EAAY,GAAIpvC,UAE/BpG,EAAOD,QAAU,SAAUqU,GACzB,MAAO,gBAAqBwE,IAARxE,EAAoB,GAAKA,GAAO,KAAOhO,IAAWuC,EAAKk+C,EAAS,GACtF,C,oCCPA,IAAIJ,EAAgB,EAAQ,MAE5BzmD,EAAOD,QAAU0mD,IACdhwC,OAAO+9B,MACkB,iBAAnB/9B,OAAO6X,Q,oCCLhB,IAAI0pB,EAAc,EAAQ,MACtBnB,EAAQ,EAAQ,MAIpB72C,EAAOD,QAAUi4C,GAAenB,GAAM,WAEpC,OAGiB,KAHV3/B,OAAO+F,gBAAe,WAA0B,GAAG,YAAa,CACrExF,MAAO,GACPqM,UAAU,IACT5d,SACL,G,mCCXA,IAAImiB,EAAa,EAAQ,MACrB+F,EAAa,EAAQ,MAErB6D,EAAU5J,EAAW4J,QAEzBjyB,EAAOD,QAAUquB,EAAW6D,IAAY,cAAchqB,KAAKnD,OAAOmtB,G,mCCLlE,IAAIwiB,EAAO,EAAQ,MACfjiB,EAAS,EAAQ,MACjBs0B,EAA+B,EAAQ,KACvC7pC,EAAiB,UAErBjd,EAAOD,QAAU,SAAUu/C,GACzB,IAAI7oC,EAASg+B,EAAKh+B,SAAWg+B,EAAKh+B,OAAS,CAAC,GACvC+b,EAAO/b,EAAQ6oC,IAAOriC,EAAexG,EAAQ6oC,EAAM,CACtD7nC,MAAOqvC,EAA6BnvB,EAAE2nB,IAE1C,C,mCCVA,IAAIxI,EAAkB,EAAQ,MAE9B/2C,EAAQ43B,EAAImf,C,oCCFZ,IAAIzuB,EAAa,EAAQ,MACrBm1B,EAAS,EAAQ,MACjBhrB,EAAS,EAAQ,MACjBwyB,EAAM,EAAQ,MACdyB,EAAgB,EAAQ,MACxB1H,EAAoB,EAAQ,MAE5BtoC,EAAS4R,EAAW5R,OACpB4vC,EAAwB7I,EAAO,OAC/BuJ,EAAwBhI,EAAoBtoC,EAAY,KAAKA,EAASA,GAAUA,EAAOuwC,eAAiBhC,EAE5GhlD,EAAOD,QAAU,SAAU8E,GAKvB,OAJG2tB,EAAO6zB,EAAuBxhD,KACjCwhD,EAAsBxhD,GAAQ4hD,GAAiBj0B,EAAO/b,EAAQ5R,GAC1D4R,EAAO5R,GACPkiD,EAAsB,UAAYliD,IAC/BwhD,EAAsBxhD,EACjC,C,oCCjBA,IAAI26C,EAAI,EAAQ,MACZ3I,EAAQ,EAAQ,MAChB99B,EAAU,EAAQ,MAClBg8B,EAAW,EAAQ,MACnBW,EAAW,EAAQ,MACnBR,EAAoB,EAAQ,KAC5B+R,EAA2B,EAAQ,MACnCC,EAAiB,EAAQ,MACzBvR,EAAqB,EAAQ,MAC7BwR,EAA+B,EAAQ,MACvCrQ,EAAkB,EAAQ,MAC1BC,EAAa,EAAQ,KAErBqQ,EAAuBtQ,EAAgB,sBAKvCuQ,EAA+BtQ,GAAc,KAAOF,GAAM,WAC5D,IAAIz9B,EAAQ,GAEZ,OADAA,EAAMguC,IAAwB,EACvBhuC,EAAMlN,SAAS,KAAOkN,CAC/B,IAEIkuC,EAAqB,SAAUrzB,GACjC,IAAK8gB,EAAS9gB,GAAI,OAAO,EACzB,IAAIszB,EAAatzB,EAAEmzB,GACnB,YAAsBxuC,IAAf2uC,IAA6BA,EAAaxuC,EAAQkb,EAC3D,EAOAurB,EAAE,CAAExhC,OAAQ,QAASnB,OAAO,EAAMipC,MAAO,EAAGjK,QAL9BwL,IAAiCF,EAA6B,WAKd,CAE5Dj7C,OAAQ,SAAgBkL,GACtB,IAGIxW,EAAG2D,EAAGjD,EAAQL,EAAKwiB,EAHnBwQ,EAAIyhB,EAAS3tC,MACbs+B,EAAIsP,EAAmB1hB,EAAG,GAC1BzwB,EAAI,EAER,IAAK5C,GAAK,EAAGU,EAASyJ,UAAUzJ,OAAQV,EAAIU,EAAQV,IAElD,GAAI0mD,EADJ7jC,GAAW,IAAP7iB,EAAWqzB,EAAIlpB,UAAUnK,IAI3B,IAFAK,EAAMi0C,EAAkBzxB,GACxBwjC,EAAyBzjD,EAAIvC,GACxBsD,EAAI,EAAGA,EAAItD,EAAKsD,IAAKf,IAASe,KAAKkf,GAAGyjC,EAAe7gB,EAAG7iC,EAAGigB,EAAElf,SAElE0iD,EAAyBzjD,EAAI,GAC7B0jD,EAAe7gB,EAAG7iC,IAAKigB,GAI3B,OADA4iB,EAAE/kC,OAASkC,EACJ6iC,CACT,G,oCCvDF,IAAI2O,EAAkB,EAAQ,MAC1BwS,EAAmB,EAAQ,MAC3BrI,EAAY,EAAQ,MACpBsI,EAAsB,EAAQ,MAC9BxqC,EAAiB,UACjByqC,EAAiB,EAAQ,KACzBC,EAAyB,EAAQ,MACjClI,EAAU,EAAQ,MAClBzH,EAAc,EAAQ,MAEtB4P,EAAiB,iBACjBC,EAAmBJ,EAAoBt9C,IACvC29C,EAAmBL,EAAoBzJ,UAAU4J,GAYrD5nD,EAAOD,QAAU2nD,EAAe1lD,MAAO,SAAS,SAAU+lD,EAAUC,GAClEH,EAAiB9/C,KAAM,CACrB+Q,KAAM8uC,EACN5pC,OAAQg3B,EAAgB+S,GACxB95B,MAAO,EACP+5B,KAAMA,GAIV,IAAG,WACD,IAAIn7B,EAAQi7B,EAAiB//C,MACzBiW,EAAS6O,EAAM7O,OACfiQ,EAAQpB,EAAMoB,QAClB,IAAKjQ,GAAUiQ,GAASjQ,EAAO1c,OAE7B,OADAurB,EAAM7O,OAAS,KACR2pC,OAAuB/uC,GAAW,GAE3C,OAAQiU,EAAMm7B,MACZ,IAAK,OAAQ,OAAOL,EAAuB15B,GAAO,GAClD,IAAK,SAAU,OAAO05B,EAAuB3pC,EAAOiQ,IAAQ,GAC5D,OAAO05B,EAAuB,CAAC15B,EAAOjQ,EAAOiQ,KAAS,EAC1D,GAAG,UAKH,IAAIkzB,EAAShC,EAAU8I,UAAY9I,EAAUn9C,MAQ7C,GALAwlD,EAAiB,QACjBA,EAAiB,UACjBA,EAAiB,YAGZ/H,GAAWzH,GAA+B,WAAhBmJ,EAAOt8C,KAAmB,IACvDoY,EAAekkC,EAAQ,OAAQ,CAAE1pC,MAAO,UAC1C,CAAE,MAAOuF,GAAqB,C,sDC5D9B,IAAIwiC,EAAI,EAAQ,MACZrC,EAAa,EAAQ,MACrB1gC,EAAQ,EAAQ,MAChB5R,EAAO,EAAQ,MACf2qC,EAAc,EAAQ,MACtBqB,EAAQ,EAAQ,MAChBzoB,EAAa,EAAQ,MACrB83B,EAAW,EAAQ,MACnBlC,EAAa,EAAQ,MACrBkE,EAAsB,EAAQ,MAC9BzB,EAAgB,EAAQ,MAExB3R,EAAUhwC,OACVqjD,EAAahL,EAAW,OAAQ,aAChCrqB,EAAO0iB,EAAY,IAAI1iB,MACvB5tB,EAASswC,EAAY,GAAGtwC,QACxB/D,EAAaq0C,EAAY,GAAGr0C,YAC5B+G,EAAUstC,EAAY,GAAGttC,SACzBkgD,EAAiB5S,EAAY,GAAIpvC,UAEjCiiD,EAAS,mBACTC,EAAM,oBACN3sC,EAAK,oBAEL4sC,GAA4B9B,GAAiB5P,GAAM,WACrD,IAAI6O,EAASvI,EAAW,SAAXA,CAAqB,uBAElC,MAAgC,WAAzBgL,EAAW,CAACzC,KAEgB,OAA9ByC,EAAW,CAAEzkD,EAAGgiD,KAEe,OAA/ByC,EAAWjxC,OAAOwuC,GACzB,IAGI8C,EAAqB3R,GAAM,WAC7B,MAAsC,qBAA/BsR,EAAW,iBACY,cAAzBA,EAAW,SAClB,IAEIM,EAA0B,SAAUlU,EAAIzb,GAC1C,IAAI/vB,EAAOi7C,EAAWj5C,WAClB29C,EAAYR,EAAoBpvB,GACpC,GAAK1K,EAAWs6B,SAAsB9vC,IAAP27B,IAAoB2R,EAAS3R,GAM5D,OALAxrC,EAAK,GAAK,SAAUqL,EAAKqD,GAGvB,GADI2W,EAAWs6B,KAAYjxC,EAAQ5M,EAAK69C,EAAW3gD,KAAM+sC,EAAQ1gC,GAAMqD,KAClEyuC,EAASzuC,GAAQ,OAAOA,CAC/B,EACOgF,EAAM0rC,EAAY,KAAMp/C,EACjC,EAEI4/C,EAAe,SAAUv1B,EAAOvY,EAAQnD,GAC1C,IAAIkxC,EAAO1jD,EAAOwS,EAAQmD,EAAS,GAC/B+c,EAAO1yB,EAAOwS,EAAQmD,EAAS,GACnC,OAAKiY,EAAKw1B,EAAKl1B,KAAWN,EAAKnX,EAAIic,IAAW9E,EAAKnX,EAAIyX,KAAWN,EAAKw1B,EAAKM,GACnE,MAAQR,EAAejnD,EAAWiyB,EAAO,GAAI,IAC7CA,CACX,EAEI+0B,GAGF3I,EAAE,CAAExhC,OAAQ,OAAQy9B,MAAM,EAAMqK,MAAO,EAAGjK,OAAQ0M,GAA4BC,GAAsB,CAElG9hC,UAAW,SAAmB6tB,EAAIzb,EAAUC,GAC1C,IAAIhwB,EAAOi7C,EAAWj5C,WAClBmkB,EAASzS,EAAM8rC,EAA2BE,EAA0BN,EAAY,KAAMp/C,GAC1F,OAAOy/C,GAAuC,iBAAVt5B,EAAqBhnB,EAAQgnB,EAAQm5B,EAAQM,GAAgBz5B,CACnG,G,oCCrEJ,IAAI7G,EAAa,EAAQ,MACJ,EAAQ,KAI7B62B,CAAe72B,EAAW5B,KAAM,QAAQ,E,sDCLxC,IAAI+4B,EAAI,EAAQ,MACZxH,EAAc,EAAQ,MACtB/6B,EAAiB,UAKrBuiC,EAAE,CAAExhC,OAAQ,SAAUy9B,MAAM,EAAMI,OAAQ3kC,OAAO+F,iBAAmBA,EAAgBu3B,MAAOwD,GAAe,CACxG/6B,eAAgBA,G,oCCRlB,IAAIuiC,EAAI,EAAQ,MACZiH,EAAgB,EAAQ,MACxB5P,EAAQ,EAAQ,MAChBgS,EAA8B,EAAQ,MACtCnT,EAAW,EAAQ,MAQvB8J,EAAE,CAAExhC,OAAQ,SAAUy9B,MAAM,EAAMI,QAJpB4K,GAAiB5P,GAAM,WAAcgS,EAA4BlxB,EAAE,EAAI,KAIjC,CAClDlO,sBAAuB,SAA+B8qB,GACpD,IAAIuU,EAAyBD,EAA4BlxB,EACzD,OAAOmxB,EAAyBA,EAAuBpT,EAASnB,IAAO,EACzE,G,wEChBF,IAAIrvC,EAAS,eACTkB,EAAW,EAAQ,KACnBqhD,EAAsB,EAAQ,MAC9BC,EAAiB,EAAQ,KACzBC,EAAyB,EAAQ,MAEjCoB,EAAkB,kBAClBlB,EAAmBJ,EAAoBt9C,IACvC29C,EAAmBL,EAAoBzJ,UAAU+K,GAIrDrB,EAAe5iD,OAAQ,UAAU,SAAUijD,GACzCF,EAAiB9/C,KAAM,CACrB+Q,KAAMiwC,EACNrxC,OAAQtR,EAAS2hD,GACjB95B,MAAO,GAIX,IAAG,WACD,IAGI+6B,EAHAn8B,EAAQi7B,EAAiB//C,MACzB2P,EAASmV,EAAMnV,OACfuW,EAAQpB,EAAMoB,MAElB,OAAIA,GAASvW,EAAOpW,OAAeqmD,OAAuB/uC,GAAW,IACrEowC,EAAQ9jD,EAAOwS,EAAQuW,GACvBpB,EAAMoB,OAAS+6B,EAAM1nD,OACdqmD,EAAuBqB,GAAO,GACvC,G,oCC7B4B,EAAQ,IAIpCC,CAAsB,gB,oCCJtB,IAAIzJ,EAAI,EAAQ,MACZn3B,EAAa,EAAQ,MACrBxd,EAAO,EAAQ,MACf2qC,EAAc,EAAQ,MACtBiK,EAAU,EAAQ,MAClBzH,EAAc,EAAQ,MACtByO,EAAgB,EAAQ,MACxB5P,EAAQ,EAAQ,MAChBrkB,EAAS,EAAQ,MACjBssB,EAAgB,EAAQ,MACxB2C,EAAW,EAAQ,MACnBzM,EAAkB,EAAQ,MAC1BwO,EAAgB,EAAQ,KACxB7P,EAAY,EAAQ,KACpBuE,EAA2B,EAAQ,MACnCgR,EAAqB,EAAQ,MAC7B9F,EAAa,EAAQ,MACrB+F,EAA4B,EAAQ,MACpCC,EAA8B,EAAQ,MACtCP,EAA8B,EAAQ,MACtCQ,EAAiC,EAAQ,MACzCpR,EAAuB,EAAQ,MAC/ByJ,EAAyB,EAAQ,MACjCoC,EAA6B,EAAQ,MACrClE,EAAgB,EAAQ,MACxB0J,EAAwB,EAAQ,MAChC9L,EAAS,EAAQ,MACjBC,EAAY,EAAQ,MACpBC,EAAa,EAAQ,MACrBsH,EAAM,EAAQ,MACdlO,EAAkB,EAAQ,MAC1BgQ,EAA+B,EAAQ,KACvCmC,EAAwB,EAAQ,KAChCM,EAA0B,EAAQ,MAClCrK,EAAiB,EAAQ,MACzBuI,EAAsB,EAAQ,MAC9B+B,EAAW,eAEXC,EAAShM,EAAU,UACnBiM,EAAS,SACT5H,EAAY,YAEZ+F,EAAmBJ,EAAoBt9C,IACvC29C,EAAmBL,EAAoBzJ,UAAU0L,GAEjDrF,EAAkBntC,OAAO4qC,GACzB9C,EAAU32B,EAAW5R,OACrBkvC,EAAkB3G,GAAWA,EAAQ8C,GACrC9qC,EAAaqR,EAAWrR,WACxBM,EAAY+Q,EAAW/Q,UACvBqyC,EAAUthC,EAAWshC,QACrBC,EAAiCP,EAA+B1xB,EAChEkyB,EAAuB5R,EAAqBtgB,EAC5CmyB,EAA4BV,EAA4BzxB,EACxDoyB,GAA6BjG,EAA2BnsB,EACxDh2B,GAAO6zC,EAAY,GAAG7zC,MAEtBqoD,GAAaxM,EAAO,WACpByM,GAAyBzM,EAAO,cAChC6I,GAAwB7I,EAAO,OAG/B0M,IAAcP,IAAYA,EAAQ7H,KAAe6H,EAAQ7H,GAAWqI,UAGpEC,GAAyB,SAAUn2B,EAAGhuB,EAAG29C,GAC3C,IAAIyG,EAA4BT,EAA+BvF,EAAiBp+C,GAC5EokD,UAAkChG,EAAgBp+C,GACtD4jD,EAAqB51B,EAAGhuB,EAAG29C,GACvByG,GAA6Bp2B,IAAMowB,GACrCwF,EAAqBxF,EAAiBp+C,EAAGokD,EAE7C,EAEIC,GAAsBtS,GAAenB,GAAM,WAC7C,OAEU,IAFHqS,EAAmBW,EAAqB,CAAC,EAAG,IAAK,CACtD1sC,IAAK,WAAc,OAAO0sC,EAAqB9hD,KAAM,IAAK,CAAE0P,MAAO,IAAK/T,CAAG,KACzEA,CACN,IAAK0mD,GAAyBP,EAE1B9N,GAAO,SAAU9H,EAAKsW,GACxB,IAAI7E,EAASsE,GAAW/V,GAAOiV,EAAmBvD,GAOlD,OANAkC,EAAiBnC,EAAQ,CACvB5sC,KAAM4wC,EACNzV,IAAKA,EACLsW,YAAaA,IAEVvS,IAAa0N,EAAO6E,YAAcA,GAChC7E,CACT,EAEI7/B,GAAkB,SAAwBoO,EAAGhuB,EAAG29C,GAC9C3vB,IAAMowB,GAAiBx+B,GAAgBokC,GAAwBhkD,EAAG29C,GACtEnC,EAASxtB,GACT,IAAI7f,EAAMovC,EAAcv9C,GAExB,OADAw7C,EAASmC,GACLpxB,EAAOw3B,GAAY51C,IAChBwvC,EAAW1mC,YAIVsV,EAAOyB,EAAGw1B,IAAWx1B,EAAEw1B,GAAQr1C,KAAM6f,EAAEw1B,GAAQr1C,IAAO,GAC1DwvC,EAAasF,EAAmBtF,EAAY,CAAE1mC,WAAYg7B,EAAyB,GAAG,OAJjF1lB,EAAOyB,EAAGw1B,IAASI,EAAqB51B,EAAGw1B,EAAQvR,EAAyB,EAAGgR,EAAmB,QACvGj1B,EAAEw1B,GAAQr1C,IAAO,GAIVk2C,GAAoBr2B,EAAG7f,EAAKwvC,IAC9BiG,EAAqB51B,EAAG7f,EAAKwvC,EACxC,EAEI4G,GAAoB,SAA0Bv2B,EAAGivB,GACnDzB,EAASxtB,GACT,IAAIw2B,EAAazV,EAAgBkO,GAC7Bp8B,EAAOs8B,EAAWqH,GAAYv+C,OAAO48C,GAAuB2B,IAIhE,OAHAjB,EAAS1iC,GAAM,SAAU1S,GAClB4jC,IAAentC,EAAKy5C,GAAuBmG,EAAYr2C,IAAMyR,GAAgBoO,EAAG7f,EAAKq2C,EAAWr2C,GACvG,IACO6f,CACT,EAMIqwB,GAAwB,SAA8BrH,GACxD,IAAIh3C,EAAIu9C,EAAcvG,GAClB//B,EAAarS,EAAKk/C,GAA4BhiD,KAAM9B,GACxD,QAAI8B,OAASs8C,GAAmB7xB,EAAOw3B,GAAY/jD,KAAOusB,EAAOy3B,GAAwBhkD,QAClFiX,IAAesV,EAAOzqB,KAAM9B,KAAOusB,EAAOw3B,GAAY/jD,IAAMusB,EAAOzqB,KAAM0hD,IAAW1hD,KAAK0hD,GAAQxjD,KACpGiX,EACN,EAEIumC,GAA4B,SAAkCxvB,EAAGhuB,GACnE,IAAIsuC,EAAKS,EAAgB/gB,GACrB7f,EAAMovC,EAAcv9C,GACxB,GAAIsuC,IAAO8P,IAAmB7xB,EAAOw3B,GAAY51C,IAASoe,EAAOy3B,GAAwB71C,GAAzF,CACA,IAAIugB,EAAai1B,EAA+BrV,EAAIngC,GAIpD,OAHIugB,IAAcnC,EAAOw3B,GAAY51C,IAAUoe,EAAO+hB,EAAIkV,IAAWlV,EAAGkV,GAAQr1C,KAC9EugB,EAAWzX,YAAa,GAEnByX,CAL8F,CAMvG,EAEIovB,GAAuB,SAA6B9vB,GACtD,IAAIzK,EAAQsgC,EAA0B9U,EAAgB/gB,IAClD/E,EAAS,GAIb,OAHAs6B,EAAShgC,GAAO,SAAUpV,GACnBoe,EAAOw3B,GAAY51C,IAASoe,EAAOkrB,EAAYtpC,IAAMzS,GAAKutB,EAAQ9a,EACzE,IACO8a,CACT,EAEI45B,GAAyB,SAAU70B,GACrC,IAAIy2B,EAAsBz2B,IAAMowB,EAC5B76B,EAAQsgC,EAA0BY,EAAsBT,GAAyBjV,EAAgB/gB,IACjG/E,EAAS,GAMb,OALAs6B,EAAShgC,GAAO,SAAUpV,IACpBoe,EAAOw3B,GAAY51C,IAAUs2C,IAAuBl4B,EAAO6xB,EAAiBjwC,IAC9EzS,GAAKutB,EAAQ86B,GAAW51C,GAE5B,IACO8a,CACT,EAIKu3B,IACHzH,EAAU,WACR,GAAIF,EAAc6G,EAAiB59C,MAAO,MAAM,IAAIuP,EAAU,+BAC9D,IAAIizC,EAAex/C,UAAUzJ,aAA2BsX,IAAjB7N,UAAU,GAA+B4oC,EAAU5oC,UAAU,SAAhC6N,EAChEq7B,EAAM+Q,EAAIuF,GACV5F,EAAS,SAAUltC,GACrB,IAAI49B,OAAiBz8B,IAAT7Q,KAAqBsgB,EAAatgB,KAC1CstC,IAAUgP,GAAiBx5C,EAAK85C,EAAQsF,GAAwBxyC,GAChE+a,EAAO6iB,EAAOoU,IAAWj3B,EAAO6iB,EAAMoU,GAASxV,KAAMoB,EAAMoU,GAAQxV,IAAO,GAC9E,IAAItf,EAAaujB,EAAyB,EAAGzgC,GAC7C,IACE6yC,GAAoBjV,EAAOpB,EAAKtf,EAClC,CAAE,MAAO3X,GACP,KAAMA,aAAiBhG,GAAa,MAAMgG,EAC1CotC,GAAuB/U,EAAOpB,EAAKtf,EACrC,CACF,EAEA,OADIqjB,GAAekS,IAAYI,GAAoBjG,EAAiBpQ,EAAK,CAAElwB,cAAc,EAAM5Z,IAAKw6C,IAC7F5I,GAAK9H,EAAKsW,EACnB,EAIA3K,EAFA+F,EAAkB3G,EAAQ8C,GAEK,YAAY,WACzC,OAAOgG,EAAiB//C,MAAMksC,GAChC,IAEA2L,EAAcZ,EAAS,iBAAiB,SAAUuL,GAChD,OAAOxO,GAAKiJ,EAAIuF,GAAcA,EAChC,IAEAzG,EAA2BnsB,EAAI2sB,GAC/BrM,EAAqBtgB,EAAI9R,GACzB67B,EAAuB/pB,EAAI6yB,GAC3BnB,EAA+B1xB,EAAI8rB,GACnC0F,EAA0BxxB,EAAIyxB,EAA4BzxB,EAAIosB,GAC9D8E,EAA4BlxB,EAAImxB,GAEhChC,EAA6BnvB,EAAI,SAAU9yB,GACzC,OAAOk3C,GAAKjF,EAAgBjyC,GAAOA,EACrC,EAEImzC,IAEFsR,EAAsB3D,EAAiB,cAAe,CACpD5hC,cAAc,EACd5G,IAAK,WACH,OAAO2qC,EAAiB//C,MAAMwiD,WAChC,IAEG9K,GACHG,EAAcyE,EAAiB,uBAAwBC,GAAuB,CAAEqG,QAAQ,MAK9FnL,EAAE,CAAEjE,QAAQ,EAAMp1C,aAAa,EAAM41C,MAAM,EAAMF,QAAS4K,EAAejS,MAAOiS,GAAiB,CAC/FhwC,OAAQuoC,IAGVwK,EAASpG,EAAWiD,KAAwB,SAAUxhD,GACpDokD,EAAsBpkD,EACxB,IAEA26C,EAAE,CAAExhC,OAAQ0rC,EAAQjO,MAAM,EAAMI,QAAS4K,GAAiB,CACxDmE,UAAW,WAAcV,IAAa,CAAM,EAC5CW,UAAW,WAAcX,IAAa,CAAO,IAG/C1K,EAAE,CAAExhC,OAAQ,SAAUy9B,MAAM,EAAMI,QAAS4K,EAAejS,MAAOwD,GAAe,CAG9E3uB,OAtHY,SAAgB4K,EAAGivB,GAC/B,YAAsBtqC,IAAfsqC,EAA2BgG,EAAmBj1B,GAAKu2B,GAAkBtB,EAAmBj1B,GAAIivB,EACrG,EAuHEjmC,eAAgB4I,GAGhBw9B,iBAAkBmH,GAGlBt2B,yBAA0BuvB,KAG5BjE,EAAE,CAAExhC,OAAQ,SAAUy9B,MAAM,EAAMI,QAAS4K,GAAiB,CAG1D37B,oBAAqBi5B,KAKvBwF,IAIArK,EAAeF,EAAS0K,GAExBhM,EAAW+L,IAAU,C,sDCrQrB,IAAIjK,EAAI,EAAQ,MACZrC,EAAa,EAAQ,MACrB3qB,EAAS,EAAQ,MACjBpsB,EAAW,EAAQ,KACnBo3C,EAAS,EAAQ,MACjBsN,EAAyB,EAAQ,MAEjCC,EAAyBvN,EAAO,6BAChCwN,EAAyBxN,EAAO,6BAIpCgC,EAAE,CAAExhC,OAAQ,SAAUy9B,MAAM,EAAMI,QAASiP,GAA0B,CACnE,IAAO,SAAU12C,GACf,IAAIsD,EAAStR,EAASgO,GACtB,GAAIoe,EAAOu4B,EAAwBrzC,GAAS,OAAOqzC,EAAuBrzC,GAC1E,IAAIguC,EAASvI,EAAW,SAAXA,CAAqBzlC,GAGlC,OAFAqzC,EAAuBrzC,GAAUguC,EACjCsF,EAAuBtF,GAAUhuC,EAC1BguC,CACT,G,oCCpB0B,EAAQ,IAIpCuD,CAAsB,c,oCCJM,EAAQ,IAIpCA,CAAsB,qB,oCCJM,EAAQ,IAIpCA,CAAsB,W,oCCHtB,EAAQ,MACR,EAAQ,MACR,EAAQ,KACR,EAAQ,MACR,EAAQ,K,mCCLR,IAAIzJ,EAAI,EAAQ,MACZhtB,EAAS,EAAQ,MACjB0zB,EAAW,EAAQ,MACnBvR,EAAc,EAAQ,MACtB6I,EAAS,EAAQ,MACjBsN,EAAyB,EAAQ,MAEjCE,EAAyBxN,EAAO,6BAIpCgC,EAAE,CAAExhC,OAAQ,SAAUy9B,MAAM,EAAMI,QAASiP,GAA0B,CACnE/E,OAAQ,SAAgBriC,GACtB,IAAKwiC,EAASxiC,GAAM,MAAM,IAAIpM,UAAUq9B,EAAYjxB,GAAO,oBAC3D,GAAI8O,EAAOw4B,EAAwBtnC,GAAM,OAAOsnC,EAAuBtnC,EACzE,G,oCCf0B,EAAQ,IAIpCulC,CAAsB,W,oCCJM,EAAQ,IAIpCA,CAAsB,Q,oCCJM,EAAQ,IAIpCA,CAAsB,U,oCCJM,EAAQ,IAIpCA,CAAsB,S,oCCJM,EAAQ,IAIpCA,CAAsB,U,oCCJM,EAAQ,IAIpCA,CAAsB,Q,oCCJtB,IAAIA,EAAwB,EAAQ,KAChCM,EAA0B,EAAQ,MAItCN,EAAsB,eAItBM,G,oCCTA,IAAIpM,EAAa,EAAQ,MACrB8L,EAAwB,EAAQ,KAChC/J,EAAiB,EAAQ,MAI7B+J,EAAsB,eAItB/J,EAAe/B,EAAW,UAAW,S,oCCVT,EAAQ,IAIpC8L,CAAsB,c,mCCJtB,IAAInS,EAAkB,EAAQ,MAC1B75B,EAAiB,UAEjBguC,EAAWnU,EAAgB,YAC3BoF,EAAoB12B,SAAStf,eAIG0S,IAAhCsjC,EAAkB+O,IACpBhuC,EAAei/B,EAAmB+O,EAAU,CAC1CxzC,MAAO,M,oCCViB,EAAQ,IAIpCwxC,CAAsB,e,oCCJM,EAAQ,IAIpCA,CAAsB,gB,oCCJM,EAAQ,IAIpCA,CAAsB,U,oCCJd,EAAQ,KAKhBzJ,CAAE,CAAExhC,OAAQ,SAAUy9B,MAAM,GAAQ,CAClCwK,mBALuB,EAAQ,O,oCCDzB,EAAQ,KAKhBzG,CAAE,CAAExhC,OAAQ,SAAUy9B,MAAM,EAAM52C,KAAM,sBAAwB,CAC9DqmD,aALuB,EAAQ,O,oCCDzB,EAAQ,KAMhB1L,CAAE,CAAExhC,OAAQ,SAAUy9B,MAAM,EAAMI,QAAQ,GAAQ,CAChDuK,kBANsB,EAAQ,O,kCCDxB,EAAQ,KAMhB5G,CAAE,CAAExhC,OAAQ,SAAUy9B,MAAM,EAAM52C,KAAM,oBAAqBg3C,QAAQ,GAAQ,CAC3EsP,YANsB,EAAQ,O,oCCDJ,EAAQ,IAIpClC,CAAsB,U,oCCHM,EAAQ,IAIpCA,CAAsB,c,oCCLM,EAAQ,IAIpCA,CAAsB,W,oCCJM,EAAQ,IAIpCA,CAAsB,a,oCCHM,EAAQ,IAIpCA,CAAsB,e,mCCJM,EAAQ,IAEpCA,CAAsB,a,oCCHtB,EAAQ,MACR,IAAImC,EAAe,EAAQ,MACvB/iC,EAAa,EAAQ,MACrB62B,EAAiB,EAAQ,MACzBC,EAAY,EAAQ,MAExB,IAAK,IAAIkM,KAAmBD,EAC1BlM,EAAe72B,EAAWgjC,GAAkBA,GAC5ClM,EAAUkM,GAAmBlM,EAAUn9C,K,oCCRzC,IAAIsyC,EAAS,EAAQ,MAErBt0C,EAAOD,QAAUu0C,C,oCCFjB,IAAIA,EAAS,EAAQ,MACrB,EAAQ,MAERt0C,EAAOD,QAAUu0C,C,oCCHjB,IAAIA,EAAS,EAAQ,MACrB,EAAQ,MAERt0C,EAAOD,QAAUu0C,C,kCCHjB,IAAIA,EAAS,EAAQ,MAErBt0C,EAAOD,QAAUu0C,C,+DCFbgX,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqB5yC,IAAjB6yC,EACH,OAAOA,EAAa1rD,QAGrB,IAAIC,EAASsrD,EAAyBE,GAAY,CAGjDzrD,QAAS,CAAC,GAOX,OAHA2rD,EAAoBF,GAAU3gD,KAAK7K,EAAOD,QAASC,EAAQA,EAAOD,QAASwrD,GAGpEvrD,EAAOD,OACf,CCrBAwrD,EAAoB/nD,EAAI,SAASxD,GAChC,IAAIk0C,EAASl0C,GAAUA,EAAO2rD,WAC7B,WAAa,OAAO3rD,EAAgB,OAAG,EACvC,WAAa,OAAOA,CAAQ,EAE7B,OADAurD,EAAoBpiD,EAAE+qC,EAAQ,CAAExwC,EAAGwwC,IAC5BA,CACR,ECNAqX,EAAoBpiD,EAAI,SAASpJ,EAAS6rD,GACzC,IAAI,IAAIx3C,KAAOw3C,EACXL,EAAoBtpB,EAAE2pB,EAAYx3C,KAASm3C,EAAoBtpB,EAAEliC,EAASqU,IAC5E8C,OAAO+F,eAAeld,EAASqU,EAAK,CAAE8I,YAAY,EAAMC,IAAKyuC,EAAWx3C,IAG3E,ECPAm3C,EAAoB3rB,EAAI,WACvB,GAA0B,iBAAfvX,WAAyB,OAAOA,WAC3C,IACC,OAAOtgB,MAAQ,IAAIyd,SAAS,cAAb,EAChB,CAAE,MAAOhhB,GACR,GAAsB,iBAAX4jB,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCAxBmjC,EAAoBtpB,EAAI,SAAS73B,EAAKqpC,GAAQ,OAAOv8B,OAAOhR,UAAUoE,eAAeO,KAAKT,EAAKqpC,EAAO,ECCtG8X,EAAoBznD,EAAI,SAAS/D,GACX,oBAAX0W,QAA0BA,OAAOme,aAC1C1d,OAAO+F,eAAeld,EAAS0W,OAAOme,YAAa,CAAEnd,MAAO,WAE7DP,OAAO+F,eAAeld,EAAS,aAAc,CAAE0X,OAAO,GACvD,E,yv/BC0CA,IACEhV,EAAY,6CACZC,EAAWC,KAAKC,KAChBC,EAAYF,KAAKG,MAEjBC,EAAiB,qBACjBC,EAAgBD,EAAiB,yDAEjCE,EAAO,KACPC,EAAW,GACXC,EAAmB,iBAEnBC,EAAW,CAAC,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,MAC7EC,EAAY,IAKZC,EAAM,IA0pFR,SAASC,EAASC,GAChB,IAAI5C,EAAQ,EAAJ4C,EACR,OAAOA,EAAI,GAAKA,IAAM5C,EAAIA,EAAIA,EAAI,CACpC,CAIA,SAAS6C,EAAcC,GAMrB,IALA,IAAIC,EAAGC,EACLhD,EAAI,EACJiD,EAAIH,EAAEpC,OACNwC,EAAIJ,EAAE,GAAK,GAEN9C,EAAIiD,GAAI,CAGb,IAFAF,EAAID,EAAE9C,KAAO,GACbgD,EAAIV,EAAWS,EAAErC,OACVsC,IAAKD,EAAI,IAAMA,GACtBG,GAAKH,CACP,CAGA,IAAKE,EAAIC,EAAExC,OAA8B,KAAtBwC,EAAE3C,aAAa0C,KAElC,OAAOC,EAAEC,MAAM,EAAGF,EAAI,GAAK,EAC7B,CAIA,SAASG,EAAQC,EAAGC,GAClB,IAAIR,EAAGS,EACLC,EAAKH,EAAEI,EACPC,EAAKJ,EAAEG,EACPzD,EAAIqD,EAAEN,EACNE,EAAIK,EAAEP,EACNY,EAAIN,EAAEO,EACNC,EAAIP,EAAEM,EAGR,IAAK5D,IAAMiD,EAAG,OAAO,KAMrB,GAJAH,EAAIU,IAAOA,EAAG,GACdD,EAAIG,IAAOA,EAAG,GAGVZ,GAAKS,EAAG,OAAOT,EAAIS,EAAI,GAAKN,EAAIjD,EAGpC,GAAIA,GAAKiD,EAAG,OAAOjD,EAMnB,GAJA8C,EAAI9C,EAAI,EACRuD,EAAII,GAAKE,GAGJL,IAAOE,EAAI,OAAOH,EAAI,GAAKC,EAAKV,EAAI,GAAK,EAG9C,IAAKS,EAAG,OAAOI,EAAIE,EAAIf,EAAI,GAAK,EAKhC,IAHAG,GAAKU,EAAIH,EAAG9C,SAAWmD,EAAIH,EAAGhD,QAAUiD,EAAIE,EAGvC7D,EAAI,EAAGA,EAAIiD,EAAGjD,IAAK,GAAIwD,EAAGxD,IAAM0D,EAAG1D,GAAI,OAAOwD,EAAGxD,GAAK0D,EAAG1D,GAAK8C,EAAI,GAAK,EAG5E,OAAOa,GAAKE,EAAI,EAAIF,EAAIE,EAAIf,EAAI,GAAK,CACvC,CAMA,SAASgB,EAASlB,EAAGmB,EAAKC,EAAKC,GAC7B,GAAIrB,EAAImB,GAAOnB,EAAIoB,GAAOpB,IAAMX,EAAUW,GACxC,MAAMtB,MACJa,GAAkB8B,GAAQ,aAA2B,iBAALrB,EAC7CA,EAAImB,GAAOnB,EAAIoB,EAAM,kBAAoB,oBACzC,6BAA+BE,OAAOtB,GAE/C,CAIA,SAASuB,EAAMvB,GACb,IAAIe,EAAIf,EAAEa,EAAE/C,OAAS,EACrB,OAAOiC,EAASC,EAAEgB,EAAItB,IAAaqB,GAAKf,EAAEa,EAAEE,GAAK,GAAK,CACxD,CAGA,SAASS,EAAcC,EAAKT,GAC1B,OAAQS,EAAI3D,OAAS,EAAI2D,EAAIC,OAAO,GAAK,IAAMD,EAAIlB,MAAM,GAAKkB,IAC5DT,EAAI,EAAI,IAAM,MAAQA,CAC1B,CAGA,SAASW,EAAaF,EAAKT,EAAGZ,GAC5B,IAAI3C,EAAKmE,EAGT,GAAIZ,EAAI,EAAG,CAGT,IAAKY,EAAKxB,EAAI,MAAOY,EAAGY,GAAMxB,GAC9BqB,EAAMG,EAAKH,CAGb,MAIE,KAAMT,GAHNvD,EAAMgE,EAAI3D,QAGK,CACb,IAAK8D,EAAKxB,EAAGY,GAAKvD,IAAOuD,EAAGY,GAAMxB,GAClCqB,GAAOG,CACT,MAAWZ,EAAIvD,IACbgE,EAAMA,EAAIlB,MAAM,EAAGS,GAAK,IAAMS,EAAIlB,MAAMS,IAI5C,OAAOS,CACT,CAMO,IAAIzC,EAhxFX,SAAS6C,EAAMC,GACb,IAAIC,EAAKC,EAAaC,EA4kBhBC,EAMAC,EAoqBAC,EACFC,EACAC,EACAC,EACAC,EAzvCFC,EAAIzD,EAAU0D,UAAY,CAAEC,YAAa3D,EAAW4D,SAAU,KAAMC,QAAS,MAC7EC,EAAM,IAAI9D,EAAU,GAUpB+D,EAAiB,GAajBC,EAAgB,EAMhBC,GAAc,EAIdC,EAAa,GAMbC,GAAW,IAKXC,EAAU,IAGVC,GAAS,EAkBTC,EAAc,EAIdC,EAAgB,EAGhBC,EAAS,CACPC,OAAQ,GACRC,UAAW,EACXC,mBAAoB,EACpBC,eAAgB,IAChBC,iBAAkB,IAClBC,kBAAmB,EACnBC,uBAAwB,IACxBC,OAAQ,IAMVC,EAAW,uCACXC,GAAiC,EAgBnC,SAASlF,EAAUmF,EAAGxD,GACpB,IAAIyD,EAAUvD,EAAGwD,EAAarD,EAAG5D,EAAGkH,EAAO7G,EAAKgE,EAC9ChB,EAAI8D,KAGN,KAAM9D,aAAazB,GAAY,OAAO,IAAIA,EAAUmF,EAAGxD,GAEvD,GAAS,MAALA,EAAW,CAEb,GAAIwD,IAAwB,IAAnBA,EAAEK,aAYT,OAXA/D,EAAEN,EAAIgE,EAAEhE,QAEHgE,EAAEtD,GAAKsD,EAAEnD,EAAIoC,EAChB3C,EAAEI,EAAIJ,EAAEO,EAAI,KACHmD,EAAEnD,EAAImC,EACf1C,EAAEI,EAAI,CAACJ,EAAEO,EAAI,IAEbP,EAAEO,EAAImD,EAAEnD,EACRP,EAAEI,EAAIsD,EAAEtD,EAAEN,UAMd,IAAK+D,EAAoB,iBAALH,IAAsB,EAAJA,GAAS,EAAG,CAMhD,GAHA1D,EAAEN,EAAI,EAAIgE,EAAI,GAAKA,GAAKA,GAAI,GAAK,EAG7BA,MAAQA,EAAG,CACb,IAAKnD,EAAI,EAAG5D,EAAI+G,EAAG/G,GAAK,GAAIA,GAAK,GAAI4D,KASrC,YAPIA,EAAIoC,EACN3C,EAAEI,EAAIJ,EAAEO,EAAI,MAEZP,EAAEO,EAAIA,EACNP,EAAEI,EAAI,CAACsD,IAIX,CAEA1C,EAAMH,OAAO6C,EACf,KAAO,CAEL,IAAKlF,EAAUwF,KAAKhD,EAAMH,OAAO6C,IAAK,OAAOlC,EAAaxB,EAAGgB,EAAK6C,GAElE7D,EAAEN,EAAyB,IAArBsB,EAAI9D,WAAW,IAAY8D,EAAMA,EAAIlB,MAAM,IAAK,GAAK,CAC7D,EAGKS,EAAIS,EAAI9C,QAAQ,OAAS,IAAG8C,EAAMA,EAAIiD,QAAQ,IAAK,MAGnDtH,EAAIqE,EAAIkD,OAAO,OAAS,GAGvB3D,EAAI,IAAGA,EAAI5D,GACf4D,IAAMS,EAAIlB,MAAMnD,EAAI,GACpBqE,EAAMA,EAAImD,UAAU,EAAGxH,IACd4D,EAAI,IAGbA,EAAIS,EAAI3D,OAGZ,KAAO,CAOL,GAJAoD,EAASP,EAAG,EAAGsD,EAASnG,OAAQ,QAIvB,IAAL6C,GAAWuD,EAEb,OAAOW,EADPpE,EAAI,IAAIzB,EAAUmF,GACFpB,EAAiBtC,EAAEO,EAAI,EAAGgC,GAK5C,GAFAvB,EAAMH,OAAO6C,GAETG,EAAoB,iBAALH,EAAe,CAGhC,GAAQ,EAAJA,GAAS,EAAG,OAAOlC,EAAaxB,EAAGgB,EAAK6C,EAAO3D,GAKnD,GAHAF,EAAEN,EAAI,EAAIgE,EAAI,GAAK1C,EAAMA,EAAIlB,MAAM,IAAK,GAAK,EAGzCvB,EAAU8F,OAASrD,EAAIiD,QAAQ,YAAa,IAAI5G,OAAS,GAC3D,MAAMY,MACJc,EAAgB2E,EAEtB,MACE1D,EAAEN,EAA0B,KAAtBsB,EAAI9D,WAAW,IAAa8D,EAAMA,EAAIlB,MAAM,IAAK,GAAK,EAQ9D,IALA6D,EAAWH,EAAS1D,MAAM,EAAGI,GAC7BK,EAAI5D,EAAI,EAIHK,EAAMgE,EAAI3D,OAAQV,EAAIK,EAAKL,IAC9B,GAAIgH,EAASzF,QAAQkC,EAAIY,EAAIC,OAAOtE,IAAM,EAAG,CAC3C,GAAS,KAALyD,GAGF,GAAIzD,EAAI4D,EAAG,CACTA,EAAIvD,EACJ,QACF,OACK,IAAK4G,IAGN5C,GAAOA,EAAIsD,gBAAkBtD,EAAMA,EAAIuD,gBACvCvD,GAAOA,EAAIuD,gBAAkBvD,EAAMA,EAAIsD,gBAAgB,CACzDV,GAAc,EACdjH,GAAK,EACL4D,EAAI,EACJ,QACF,CAGF,OAAOiB,EAAaxB,EAAGa,OAAO6C,GAAIG,EAAO3D,EAC3C,CAIF2D,GAAQ,GAIHtD,GAHLS,EAAMO,EAAYP,EAAKd,EAAG,GAAIF,EAAEN,IAGnBxB,QAAQ,OAAS,EAAG8C,EAAMA,EAAIiD,QAAQ,IAAK,IACnD1D,EAAIS,EAAI3D,MACf,CAGA,IAAKV,EAAI,EAAyB,KAAtBqE,EAAI9D,WAAWP,GAAWA,KAGtC,IAAKK,EAAMgE,EAAI3D,OAAkC,KAA1B2D,EAAI9D,aAAaF,KAExC,GAAIgE,EAAMA,EAAIlB,MAAMnD,IAAKK,GAAM,CAI7B,GAHAA,GAAOL,EAGHkH,GAAStF,EAAU8F,OACrBrH,EAAM,KAAO0G,EAAIxE,GAAoBwE,IAAM9E,EAAU8E,IACnD,MAAMzF,MACJc,EAAiBiB,EAAEN,EAAIgE,GAI7B,IAAKnD,EAAIA,EAAI5D,EAAI,GAAKgG,EAGpB3C,EAAEI,EAAIJ,EAAEO,EAAI,UAGP,GAAIA,EAAImC,EAGb1C,EAAEI,EAAI,CAACJ,EAAEO,EAAI,OACR,CAWL,GAVAP,EAAEO,EAAIA,EACNP,EAAEI,EAAI,GAMNzD,GAAK4D,EAAI,GAAKtB,EACVsB,EAAI,IAAG5D,GAAKsC,GAEZtC,EAAIK,EAAK,CAGX,IAFIL,GAAGqD,EAAEI,EAAE1C,MAAMsD,EAAIlB,MAAM,EAAGnD,IAEzBK,GAAOiC,EAAUtC,EAAIK,GACxBgD,EAAEI,EAAE1C,MAAMsD,EAAIlB,MAAMnD,EAAGA,GAAKsC,IAG9BtC,EAAIsC,GAAY+B,EAAMA,EAAIlB,MAAMnD,IAAIU,MACtC,MACEV,GAAKK,EAGP,KAAOL,IAAKqE,GAAO,KACnBhB,EAAEI,EAAE1C,MAAMsD,EACZ,CACF,MAGEhB,EAAEI,EAAI,CAACJ,EAAEO,EAAI,EAEjB,CA21BA,SAASiE,EAAOjF,EAAG5C,EAAG8H,EAAIC,GACxB,IAAIC,EAAIpE,EAAGqE,EAAI5H,EAAKgE,EAKpB,GAHU,MAANyD,EAAYA,EAAKlC,EAChB9B,EAASgE,EAAI,EAAG,IAEhBlF,EAAEa,EAAG,OAAOb,EAAE4C,WAKnB,GAHAwC,EAAKpF,EAAEa,EAAE,GACTwE,EAAKrF,EAAEgB,EAEE,MAAL5D,EACFqE,EAAMxB,EAAcD,EAAEa,GACtBY,EAAY,GAAN0D,GAAiB,GAANA,IAAYE,GAAMpC,GAAcoC,GAAMnC,GACpD1B,EAAcC,EAAK4D,GACnB1D,EAAaF,EAAK4D,EAAI,UAezB,GAVArE,GAHAhB,EAAI6E,EAAM,IAAI7F,EAAUgB,GAAI5C,EAAG8H,IAGzBlE,EAGNvD,GADAgE,EAAMxB,EAAcD,EAAEa,IACZ/C,OAOA,GAANqH,GAAiB,GAANA,IAAY/H,GAAK4D,GAAKA,GAAKiC,GAAa,CAGrD,KAAOxF,EAAML,EAAGqE,GAAO,IAAKhE,KAC5BgE,EAAMD,EAAcC,EAAKT,EAG3B,MAKE,GAJA5D,GAAKiI,EACL5D,EAAME,EAAaF,EAAKT,EAAG,KAGvBA,EAAI,EAAIvD,GACV,KAAML,EAAI,EAAG,IAAKqE,GAAO,IAAKrE,IAAKqE,GAAO,WAG1C,IADArE,GAAK4D,EAAIvD,GACD,EAEN,IADIuD,EAAI,GAAKvD,IAAKgE,GAAO,KAClBrE,IAAKqE,GAAO,KAM3B,OAAOzB,EAAEG,EAAI,GAAKiF,EAAK,IAAM3D,EAAMA,CACrC,CAKA,SAAS6D,EAASC,EAAMvF,GAKtB,IAJA,IAAIe,EAAGL,EACLtD,EAAI,EACJqD,EAAI,IAAIzB,EAAUuG,EAAK,IAElBnI,EAAImI,EAAKzH,OAAQV,OACtBsD,EAAI,IAAI1B,EAAUuG,EAAKnI,KAChB+C,IAAMY,EAAIP,EAAQC,EAAGC,MAAQV,GAAW,IAANe,GAAWN,EAAEN,IAAMH,KAC1DS,EAAIC,GAIR,OAAOD,CACT,CAOA,SAAS+E,EAAUxF,EAAGa,EAAGG,GAKvB,IAJA,IAAI5D,EAAI,EACNiD,EAAIQ,EAAE/C,QAGA+C,IAAIR,GAAIQ,EAAE4E,OAGlB,IAAKpF,EAAIQ,EAAE,GAAIR,GAAK,GAAIA,GAAK,GAAIjD,KAkBjC,OAfK4D,EAAI5D,EAAI4D,EAAItB,EAAW,GAAK0D,EAG/BpD,EAAEa,EAAIb,EAAEgB,EAAI,KAGHA,EAAImC,EAGbnD,EAAEa,EAAI,CAACb,EAAEgB,EAAI,IAEbhB,EAAEgB,EAAIA,EACNhB,EAAEa,EAAIA,GAGDb,CACT,CAyDA,SAAS6E,EAAMpE,EAAGiF,EAAIR,EAAI5E,GACxB,IAAIqF,EAAGvI,EAAGiD,EAAGU,EAAGf,EAAG4F,EAAIC,EACrBjF,EAAKH,EAAEI,EACPiF,EAASlG,EAGX,GAAIgB,EAAI,CAQNmF,EAAK,CAGH,IAAKJ,EAAI,EAAG5E,EAAIH,EAAG,GAAIG,GAAK,GAAIA,GAAK,GAAI4E,KAIzC,IAHAvI,EAAIsI,EAAKC,GAGD,EACNvI,GAAKsC,EACLW,EAAIqF,EACJ1F,EAAIY,EAAGgF,EAAK,GAGZC,EAAKxG,EAAUW,EAAI8F,EAAOH,EAAItF,EAAI,GAAK,SAIvC,IAFAuF,EAAK1G,GAAU9B,EAAI,GAAKsC,KAEdkB,EAAG9C,OAAQ,CAEnB,IAAIwC,EASF,MAAMyF,EANN,KAAOnF,EAAG9C,QAAU8H,EAAIhF,EAAGzC,KAAK,IAChC6B,EAAI6F,EAAK,EACTF,EAAI,EAEJtF,GADAjD,GAAKsC,GACGA,EAAW,CAIvB,KAAO,CAIL,IAHAM,EAAIe,EAAIH,EAAGgF,GAGND,EAAI,EAAG5E,GAAK,GAAIA,GAAK,GAAI4E,KAU9BE,GAHAxF,GAJAjD,GAAKsC,GAIGA,EAAWiG,GAGV,EAAI,EAAItG,EAAUW,EAAI8F,EAAOH,EAAItF,EAAI,GAAK,GACrD,CAkBF,GAfAC,EAAIA,GAAKoF,EAAK,GAKC,MAAd9E,EAAGgF,EAAK,KAAevF,EAAI,EAAIL,EAAIA,EAAI8F,EAAOH,EAAItF,EAAI,IAEvDC,EAAI4E,EAAK,GACLW,GAAMvF,KAAa,GAAN4E,GAAWA,IAAOzE,EAAEN,EAAI,EAAI,EAAI,IAC9C0F,EAAK,GAAW,GAANA,IAAkB,GAANX,GAAW5E,GAAW,GAAN4E,IAGrC9H,EAAI,EAAIiD,EAAI,EAAIL,EAAI8F,EAAOH,EAAItF,GAAK,EAAIO,EAAGgF,EAAK,IAAM,GAAM,GAC7DV,IAAOzE,EAAEN,EAAI,EAAI,EAAI,IAEpBuF,EAAK,IAAM9E,EAAG,GAiBhB,OAhBAA,EAAG9C,OAAS,EAERwC,GAGFoF,GAAMjF,EAAEO,EAAI,EAGZJ,EAAG,GAAKkF,GAAQpG,EAAWgG,EAAKhG,GAAYA,GAC5Ce,EAAEO,GAAK0E,GAAM,GAIb9E,EAAG,GAAKH,EAAEO,EAAI,EAGTP,EAkBT,GAdS,GAALrD,GACFwD,EAAG9C,OAAS8H,EACZ7E,EAAI,EACJ6E,MAEAhF,EAAG9C,OAAS8H,EAAK,EACjB7E,EAAI+E,EAAOpG,EAAWtC,GAItBwD,EAAGgF,GAAMvF,EAAI,EAAIhB,EAAUW,EAAI8F,EAAOH,EAAItF,GAAKyF,EAAOzF,IAAMU,EAAI,GAI9DT,EAEF,OAAU,CAGR,GAAU,GAANsF,EAAS,CAGX,IAAKxI,EAAI,EAAGiD,EAAIO,EAAG,GAAIP,GAAK,GAAIA,GAAK,GAAIjD,KAEzC,IADAiD,EAAIO,EAAG,IAAMG,EACRA,EAAI,EAAGV,GAAK,GAAIA,GAAK,GAAIU,KAG1B3D,GAAK2D,IACPN,EAAEO,IACEJ,EAAG,IAAMnB,IAAMmB,EAAG,GAAK,IAG7B,KACF,CAEE,GADAA,EAAGgF,IAAO7E,EACNH,EAAGgF,IAAOnG,EAAM,MACpBmB,EAAGgF,KAAQ,EACX7E,EAAI,CAER,CAIF,IAAK3D,EAAIwD,EAAG9C,OAAoB,IAAZ8C,IAAKxD,GAAUwD,EAAG6E,OACxC,CAGIhF,EAAEO,EAAIoC,EACR3C,EAAEI,EAAIJ,EAAEO,EAAI,KAGHP,EAAEO,EAAImC,IACf1C,EAAEI,EAAI,CAACJ,EAAEO,EAAI,GAEjB,CAEA,OAAOP,CACT,CAGA,SAASoC,EAAQ7C,GACf,IAAIyB,EACFT,EAAIhB,EAAEgB,EAER,OAAU,OAANA,EAAmBhB,EAAE4C,YAEzBnB,EAAMxB,EAAcD,EAAEa,GAEtBY,EAAMT,GAAKiC,GAAcjC,GAAKkC,EAC1B1B,EAAcC,EAAKT,GACnBW,EAAaF,EAAKT,EAAG,KAElBhB,EAAEG,EAAI,EAAI,IAAMsB,EAAMA,EAC/B,CAorCA,OAx1EAzC,EAAU6C,MAAQA,EAElB7C,EAAUgH,SAAW,EACrBhH,EAAUiH,WAAa,EACvBjH,EAAUkH,WAAa,EACvBlH,EAAUmH,YAAc,EACxBnH,EAAUoH,cAAgB,EAC1BpH,EAAUqH,gBAAkB,EAC5BrH,EAAUsH,gBAAkB,EAC5BtH,EAAUuH,gBAAkB,EAC5BvH,EAAUwH,iBAAmB,EAC7BxH,EAAUyH,OAAS,EAqCnBzH,EAAU0H,OAAS1H,EAAU2H,IAAM,SAAUC,GAC3C,IAAIC,EAAG1C,EAEP,GAAW,MAAPyC,EAAa,CAEf,GAAkB,iBAAPA,EA4HT,MAAMlI,MACJa,EAAiB,oBAAsBqH,GAvFzC,GAlCIA,EAAIE,eAAeD,EAAI,oBAEzB3F,EADAiD,EAAIyC,EAAIC,GACI,EAAG/G,EAAK+G,GACpB9D,EAAiBoB,GAKfyC,EAAIE,eAAeD,EAAI,mBAEzB3F,EADAiD,EAAIyC,EAAIC,GACI,EAAG,EAAGA,GAClB7D,EAAgBmB,GAOdyC,EAAIE,eAAeD,EAAI,qBACzB1C,EAAIyC,EAAIC,KACC1C,EAAEsB,KACTvE,EAASiD,EAAE,IAAKrE,EAAK,EAAG+G,GACxB3F,EAASiD,EAAE,GAAI,EAAGrE,EAAK+G,GACvB5D,EAAakB,EAAE,GACfjB,EAAaiB,EAAE,KAEfjD,EAASiD,GAAIrE,EAAKA,EAAK+G,GACvB5D,IAAeC,EAAaiB,EAAI,GAAKA,EAAIA,KAOzCyC,EAAIE,eAAeD,EAAI,SAEzB,IADA1C,EAAIyC,EAAIC,KACC1C,EAAEsB,IACTvE,EAASiD,EAAE,IAAKrE,GAAM,EAAG+G,GACzB3F,EAASiD,EAAE,GAAI,EAAGrE,EAAK+G,GACvB1D,EAAUgB,EAAE,GACZf,EAAUe,EAAE,OACP,CAEL,GADAjD,EAASiD,GAAIrE,EAAKA,EAAK+G,IACnB1C,EAGF,MAAMzF,MACJa,EAAiBsH,EAAI,oBAAsB1C,GAH7ChB,IAAYC,EAAUe,EAAI,GAAKA,EAAIA,EAKvC,CAMF,GAAIyC,EAAIE,eAAeD,EAAI,UAAW,CAEpC,IADA1C,EAAIyC,EAAIC,QACI1C,EAcV,MAAMzF,MACJa,EAAiBsH,EAAI,uBAAyB1C,GAdhD,GAAIA,EAAG,CACL,GAAqB,oBAAV4C,SAAyBA,SAClCA,OAAOC,kBAAmBD,OAAOE,YAIjC,MADA5D,GAAUc,EACJzF,MACJa,EAAiB,sBAJnB8D,EAASc,CAMb,MACEd,EAASc,CAMf,CAoBA,GAhBIyC,EAAIE,eAAeD,EAAI,iBAEzB3F,EADAiD,EAAIyC,EAAIC,GACI,EAAG,EAAGA,GAClBvD,EAAca,GAKZyC,EAAIE,eAAeD,EAAI,mBAEzB3F,EADAiD,EAAIyC,EAAIC,GACI,EAAG/G,EAAK+G,GACpBtD,EAAgBY,GAKdyC,EAAIE,eAAeD,EAAI,UAAW,CAEpC,GAAgB,iBADhB1C,EAAIyC,EAAIC,IAEH,MAAMnI,MACTa,EAAiBsH,EAAI,mBAAqB1C,GAFlBX,EAASW,CAGrC,CAIA,GAAIyC,EAAIE,eAAeD,EAAI,YAAa,CAKtC,GAAgB,iBAJhB1C,EAAIyC,EAAIC,KAIqB,wBAAwBpC,KAAKN,GAIxD,MAAMzF,MACJa,EAAiBsH,EAAI,aAAe1C,GAJtCD,EAAmD,cAAlBC,EAAE5D,MAAM,EAAG,IAC5C0D,EAAWE,CAKf,CAQJ,CAEA,MAAO,CACLpB,eAAgBA,EAChBC,cAAeA,EACfkE,eAAgB,CAACjE,EAAYC,GAC7BiE,MAAO,CAAChE,EAASC,GACjBC,OAAQA,EACRC,YAAaA,EACbC,cAAeA,EACfC,OAAQA,EACRS,SAAUA,EAEd,EAYAjF,EAAUoI,YAAc,SAAUjD,GAChC,IAAKA,IAAwB,IAAnBA,EAAEK,aAAuB,OAAO,EAC1C,IAAKxF,EAAU8F,MAAO,OAAO,EAE7B,IAAI1H,EAAG4C,EACLa,EAAIsD,EAAEtD,EACNG,EAAImD,EAAEnD,EACNb,EAAIgE,EAAEhE,EAER4F,EAAK,GAA2B,kBAAvB,CAAC,EAAEnD,SAASyE,KAAKxG,IAExB,IAAW,IAANV,IAAkB,IAAPA,IAAaa,IAAMlB,GAAOkB,GAAKlB,GAAOkB,IAAM3B,EAAU2B,GAAI,CAGxE,GAAa,IAATH,EAAE,GAAU,CACd,GAAU,IAANG,GAAwB,IAAbH,EAAE/C,OAAc,OAAO,EACtC,MAAMiI,CACR,CAQA,IALA3I,GAAK4D,EAAI,GAAKtB,GACN,IAAGtC,GAAKsC,GAIZ4B,OAAOT,EAAE,IAAI/C,QAAUV,EAAG,CAE5B,IAAKA,EAAI,EAAGA,EAAIyD,EAAE/C,OAAQV,IAExB,IADA4C,EAAIa,EAAEzD,IACE,GAAK4C,GAAKP,GAAQO,IAAMX,EAAUW,GAAI,MAAM+F,EAItD,GAAU,IAAN/F,EAAS,OAAO,CACtB,CACF,OAGK,GAAU,OAANa,GAAoB,OAANG,IAAqB,OAANb,GAAoB,IAANA,IAAkB,IAAPA,GAC/D,OAAO,EAGT,MAAMzB,MACHa,EAAiB,sBAAwB4E,EAC9C,EAQAnF,EAAUsI,QAAUtI,EAAUoC,IAAM,WAClC,OAAOkE,EAASiC,WAAY,EAC9B,EAQAvI,EAAUwI,QAAUxI,EAAUmC,IAAM,WAClC,OAAOmE,EAASiC,UAAW,EAC7B,EAaAvI,EAAUyI,QACJvF,EAAU,iBAMVC,EAAkBhD,KAAKsI,SAAWvF,EAAW,QAC9C,WAAc,OAAO7C,EAAUF,KAAKsI,SAAWvF,EAAU,EACzD,WAAc,OAA2C,SAAlB,WAAhB/C,KAAKsI,SAAwB,IACnC,QAAhBtI,KAAKsI,SAAsB,EAAI,EAE5B,SAAUC,GACf,IAAIxH,EAAGS,EAAGK,EAAGD,EAAGoD,EACd/G,EAAI,EACJyD,EAAI,GACJ8G,EAAO,IAAI3I,EAAU8D,GAOvB,GALU,MAAN4E,EAAYA,EAAK3E,EAChB7B,EAASwG,EAAI,EAAG5H,GAErBiB,EAAI7B,EAASwI,EAAKhI,GAEd2D,EAGF,GAAI0D,OAAOC,gBAAiB,CAI1B,IAFA9G,EAAI6G,OAAOC,gBAAgB,IAAIY,YAAY7G,GAAK,IAEzC3D,EAAI2D,IAQToD,EAAW,OAAPjE,EAAE9C,IAAgB8C,EAAE9C,EAAI,KAAO,MAM1B,MACPuD,EAAIoG,OAAOC,gBAAgB,IAAIY,YAAY,IAC3C1H,EAAE9C,GAAKuD,EAAE,GACTT,EAAE9C,EAAI,GAAKuD,EAAE,KAKbE,EAAE1C,KAAKgG,EAAI,MACX/G,GAAK,GAGTA,EAAI2D,EAAI,CAGV,KAAO,KAAIgG,OAAOE,YA2BhB,MADA5D,GAAS,EACH3E,MACJa,EAAiB,sBAvBnB,IAFAW,EAAI6G,OAAOE,YAAYlG,GAAK,GAErB3D,EAAI2D,IAMToD,EAAmB,iBAAN,GAAPjE,EAAE9C,IAA0C,cAAX8C,EAAE9C,EAAI,GAC9B,WAAX8C,EAAE9C,EAAI,GAAgC,SAAX8C,EAAE9C,EAAI,IACjC8C,EAAE9C,EAAI,IAAM,KAAO8C,EAAE9C,EAAI,IAAM,GAAK8C,EAAE9C,EAAI,KAErC,KACP2J,OAAOE,YAAY,GAAGY,KAAK3H,EAAG9C,IAI9ByD,EAAE1C,KAAKgG,EAAI,MACX/G,GAAK,GAGTA,EAAI2D,EAAI,CAKV,CAIF,IAAKsC,EAEH,KAAOjG,EAAI2D,IACToD,EAAIhC,KACI,OAAMtB,EAAEzD,KAAO+G,EAAI,MAc/B,IAVApD,EAAIF,IAAIzD,GACRsK,GAAMhI,EAGFqB,GAAK2G,IACPvD,EAAIvE,EAASF,EAAWgI,GACxB7G,EAAEzD,GAAKiC,EAAU0B,EAAIoD,GAAKA,GAIZ,IAATtD,EAAEzD,GAAUyD,EAAE4E,MAAOrI,KAG5B,GAAIA,EAAI,EACNyD,EAAI,CAACG,EAAI,OACJ,CAGL,IAAKA,GAAK,EAAa,IAATH,EAAE,GAAUA,EAAEiH,OAAO,EAAG,GAAI9G,GAAKtB,GAG/C,IAAKtC,EAAI,EAAG+G,EAAItD,EAAE,GAAIsD,GAAK,GAAIA,GAAK,GAAI/G,KAGpCA,EAAIsC,IAAUsB,GAAKtB,EAAWtC,EACpC,CAIA,OAFAuK,EAAK3G,EAAIA,EACT2G,EAAK9G,EAAIA,EACF8G,CACT,GASF3I,EAAU+I,IAAM,WAId,IAHA,IAAI3K,EAAI,EACNmI,EAAOgC,UACPQ,EAAM,IAAI/I,EAAUuG,EAAK,IACpBnI,EAAImI,EAAKzH,QAASiK,EAAMA,EAAIC,KAAKzC,EAAKnI,MAC7C,OAAO2K,CACT,EAOA/F,EAAc,WACZ,IAAIiG,EAAU,aAOd,SAASC,EAAUzG,EAAK0G,EAAQC,EAAShE,GAOvC,IANA,IAAI/D,EAEFgI,EADAhL,EAAM,CAAC,GAEPD,EAAI,EACJK,EAAMgE,EAAI3D,OAELV,EAAIK,GAAM,CACf,IAAK4K,EAAOhL,EAAIS,OAAQuK,IAAQhL,EAAIgL,IAASF,GAI7C,IAFA9K,EAAI,IAAM+G,EAASzF,QAAQ8C,EAAIC,OAAOtE,MAEjCiD,EAAI,EAAGA,EAAIhD,EAAIS,OAAQuC,IAEtBhD,EAAIgD,GAAK+H,EAAU,IACH,MAAd/K,EAAIgD,EAAI,KAAYhD,EAAIgD,EAAI,GAAK,GACrChD,EAAIgD,EAAI,IAAMhD,EAAIgD,GAAK+H,EAAU,EACjC/K,EAAIgD,IAAM+H,EAGhB,CAEA,OAAO/K,EAAIiL,SACb,CAKA,OAAO,SAAU7G,EAAK0G,EAAQC,EAASG,EAAMC,GAC3C,IAAIpE,EAAUuB,EAAG3E,EAAGD,EAAGT,EAAGG,EAAGG,EAAIF,EAC/BtD,EAAIqE,EAAI9C,QAAQ,KAChB+I,EAAK3E,EACLmC,EAAKlC,EA+BP,IA5BI5F,GAAK,IACP2D,EAAIwC,EAGJA,EAAgB,EAChB9B,EAAMA,EAAIiD,QAAQ,IAAK,IAEvBjE,GADAC,EAAI,IAAI1B,EAAUmJ,IACZM,IAAIhH,EAAI3D,OAASV,GACvBmG,EAAgBxC,EAKhBL,EAAEG,EAAIqH,EAAUvG,EAAa1B,EAAcQ,EAAEI,GAAIJ,EAAEO,EAAG,KACrD,GAAIoH,EAASH,GACdvH,EAAEM,EAAIN,EAAEG,EAAE/C,QAUZkD,EAAID,GALJH,EAAKsH,EAAUzG,EAAK0G,EAAQC,EAASI,GACjCpE,EAAWH,EAAUgE,IACrB7D,EAAW6D,EAAShE,KAGbnG,OAGO,GAAX8C,IAAKG,GAASH,EAAG6E,OAGxB,IAAK7E,EAAG,GAAI,OAAOwD,EAAS1C,OAAO,GAqCnC,GAlCItE,EAAI,IACJ4D,GAEFP,EAAEI,EAAID,EACNH,EAAEO,EAAIA,EAGNP,EAAEN,EAAIoI,EAEN3H,GADAH,EAAIsB,EAAItB,EAAGC,EAAGgH,EAAIxC,EAAIkD,IACfvH,EACPP,EAAIG,EAAEH,EACNU,EAAIP,EAAEO,GASR5D,EAAIwD,EAHJ+E,EAAI3E,EAAI0G,EAAK,GAOb3G,EAAIqH,EAAU,EACd9H,EAAIA,GAAKqF,EAAI,GAAkB,MAAb/E,EAAG+E,EAAI,GAEzBrF,EAAI4E,EAAK,GAAU,MAAL9H,GAAakD,KAAa,GAAN4E,GAAWA,IAAOzE,EAAEN,EAAI,EAAI,EAAI,IAC1D/C,EAAI2D,GAAK3D,GAAK2D,IAAW,GAANmE,GAAW5E,GAAW,GAAN4E,GAAuB,EAAZtE,EAAG+E,EAAI,IACtDT,IAAOzE,EAAEN,EAAI,EAAI,EAAI,IAKxBwF,EAAI,IAAM/E,EAAG,GAGfa,EAAMnB,EAAIqB,EAAayC,EAAS1C,OAAO,IAAKgG,EAAItD,EAAS1C,OAAO,IAAM0C,EAAS1C,OAAO,OACjF,CAML,GAHAd,EAAG9C,OAAS6H,EAGRrF,EAGF,MAAO8H,IAAWxH,IAAK+E,GAAKyC,GAC1BxH,EAAG+E,GAAK,EAEHA,MACD3E,EACFJ,EAAK,CAAC,GAAG8H,OAAO9H,IAMtB,IAAKG,EAAIH,EAAG9C,QAAS8C,IAAKG,KAG1B,IAAK3D,EAAI,EAAGqE,EAAM,GAAIrE,GAAK2D,EAAGU,GAAO2C,EAAS1C,OAAOd,EAAGxD,OAGxDqE,EAAME,EAAaF,EAAKT,EAAGoD,EAAS1C,OAAO,GAC7C,CAGA,OAAOD,CACT,CACD,CAnJa,GAuJdM,EAAM,WAGJ,SAAS4G,EAASlI,EAAGM,EAAG6H,GACtB,IAAIC,EAAGC,EAAMC,EAAKC,EAChBC,EAAQ,EACR7L,EAAIqD,EAAE3C,OACNoL,EAAMnI,EAAIlB,EACVsJ,EAAMpI,EAAIlB,EAAY,EAExB,IAAKY,EAAIA,EAAEF,QAASnD,KAKlB6L,IADAH,EAAOI,GAHPH,EAAMtI,EAAErD,GAAKyC,IAEbgJ,EAAIM,EAAMJ,GADVC,EAAMvI,EAAErD,GAAKyC,EAAY,GACHqJ,GACGrJ,EAAaA,EAAaoJ,GACnCL,EAAO,IAAMC,EAAIhJ,EAAY,GAAKsJ,EAAMH,EACxDvI,EAAErD,GAAK0L,EAAOF,EAKhB,OAFIK,IAAOxI,EAAI,CAACwI,GAAOP,OAAOjI,IAEvBA,CACT,CAEA,SAASD,EAAQN,EAAGS,EAAGyI,EAAIC,GACzB,IAAIjM,EAAGkM,EAEP,GAAIF,GAAMC,EACRC,EAAMF,EAAKC,EAAK,GAAK,OAGrB,IAAKjM,EAAIkM,EAAM,EAAGlM,EAAIgM,EAAIhM,IAExB,GAAI8C,EAAE9C,IAAMuD,EAAEvD,GAAI,CAChBkM,EAAMpJ,EAAE9C,GAAKuD,EAAEvD,GAAK,GAAK,EACzB,KACF,CAIJ,OAAOkM,CACT,CAEA,SAASC,EAASrJ,EAAGS,EAAGyI,EAAIR,GAI1B,IAHA,IAAIxL,EAAI,EAGDgM,KACLlJ,EAAEkJ,IAAOhM,EACTA,EAAI8C,EAAEkJ,GAAMzI,EAAEyI,GAAM,EAAI,EACxBlJ,EAAEkJ,GAAMhM,EAAIwL,EAAO1I,EAAEkJ,GAAMzI,EAAEyI,GAI/B,MAAQlJ,EAAE,IAAMA,EAAEpC,OAAS,EAAGoC,EAAE4H,OAAO,EAAG,IAC5C,CAGA,OAAO,SAAUrH,EAAGC,EAAGgH,EAAIxC,EAAI0D,GAC7B,IAAIU,EAAKtI,EAAG5D,EAAGoM,EAAMxJ,EAAGyJ,EAAMC,EAAOC,EAAGC,EAAIC,EAAKC,EAAMC,EAAMC,EAAIC,EAAIC,EACnEC,EAAIC,EACJjK,EAAIM,EAAEN,GAAKO,EAAEP,EAAI,GAAK,EACtBS,EAAKH,EAAEI,EACPC,EAAKJ,EAAEG,EAGT,KAAKD,GAAOA,EAAG,IAAOE,GAAOA,EAAG,IAE9B,OAAO,IAAI9B,EAGTyB,EAAEN,GAAMO,EAAEP,IAAMS,GAAKE,GAAMF,EAAG,IAAME,EAAG,GAAMA,GAG7CF,GAAe,GAATA,EAAG,KAAYE,EAAS,EAAJX,EAAQA,EAAI,EAHakK,KAoBvD,IAZAT,GADAD,EAAI,IAAI3K,EAAUmB,IACXU,EAAI,GAEXV,EAAIuH,GADJ1G,EAAIP,EAAEO,EAAIN,EAAEM,GACC,EAER4H,IACHA,EAAOnJ,EACPuB,EAAIjB,EAASU,EAAEO,EAAItB,GAAYK,EAASW,EAAEM,EAAItB,GAC9CS,EAAIA,EAAIT,EAAW,GAKhBtC,EAAI,EAAG0D,EAAG1D,KAAOwD,EAAGxD,IAAM,GAAIA,KAInC,GAFI0D,EAAG1D,IAAMwD,EAAGxD,IAAM,IAAI4D,IAEtBb,EAAI,EACNyJ,EAAGzL,KAAK,GACRqL,GAAO,MACF,CAwBL,IAvBAS,EAAKrJ,EAAG9C,OACRqM,EAAKrJ,EAAGhD,OACRV,EAAI,EACJ+C,GAAK,GAILH,EAAIX,EAAUuJ,GAAQ9H,EAAG,GAAK,KAItB,IACNA,EAAK6H,EAAS7H,EAAId,EAAG4I,GACrBhI,EAAK+H,EAAS/H,EAAIZ,EAAG4I,GACrBuB,EAAKrJ,EAAGhD,OACRmM,EAAKrJ,EAAG9C,QAGVkM,EAAKG,EAELL,GADAD,EAAMjJ,EAAGL,MAAM,EAAG4J,IACPrM,OAGJgM,EAAOK,EAAIN,EAAIC,KAAU,GAChCM,EAAKtJ,EAAGP,QACR6J,EAAK,CAAC,GAAG1B,OAAO0B,GAChBF,EAAMpJ,EAAG,GACLA,EAAG,IAAM8H,EAAO,GAAGsB,IAIvB,EAAG,CAOD,GANAlK,EAAI,GAGJsJ,EAAM9I,EAAQM,EAAI+I,EAAKM,EAAIL,IAGjB,EAAG,CAqBX,GAjBAC,EAAOF,EAAI,GACPM,GAAML,IAAMC,EAAOA,EAAOnB,GAAQiB,EAAI,IAAM,KAGhD7J,EAAIX,EAAU0K,EAAOG,IAab,EAcN,IAXIlK,GAAK4I,IAAM5I,EAAI4I,EAAO,GAI1Bc,GADAD,EAAOd,EAAS7H,EAAId,EAAG4I,IACV9K,OACbgM,EAAOD,EAAI/L,OAM+B,GAAnC0C,EAAQiJ,EAAMI,EAAKH,EAAOI,IAC/B9J,IAGAuJ,EAASE,EAAMU,EAAKT,EAAQU,EAAKtJ,EAAI4I,EAAOd,GAC5Cc,EAAQD,EAAK3L,OACbwL,EAAM,OAQC,GAALtJ,IAGFsJ,EAAMtJ,EAAI,GAKZ0J,GADAD,EAAO3I,EAAGP,SACGzC,OAUf,GAPI4L,EAAQI,IAAML,EAAO,CAAC,GAAGf,OAAOe,IAGpCF,EAASM,EAAKJ,EAAMK,EAAMlB,GAC1BkB,EAAOD,EAAI/L,QAGC,GAARwL,EAMF,KAAO9I,EAAQM,EAAI+I,EAAKM,EAAIL,GAAQ,GAClC9J,IAGAuJ,EAASM,EAAKM,EAAKL,EAAOM,EAAKtJ,EAAIgJ,EAAMlB,GACzCkB,EAAOD,EAAI/L,MAGjB,MAAmB,IAARwL,IACTtJ,IACA6J,EAAM,CAAC,IAITD,EAAGxM,KAAO4C,EAGN6J,EAAI,GACNA,EAAIC,KAAUlJ,EAAGoJ,IAAO,GAExBH,EAAM,CAACjJ,EAAGoJ,IACVF,EAAO,EAEX,QAAUE,IAAOC,GAAgB,MAAVJ,EAAI,KAAe1J,KAE1CqJ,EAAiB,MAAVK,EAAI,GAGND,EAAG,IAAIA,EAAG9B,OAAO,EAAG,EAC3B,CAEA,GAAIc,GAAQnJ,EAAM,CAGhB,IAAKrC,EAAI,EAAG+C,EAAIyJ,EAAG,GAAIzJ,GAAK,GAAIA,GAAK,GAAI/C,KAEzCyH,EAAM8E,EAAGjC,GAAMiC,EAAE3I,EAAI5D,EAAI4D,EAAItB,EAAW,GAAK,EAAGwF,EAAIsE,EAGtD,MACEG,EAAE3I,EAAIA,EACN2I,EAAErJ,GAAKkJ,EAGT,OAAOG,CACT,CACD,CAhQK,GA4XAvH,EAAa,8BACfC,EAAW,cACXC,EAAY,cACZC,EAAkB,qBAClBC,EAAmB,6BALvBP,EAOS,SAAUxB,EAAGgB,EAAK6C,EAAO3D,GAC9B,IAAIiI,EACFzI,EAAImE,EAAQ7C,EAAMA,EAAIiD,QAAQlC,EAAkB,IAGlD,GAAID,EAAgBkC,KAAKtE,GACvBM,EAAEN,EAAImK,MAAMnK,GAAK,KAAOA,EAAI,GAAK,EAAI,MAChC,CACL,IAAKmE,IAGHnE,EAAIA,EAAEuE,QAAQtC,GAAY,SAAUyG,EAAG0B,EAAIC,GAEzC,OADA5B,EAAkC,MAA1B4B,EAAKA,EAAGxF,eAAwB,GAAW,KAANwF,EAAY,EAAI,EACrD7J,GAAKA,GAAKiI,EAAYC,EAAL0B,CAC3B,IAEI5J,IACFiI,EAAOjI,EAGPR,EAAIA,EAAEuE,QAAQrC,EAAU,MAAMqC,QAAQpC,EAAW,SAG/Cb,GAAOtB,GAAG,OAAO,IAAInB,EAAUmB,EAAGyI,GAKxC,GAAI5J,EAAU8F,MACZ,MAAMpG,MACHa,EAAiB,SAAWoB,EAAI,SAAWA,EAAI,IAAM,YAAcc,GAIxEhB,EAAEN,EAAI,IACR,CAEAM,EAAEI,EAAIJ,EAAEO,EAAI,IACd,EA4LFyB,EAAEgI,cAAgBhI,EAAEiI,IAAM,WACxB,IAAIjK,EAAI,IAAIzB,EAAUuF,MAEtB,OADI9D,EAAEN,EAAI,IAAGM,EAAEN,EAAI,GACZM,CACT,EAUAgC,EAAEkI,WAAa,SAAUjK,EAAGC,GAC1B,OAAOH,EAAQ+D,KAAM,IAAIvF,EAAU0B,EAAGC,GACxC,EAgBA8B,EAAEmI,cAAgBnI,EAAEiF,GAAK,SAAUA,EAAIxC,GACrC,IAAIrE,EAAGb,EAAGmE,EACR1D,EAAI8D,KAEN,GAAU,MAANmD,EAKF,OAJAxG,EAASwG,EAAI,EAAG5H,GACN,MAANoF,EAAYA,EAAKlC,EAChB9B,EAASgE,EAAI,EAAG,GAEdL,EAAM,IAAI7F,EAAUyB,GAAIiH,EAAKjH,EAAEO,EAAI,EAAGkE,GAG/C,KAAMrE,EAAIJ,EAAEI,GAAI,OAAO,KAIvB,GAHAb,IAAMmE,EAAItD,EAAE/C,OAAS,GAAKiC,EAASwE,KAAKvD,EAAItB,IAAaA,EAGrDyE,EAAItD,EAAEsD,GAAI,KAAOA,EAAI,IAAM,EAAGA,GAAK,GAAInE,KAG3C,OAFIA,EAAI,IAAGA,EAAI,GAERA,CACT,EAuBAyC,EAAEoI,UAAYpI,EAAEV,IAAM,SAAUrB,EAAGC,GACjC,OAAOoB,EAAIwC,KAAM,IAAIvF,EAAU0B,EAAGC,GAAIoC,EAAgBC,EACxD,EAOAP,EAAEqI,mBAAqBrI,EAAEsI,KAAO,SAAUrK,EAAGC,GAC3C,OAAOoB,EAAIwC,KAAM,IAAIvF,EAAU0B,EAAGC,GAAI,EAAG,EAC3C,EAkBA8B,EAAEuI,gBAAkBvI,EAAEgG,IAAM,SAAUzI,EAAG6I,GACvC,IAAIoC,EAAMC,EAAU9N,EAAG2D,EAASoK,EAAQC,EAAQC,EAAQ3K,EACtDD,EAAI8D,KAKN,IAHAvE,EAAI,IAAIhB,EAAUgB,IAGZa,IAAMb,EAAEsL,YACZ,MAAM5M,MACHa,EAAiB,4BAA8BsD,EAAQ7C,IAS5D,GANS,MAAL6I,IAAWA,EAAI,IAAI7J,EAAU6J,IAGjCsC,EAASnL,EAAEgB,EAAI,IAGVP,EAAEI,IAAMJ,EAAEI,EAAE,IAAgB,GAAVJ,EAAEI,EAAE,KAAYJ,EAAEO,GAAmB,GAAdP,EAAEI,EAAE/C,SAAgBkC,EAAEa,IAAMb,EAAEa,EAAE,GAK5E,OADAH,EAAI,IAAI1B,EAAUG,KAAKsJ,KAAK5F,EAAQpC,GAAI0K,EAASnL,EAAEG,GAAK,EAAIoB,EAAMvB,KAAO6C,EAAQ7C,KAC1E6I,EAAInI,EAAE6K,IAAI1C,GAAKnI,EAKxB,GAFA0K,EAASpL,EAAEG,EAAI,EAEX0I,EAAG,CAGL,GAAIA,EAAEhI,GAAKgI,EAAEhI,EAAE,IAAMgI,EAAE1I,EAAG,OAAO,IAAInB,EAAUqL,MAE/Ca,GAAYE,GAAU3K,EAAE6K,aAAezC,EAAEyC,eAE3B7K,EAAIA,EAAE8K,IAAI1C,GAI1B,KAAO,IAAI7I,EAAEgB,EAAI,IAAMP,EAAEO,EAAI,GAAKP,EAAEO,GAAK,IAAa,GAAPP,EAAEO,EAE7CP,EAAEI,EAAE,GAAK,GAAKsK,GAAU1K,EAAEI,EAAE,IAAM,KAElCJ,EAAEI,EAAE,GAAK,MAAQsK,GAAU1K,EAAEI,EAAE,IAAM,YASvC,OANAE,EAAIN,EAAEN,EAAI,GAAKoB,EAAMvB,IAAM,EAAI,EAG3BS,EAAEO,GAAK,IAAGD,EAAI,EAAIA,GAGf,IAAI/B,EAAUoM,EAAS,EAAIrK,EAAIA,GAE7BwC,IAKTxC,EAAI7B,EAASqE,EAAgB7D,EAAW,GAC1C,CAcA,IAZIyL,GACFF,EAAO,IAAIjM,EAAU,IACjBoM,IAAQpL,EAAEG,EAAI,GAClBkL,EAAS9J,EAAMvB,IAGfqL,GADAjO,EAAI+B,KAAKuL,KAAK7H,EAAQ7C,KACT,EAGfU,EAAI,IAAI1B,EAAU8D,KAGR,CAER,GAAIuI,EAAQ,CAEV,KADA3K,EAAIA,EAAE8K,MAAM/K,IACLI,EAAG,MAENE,EACEL,EAAEG,EAAE/C,OAASiD,IAAGL,EAAEG,EAAE/C,OAASiD,GACxBmK,IACTxK,EAAIA,EAAE6K,IAAI1C,GAEd,CAEA,GAAIzL,EAAG,CAEL,GAAU,KADVA,EAAIiC,EAAUjC,EAAI,IACL,MACbiO,EAASjO,EAAI,CACf,MAIE,GAFAyH,EADA7E,EAAIA,EAAEwL,MAAMP,GACHjL,EAAEgB,EAAI,EAAG,GAEdhB,EAAEgB,EAAI,GACRqK,EAAS9J,EAAMvB,OACV,CAEL,GAAU,IADV5C,GAAKyF,EAAQ7C,IACA,MACbqL,EAASjO,EAAI,CACf,CAGFqD,EAAIA,EAAE+K,MAAM/K,GAERM,EACEN,EAAEI,GAAKJ,EAAEI,EAAE/C,OAASiD,IAAGN,EAAEI,EAAE/C,OAASiD,GAC/BmK,IACTzK,EAAIA,EAAE8K,IAAI1C,GAEd,CAEA,OAAIqC,EAAiBxK,GACjB0K,IAAQ1K,EAAIoC,EAAIf,IAAIrB,IAEjBmI,EAAInI,EAAE6K,IAAI1C,GAAK9H,EAAI8D,EAAMnE,EAAG6C,EAAeP,OAnHxBwG,GAmH+C9I,EAC3E,EAWA+B,EAAEgJ,aAAe,SAAUvG,GACzB,IAAIlF,EAAI,IAAIhB,EAAUuF,MAGtB,OAFU,MAANW,EAAYA,EAAKlC,EAChB9B,EAASgE,EAAI,EAAG,GACdL,EAAM7E,EAAGA,EAAEgB,EAAI,EAAGkE,EAC3B,EAOAzC,EAAEiJ,UAAYjJ,EAAEkJ,GAAK,SAAUjL,EAAGC,GAChC,OAA8C,IAAvCH,EAAQ+D,KAAM,IAAIvF,EAAU0B,EAAGC,GACxC,EAMA8B,EAAEmJ,SAAW,WACX,QAASrH,KAAK1D,CAChB,EAOA4B,EAAEoJ,cAAgBpJ,EAAEqJ,GAAK,SAAUpL,EAAGC,GACpC,OAAOH,EAAQ+D,KAAM,IAAIvF,EAAU0B,EAAGC,IAAM,CAC9C,EAOA8B,EAAEsJ,uBAAyBtJ,EAAEuJ,IAAM,SAAUtL,EAAGC,GAC9C,OAAoD,KAA5CA,EAAIH,EAAQ+D,KAAM,IAAIvF,EAAU0B,EAAGC,MAAoB,IAANA,CAE3D,EAMA8B,EAAE6I,UAAY,WACZ,QAAS/G,KAAK1D,GAAKd,EAASwE,KAAKvD,EAAItB,GAAY6E,KAAK1D,EAAE/C,OAAS,CACnE,EAOA2E,EAAEwJ,WAAaxJ,EAAEyJ,GAAK,SAAUxL,EAAGC,GACjC,OAAOH,EAAQ+D,KAAM,IAAIvF,EAAU0B,EAAGC,IAAM,CAC9C,EAOA8B,EAAE0J,oBAAsB1J,EAAE2J,IAAM,SAAU1L,EAAGC,GAC3C,OAAqD,KAA7CA,EAAIH,EAAQ+D,KAAM,IAAIvF,EAAU0B,EAAGC,MAAqB,IAANA,CAC5D,EAMA8B,EAAE6H,MAAQ,WACR,OAAQ/F,KAAKpE,CACf,EAMAsC,EAAE4J,WAAa,WACb,OAAO9H,KAAKpE,EAAI,CAClB,EAMAsC,EAAE6J,WAAa,WACb,OAAO/H,KAAKpE,EAAI,CAClB,EAMAsC,EAAE8J,OAAS,WACT,QAAShI,KAAK1D,GAAkB,GAAb0D,KAAK1D,EAAE,EAC5B,EAuBA4B,EAAE+J,MAAQ,SAAU9L,EAAGC,GACrB,IAAIvD,EAAGiD,EAAGoM,EAAGC,EACXjM,EAAI8D,KACJrE,EAAIO,EAAEN,EAMR,GAHAQ,GADAD,EAAI,IAAI1B,EAAU0B,EAAGC,IACfR,GAGDD,IAAMS,EAAG,OAAO,IAAI3B,EAAUqL,KAGnC,GAAInK,GAAKS,EAEP,OADAD,EAAEP,GAAKQ,EACAF,EAAEuH,KAAKtH,GAGhB,IAAIiM,EAAKlM,EAAEO,EAAItB,EACbkN,EAAKlM,EAAEM,EAAItB,EACXkB,EAAKH,EAAEI,EACPC,EAAKJ,EAAEG,EAET,IAAK8L,IAAOC,EAAI,CAGd,IAAKhM,IAAOE,EAAI,OAAOF,GAAMF,EAAEP,GAAKQ,EAAGD,GAAK,IAAI1B,EAAU8B,EAAKL,EAAI4J,KAGnE,IAAKzJ,EAAG,KAAOE,EAAG,GAGhB,OAAOA,EAAG,IAAMJ,EAAEP,GAAKQ,EAAGD,GAAK,IAAI1B,EAAU4B,EAAG,GAAKH,EAGnC,GAAjBuC,GAAsB,EAAI,EAE/B,CAOA,GALA2J,EAAK5M,EAAS4M,GACdC,EAAK7M,EAAS6M,GACdhM,EAAKA,EAAGL,QAGJL,EAAIyM,EAAKC,EAAI,CAaf,KAXIF,EAAOxM,EAAI,IACbA,GAAKA,EACLuM,EAAI7L,IAEJgM,EAAKD,EACLF,EAAI3L,GAGN2L,EAAEnE,UAGG3H,EAAIT,EAAGS,IAAK8L,EAAEtO,KAAK,IACxBsO,EAAEnE,SACJ,MAKE,IAFAjI,GAAKqM,GAAQxM,EAAIU,EAAG9C,SAAW6C,EAAIG,EAAGhD,SAAWoC,EAAIS,EAEhDT,EAAIS,EAAI,EAAGA,EAAIN,EAAGM,IAErB,GAAIC,EAAGD,IAAMG,EAAGH,GAAI,CAClB+L,EAAO9L,EAAGD,GAAKG,EAAGH,GAClB,KACF,CAgBJ,GAXI+L,IACFD,EAAI7L,EACJA,EAAKE,EACLA,EAAK2L,EACL/L,EAAEP,GAAKO,EAAEP,IAGXQ,GAAKN,EAAIS,EAAGhD,SAAWV,EAAIwD,EAAG9C,SAItB,EAAG,KAAO6C,IAAKC,EAAGxD,KAAO,GAIjC,IAHAuD,EAAIlB,EAAO,EAGJY,EAAIH,GAAI,CAEb,GAAIU,IAAKP,GAAKS,EAAGT,GAAI,CACnB,IAAKjD,EAAIiD,EAAGjD,IAAMwD,IAAKxD,GAAIwD,EAAGxD,GAAKuD,KACjCC,EAAGxD,GACLwD,EAAGP,IAAMZ,CACX,CAEAmB,EAAGP,IAAMS,EAAGT,EACd,CAGA,KAAgB,GAATO,EAAG,GAASA,EAAGkH,OAAO,EAAG,KAAM8E,GAGtC,OAAKhM,EAAG,GAWD4E,EAAU9E,EAAGE,EAAIgM,IAPtBlM,EAAEP,EAAqB,GAAjB6C,GAAsB,EAAI,EAChCtC,EAAEG,EAAI,CAACH,EAAEM,EAAI,GACNN,EAMX,EAwBA+B,EAAEoK,OAASpK,EAAE8I,IAAM,SAAU7K,EAAGC,GAC9B,IAAIgJ,EAAGxJ,EACLM,EAAI8D,KAKN,OAHA7D,EAAI,IAAI1B,EAAU0B,EAAGC,IAGhBF,EAAEI,IAAMH,EAAEP,GAAKO,EAAEG,IAAMH,EAAEG,EAAE,GACvB,IAAI7B,EAAUqL,MAGX3J,EAAEG,GAAKJ,EAAEI,IAAMJ,EAAEI,EAAE,GACtB,IAAI7B,EAAUyB,IAGJ,GAAf6C,GAIFnD,EAAIO,EAAEP,EACNO,EAAEP,EAAI,EACNwJ,EAAI5H,EAAItB,EAAGC,EAAG,EAAG,GACjBA,EAAEP,EAAIA,EACNwJ,EAAExJ,GAAKA,GAEPwJ,EAAI5H,EAAItB,EAAGC,EAAG,EAAG4C,IAGnB5C,EAAID,EAAE+L,MAAM7C,EAAE6B,MAAM9K,KAGbG,EAAE,IAAqB,GAAfyC,IAAkB5C,EAAEP,EAAIM,EAAEN,GAElCO,EACT,EAuBA+B,EAAEqK,aAAerK,EAAE+I,MAAQ,SAAU9K,EAAGC,GACtC,IAAIE,EAAGG,EAAG5D,EAAGiD,EAAGU,EAAG8H,EAAGkE,EAAKhE,EAAKC,EAAKgE,EAAKC,EAAKC,EAAKC,EAClDvE,EAAMwE,EACN3M,EAAI8D,KACJ3D,EAAKH,EAAEI,EACPC,GAAMJ,EAAI,IAAI1B,EAAU0B,EAAGC,IAAIE,EAGjC,KAAKD,GAAOE,GAAOF,EAAG,IAAOE,EAAG,IAmB9B,OAhBKL,EAAEN,IAAMO,EAAEP,GAAKS,IAAOA,EAAG,KAAOE,GAAMA,IAAOA,EAAG,KAAOF,EAC1DF,EAAEG,EAAIH,EAAEM,EAAIN,EAAEP,EAAI,MAElBO,EAAEP,GAAKM,EAAEN,EAGJS,GAAOE,GAKVJ,EAAEG,EAAI,CAAC,GACPH,EAAEM,EAAI,GALNN,EAAEG,EAAIH,EAAEM,EAAI,MASTN,EAmBT,IAhBAM,EAAIjB,EAASU,EAAEO,EAAItB,GAAYK,EAASW,EAAEM,EAAItB,GAC9CgB,EAAEP,GAAKM,EAAEN,GACT4M,EAAMnM,EAAG9C,SACTkP,EAAMlM,EAAGhD,UAIPqP,EAAKvM,EACLA,EAAKE,EACLA,EAAKqM,EACL/P,EAAI2P,EACJA,EAAMC,EACNA,EAAM5P,GAIHA,EAAI2P,EAAMC,EAAKG,EAAK,GAAI/P,IAAK+P,EAAGhP,KAAK,IAK1C,IAHAyK,EAAOnJ,EACP2N,EAAWvN,EAENzC,EAAI4P,IAAO5P,GAAK,GAAI,CAKvB,IAJAyD,EAAI,EACJoM,EAAMnM,EAAG1D,GAAKgQ,EACdF,EAAMpM,EAAG1D,GAAKgQ,EAAW,EAEX/M,EAAIjD,GAAb2D,EAAIgM,GAAgB1M,EAAIjD,GAK3ByD,IADAkI,EAAMkE,GAHNlE,EAAMnI,IAAKG,GAAKqM,IAEhBvE,EAAIqE,EAAMnE,GADVC,EAAMpI,EAAGG,GAAKqM,EAAW,GACHH,GACEG,EAAYA,EAAYD,EAAG9M,GAAKQ,GAC7C+H,EAAO,IAAMC,EAAIuE,EAAW,GAAKF,EAAMlE,EAClDmE,EAAG9M,KAAO0I,EAAMH,EAGlBuE,EAAG9M,GAAKQ,CACV,CAQA,OANIA,IACAG,EAEFmM,EAAGrF,OAAO,EAAG,GAGRtC,EAAU9E,EAAGyM,EAAInM,EAC1B,EAOAyB,EAAE4K,QAAU,WACV,IAAI5M,EAAI,IAAIzB,EAAUuF,MAEtB,OADA9D,EAAEN,GAAKM,EAAEN,GAAK,KACPM,CACT,EAuBAgC,EAAEuF,KAAO,SAAUtH,EAAGC,GACpB,IAAI8L,EACFhM,EAAI8D,KACJrE,EAAIO,EAAEN,EAMR,GAHAQ,GADAD,EAAI,IAAI1B,EAAU0B,EAAGC,IACfR,GAGDD,IAAMS,EAAG,OAAO,IAAI3B,EAAUqL,KAGlC,GAAInK,GAAKS,EAER,OADAD,EAAEP,GAAKQ,EACAF,EAAE+L,MAAM9L,GAGjB,IAAIiM,EAAKlM,EAAEO,EAAItB,EACbkN,EAAKlM,EAAEM,EAAItB,EACXkB,EAAKH,EAAEI,EACPC,EAAKJ,EAAEG,EAET,IAAK8L,IAAOC,EAAI,CAGd,IAAKhM,IAAOE,EAAI,OAAO,IAAI9B,EAAUkB,EAAI,GAIzC,IAAKU,EAAG,KAAOE,EAAG,GAAI,OAAOA,EAAG,GAAKJ,EAAI,IAAI1B,EAAU4B,EAAG,GAAKH,EAAQ,EAAJP,EACrE,CAOA,GALAyM,EAAK5M,EAAS4M,GACdC,EAAK7M,EAAS6M,GACdhM,EAAKA,EAAGL,QAGJL,EAAIyM,EAAKC,EAAI,CAUf,IATI1M,EAAI,GACN0M,EAAKD,EACLF,EAAI3L,IAEJZ,GAAKA,EACLuM,EAAI7L,GAGN6L,EAAEnE,UACKpI,IAAKuM,EAAEtO,KAAK,IACnBsO,EAAEnE,SACJ,CAcA,KAZApI,EAAIU,EAAG9C,SACP6C,EAAIG,EAAGhD,QAGK,IACV2O,EAAI3L,EACJA,EAAKF,EACLA,EAAK6L,EACL9L,EAAIT,GAIDA,EAAI,EAAGS,GACVT,GAAKU,IAAKD,GAAKC,EAAGD,GAAKG,EAAGH,GAAKT,GAAKT,EAAO,EAC3CmB,EAAGD,GAAKlB,IAASmB,EAAGD,GAAK,EAAIC,EAAGD,GAAKlB,EAUvC,OAPIS,IACFU,EAAK,CAACV,GAAGwI,OAAO9H,KACdgM,GAKGpH,EAAU9E,EAAGE,EAAIgM,EAC1B,EAkBAnK,EAAE6K,UAAY7K,EAAEiD,GAAK,SAAUA,EAAIR,GACjC,IAAIrE,EAAGb,EAAGmE,EACR1D,EAAI8D,KAEN,GAAU,MAANmB,GAAcA,MAASA,EAKzB,OAJAxE,EAASwE,EAAI,EAAG5F,GACN,MAANoF,EAAYA,EAAKlC,EAChB9B,EAASgE,EAAI,EAAG,GAEdL,EAAM,IAAI7F,EAAUyB,GAAIiF,EAAIR,GAGrC,KAAMrE,EAAIJ,EAAEI,GAAI,OAAO,KAIvB,GAFAb,GADAmE,EAAItD,EAAE/C,OAAS,GACP4B,EAAW,EAEfyE,EAAItD,EAAEsD,GAAI,CAGZ,KAAOA,EAAI,IAAM,EAAGA,GAAK,GAAInE,KAG7B,IAAKmE,EAAItD,EAAE,GAAIsD,GAAK,GAAIA,GAAK,GAAInE,KACnC,CAIA,OAFI0F,GAAMjF,EAAEO,EAAI,EAAIhB,IAAGA,EAAIS,EAAEO,EAAI,GAE1BhB,CACT,EAWAyC,EAAE8K,UAAY,SAAUxM,GAEtB,OADAG,EAASH,GAAG,iBAAmBpB,GACxB4E,KAAKiH,MAAM,KAAOzK,EAC3B,EAcA0B,EAAE+K,WAAa/K,EAAEgL,KAAO,WACtB,IAAI5E,EAAG7I,EAAGM,EAAGoN,EAAKjB,EAChBhM,EAAI8D,KACJ1D,EAAIJ,EAAEI,EACNV,EAAIM,EAAEN,EACNa,EAAIP,EAAEO,EACN0G,EAAK3E,EAAiB,EACtBkI,EAAO,IAAIjM,EAAU,OAGvB,GAAU,IAANmB,IAAYU,IAAMA,EAAE,GACtB,OAAO,IAAI7B,GAAWmB,GAAKA,EAAI,KAAOU,GAAKA,EAAE,IAAMwJ,IAAMxJ,EAAIJ,EAAI,KA8BnE,GAtBS,IAJTN,EAAIhB,KAAKsO,MAAM5K,EAAQpC,MAITN,GAAK,OACjBH,EAAIC,EAAcY,IACX/C,OAASkD,GAAK,GAAK,IAAGhB,GAAK,KAClCG,EAAIhB,KAAKsO,MAAMzN,GACfgB,EAAIjB,GAAUiB,EAAI,GAAK,IAAMA,EAAI,GAAKA,EAAI,GAS1CV,EAAI,IAAItB,EANNgB,EADEG,GAAK,IACH,KAAOa,GAEXhB,EAAIG,EAAEqB,iBACAjB,MAAM,EAAGP,EAAErB,QAAQ,KAAO,GAAKqC,IAKvCV,EAAI,IAAItB,EAAUmB,EAAI,IAOpBG,EAAEO,EAAE,GAMN,KAJAV,GADAa,EAAIV,EAAEU,GACE0G,GACA,IAAGvH,EAAI,KAOb,GAHAsM,EAAInM,EACJA,EAAI2K,EAAKO,MAAMiB,EAAEzE,KAAKjG,EAAItB,EAAGgM,EAAG/E,EAAI,KAEhCzH,EAAcwM,EAAE5L,GAAGN,MAAM,EAAGJ,MAAQH,EAAIC,EAAcK,EAAEO,IAAIN,MAAM,EAAGJ,GAAI,CAW3E,GANIG,EAAEU,EAAIA,KAAKb,EAMN,SALTH,EAAIA,EAAEO,MAAMJ,EAAI,EAAGA,EAAI,MAKHuN,GAAY,QAAL1N,GAgBpB,EAICA,KAAOA,EAAEO,MAAM,IAAqB,KAAfP,EAAE0B,OAAO,MAGlCmD,EAAMvE,EAAGA,EAAEU,EAAI+B,EAAiB,EAAG,GACnC8F,GAAKvI,EAAEkL,MAAMlL,GAAGqL,GAAGlL,IAGrB,KACF,CAxBE,IAAKiN,IACH7I,EAAM4H,EAAGA,EAAEzL,EAAI+B,EAAiB,EAAG,GAE/B0J,EAAEjB,MAAMiB,GAAGd,GAAGlL,IAAI,CACpBH,EAAImM,EACJ,KACF,CAGF/E,GAAM,EACNvH,GAAK,EACLuN,EAAM,CAcV,CAIJ,OAAO7I,EAAMvE,EAAGA,EAAEU,EAAI+B,EAAiB,EAAGC,EAAe6F,EAC3D,EAYApG,EAAEjB,cAAgB,SAAUkG,EAAIxC,GAK9B,OAJU,MAANwC,IACFxG,EAASwG,EAAI,EAAG5H,GAChB4H,KAEKzC,EAAOV,KAAMmD,EAAIxC,EAAI,EAC9B,EAeAzC,EAAEkL,QAAU,SAAUjG,EAAIxC,GAKxB,OAJU,MAANwC,IACFxG,EAASwG,EAAI,EAAG5H,GAChB4H,EAAKA,EAAKnD,KAAKvD,EAAI,GAEdiE,EAAOV,KAAMmD,EAAIxC,EAC1B,EA4BAzC,EAAEmL,SAAW,SAAUlG,EAAIxC,EAAID,GAC7B,IAAIxD,EACFhB,EAAI8D,KAEN,GAAc,MAAVU,EACQ,MAANyC,GAAcxC,GAAmB,iBAANA,GAC7BD,EAASC,EACTA,EAAK,MACIwC,GAAmB,iBAANA,GACtBzC,EAASyC,EACTA,EAAKxC,EAAK,MAEVD,EAASzB,OAEN,GAAqB,iBAAVyB,EAChB,MAAMvG,MACHa,EAAiB,2BAA6B0F,GAKnD,GAFAxD,EAAMhB,EAAEkN,QAAQjG,EAAIxC,GAEhBzE,EAAEI,EAAG,CACP,IAAIzD,EACFC,EAAMoE,EAAIoM,MAAM,KAChBC,GAAM7I,EAAOvB,UACbqK,GAAM9I,EAAOtB,mBACbC,EAAiBqB,EAAOrB,gBAAkB,GAC1CoK,EAAU3Q,EAAI,GACd4Q,EAAe5Q,EAAI,GACnB6Q,EAAQzN,EAAEN,EAAI,EACdgO,EAAYD,EAAQF,EAAQzN,MAAM,GAAKyN,EACvCvQ,EAAM0Q,EAAUrQ,OASlB,GAPIiQ,IACF3Q,EAAI0Q,EACJA,EAAKC,EACLA,EAAK3Q,EACLK,GAAOL,GAGL0Q,EAAK,GAAKrQ,EAAM,EAAG,CAGrB,IAFAL,EAAIK,EAAMqQ,GAAMA,EAChBE,EAAUG,EAAUC,OAAO,EAAGhR,GACvBA,EAAIK,EAAKL,GAAK0Q,EAAIE,GAAWpK,EAAiBuK,EAAUC,OAAOhR,EAAG0Q,GACrEC,EAAK,IAAGC,GAAWpK,EAAiBuK,EAAU5N,MAAMnD,IACpD8Q,IAAOF,EAAU,IAAMA,EAC7B,CAEAvM,EAAMwM,EACHD,GAAW/I,EAAOpB,kBAAoB,MAAQkK,GAAM9I,EAAOnB,mBAC1DmK,EAAavJ,QAAQ,IAAI2J,OAAO,OAASN,EAAK,OAAQ,KACvD,MAAQ9I,EAAOlB,wBAA0B,KACxCkK,GACDD,CACL,CAEA,OAAQ/I,EAAOxB,QAAU,IAAMhC,GAAOwD,EAAOjB,QAAU,GACzD,EAcAvB,EAAE6L,WAAa,SAAUC,GACvB,IAAI5I,EAAG6I,EAAIC,EAAIC,EAAI1N,EAAG2N,EAAK3O,EAAG4O,EAAIC,EAAIlF,EAAGrJ,EAAGH,EAC1CM,EAAI8D,KACJ3D,EAAKH,EAAEI,EAET,GAAU,MAAN0N,MACFvO,EAAI,IAAIhB,EAAUuP,IAGXjD,cAAgBtL,EAAEa,GAAa,IAARb,EAAEG,IAAYH,EAAEkM,GAAGpJ,IAC/C,MAAMpE,MACHa,EAAiB,aACfS,EAAEsL,YAAc,iBAAmB,oBAAsBzI,EAAQ7C,IAI1E,IAAKY,EAAI,OAAO,IAAI5B,EAAUyB,GAoB9B,IAlBAkF,EAAI,IAAI3G,EAAU8D,GAClB+L,EAAKL,EAAK,IAAIxP,EAAU8D,GACxB2L,EAAKG,EAAK,IAAI5P,EAAU8D,GACxB3C,EAAIF,EAAcW,GAIlBI,EAAI2E,EAAE3E,EAAIb,EAAErC,OAAS2C,EAAEO,EAAI,EAC3B2E,EAAE9E,EAAE,GAAKjB,GAAU+O,EAAM3N,EAAItB,GAAY,EAAIA,EAAWiP,EAAMA,GAC9DJ,GAAMA,GAAMvO,EAAE2K,WAAWhF,GAAK,EAAK3E,EAAI,EAAI2E,EAAIkJ,EAAM7O,EAErD2O,EAAMvL,EACNA,EAAU,IACVpD,EAAI,IAAIhB,EAAUmB,GAGlByO,EAAG/N,EAAE,GAAK,EAGR8I,EAAI5H,EAAI/B,EAAG2F,EAAG,EAAG,GAEQ,IADzB+I,EAAKF,EAAGxG,KAAK2B,EAAE6B,MAAMiD,KACd9D,WAAW4D,IAClBC,EAAKC,EACLA,EAAKC,EACLG,EAAKD,EAAG5G,KAAK2B,EAAE6B,MAAMkD,EAAKG,IAC1BD,EAAKF,EACL/I,EAAI3F,EAAEwM,MAAM7C,EAAE6B,MAAMkD,EAAK/I,IACzB3F,EAAI0O,EAeN,OAZAA,EAAK3M,EAAIwM,EAAG/B,MAAMgC,GAAKC,EAAI,EAAG,GAC9BG,EAAKA,EAAG5G,KAAK0G,EAAGlD,MAAMqD,IACtBL,EAAKA,EAAGxG,KAAK0G,EAAGlD,MAAMiD,IACtBG,EAAGzO,EAAI0O,EAAG1O,EAAIM,EAAEN,EAIhBG,EAAIyB,EAAI8M,EAAIJ,EAHZzN,GAAQ,EAGWgC,GAAewJ,MAAM/L,GAAGiK,MAAMC,WAC7C5I,EAAI6M,EAAIJ,EAAIxN,EAAGgC,GAAewJ,MAAM/L,GAAGiK,OAAS,EAAI,CAACmE,EAAIJ,GAAM,CAACG,EAAIJ,GAExEpL,EAAUuL,EAEHrO,CACT,EAMAmC,EAAEqM,SAAW,WACX,OAAQjM,EAAQ0B,KAClB,EAcA9B,EAAEsM,YAAc,SAAUrJ,EAAIR,GAE5B,OADU,MAANQ,GAAYxE,EAASwE,EAAI,EAAG5F,GACzBmF,EAAOV,KAAMmB,EAAIR,EAAI,EAC9B,EAcAzC,EAAEG,SAAW,SAAUjC,GACrB,IAAIc,EACFzB,EAAIuE,KACJpE,EAAIH,EAAEG,EACNa,EAAIhB,EAAEgB,EA0BR,OAvBU,OAANA,EACEb,GACFsB,EAAM,WACFtB,EAAI,IAAGsB,EAAM,IAAMA,IAEvBA,EAAM,OAGC,MAALd,EACFc,EAAMT,GAAKiC,GAAcjC,GAAKkC,EAC3B1B,EAAcvB,EAAcD,EAAEa,GAAIG,GAClCW,EAAa1B,EAAcD,EAAEa,GAAIG,EAAG,KACxB,KAANL,GAAYuD,EAErBzC,EAAME,EAAa1B,GADnBD,EAAI6E,EAAM,IAAI7F,EAAUgB,GAAI+C,EAAiB/B,EAAI,EAAGgC,IACjBnC,GAAIb,EAAEgB,EAAG,MAE5CE,EAASP,EAAG,EAAGsD,EAASnG,OAAQ,QAChC2D,EAAMO,EAAYL,EAAa1B,EAAcD,EAAEa,GAAIG,EAAG,KAAM,GAAIL,EAAGR,GAAG,IAGpEA,EAAI,GAAKH,EAAEa,EAAE,KAAIY,EAAM,IAAMA,IAG5BA,CACT,EAOAgB,EAAEI,QAAUJ,EAAEuM,OAAS,WACrB,OAAOnM,EAAQ0B,KACjB,EAGA9B,EAAE+B,cAAe,EAEjB/B,EAAEwQ,OAAOme,aAAe,YAGxB3uB,EAAEwQ,OAAOo1C,IAAI,+BAAiC5lD,EAAEI,QAE5B,MAAhBf,GAAsB9C,EAAU2H,IAAI7E,GAEjC9C,CACT,CAqIuB6C,GAEvB,ICj1FO,MAYMzC,EAAQkpD,GACnBA,EAAU78C,aAAazM,EAAUkH,YCb5B,MAAeqiD,UAAkB7pD,MACtCiE,WAAAA,CAAY8d,GACVJ,MAAMI,GACNlc,KAAKlD,KAAO,WACd,EAMK,MAAMmnD,UAAqBD,EAChC5lD,WAAAA,CAAY8d,GACVJ,MAAMI,GACNlc,KAAKlD,KAAO,cACd,EAMK,MAAMonD,UAAkBF,EAC7B5lD,WAAAA,CAAY8d,GACVJ,MAAMI,GACNlc,KAAKlD,KAAO,WACd,EAMK,MAAMqnD,UAAkBH,EAC7B5lD,WAAAA,CAAY8d,GACVJ,MAAMI,GACNlc,KAAKlD,KAAO,WACd,EAMK,MAAMsnD,UAAqBJ,EAChC5lD,WAAAA,CAAY8d,GACVJ,MAAMI,GACNlc,KAAKlD,KAAO,cACd,EAMK,MAAMunD,UAAsBL,EACjC5lD,WAAAA,CAAY8d,GACVJ,MAAMI,GACNlc,KAAKlD,KAAO,eACd,EAMK,MAAMwnD,UAAsBN,EACjC5lD,WAAAA,CAAY8d,GACVJ,MAAMI,GACNlc,KAAKlD,KAAO,eACd,EAMK,MAAMynD,UAA0BP,EACrC5lD,WAAAA,CAAY8d,GACVJ,MAAMI,GACNlc,KAAKlD,KAAO,mBACd,EAMK,MAAM0nD,UAAkBR,EAC7B5lD,WAAAA,CAAY8d,GACVJ,MAAMI,GACNlc,KAAKlD,KAAO,WACd,EAMK,MAAM2nD,UAAyBT,EACpC5lD,WAAAA,CAAY8d,GACVJ,MAAMI,GACNlc,KAAKlD,KAAO,kBACd,EAMK,MAAM4nD,UAAoBV,EAC/B5lD,WAAAA,CAAY8d,GACVJ,MAAMI,GACNlc,KAAKlD,KAAO,aACd,EAMK,MAAM6nD,UAAsBX,EACjC5lD,WAAAA,CAAYwmD,EAAsBC,EAAsBC,GACtDhpC,MAAM,GAAG8oC,eAA0BC,UAAoBC,aACvD9kD,KAAKlD,KAAO,eACd,EAMK,MAAMioD,UAA6BR,EACxCnmD,WAAAA,CAAY8d,GACVJ,MAAMI,GACNlc,KAAKlD,KAAO,sBACd,EAMK,MAAMkoD,UAAmChB,EAC9C5lD,WAAAA,CAAY6mD,EAAsBC,EAAuBC,GACvDrpC,MAAM,GAAGmpC,aAAwBC,oBAAgCC,aACjEnlD,KAAKlD,KAAO,4BACd,EAMK,MAAMsoD,UAAiCpB,EAC5C5lD,WAAAA,CAAY8d,GACVJ,MAAMI,GACNlc,KAAKlD,KAAO,0BACd,EAMK,MAAMuoD,UAA0BrB,EACrC5lD,WAAAA,CAAY8d,GACVJ,MAAMI,GACNlc,KAAKlD,KAAO,mBACd,EAMK,MAAMwoD,UAA+BtB,EAC1C5lD,WAAAA,GACE0d,MAAM,oCACN9b,KAAKlD,KAAO,wBACd,EAMK,MAAMyoD,UAA6BvB,EACxC5lD,WAAAA,CAAYonD,GACV1pC,MAAM,uBAAuB0pC,KAC7BxlD,KAAKlD,KAAO,sBACd,EAMK,MAAM2oD,UAAwBzB,EACnC5lD,WAAAA,CAAYkjC,EAAgBsD,GAC1B9oB,MAAM,mBAAmBwlB,qCAA0CsD,KACnE5kC,KAAKlD,KAAO,iBACd,EAMK,MAAMyS,UAAkBy0C,EAC7B5lD,WAAAA,CAAY8d,GACVJ,MAAMI,GACNlc,KAAKlD,KAAO,WACd,EAMK,MAAM4oD,UAAiC1B,EAC5C5lD,WAAAA,CAAY8d,GACVJ,MAAMI,GACNlc,KAAKlD,KAAO,0BACd,EAMK,MAAM6oD,WAAiC3B,EAC5C5lD,WAAAA,CAAY8d,GACVJ,MAAMI,GACNlc,KAAKlD,KAAO,0BACd,EAMK,MAAM8oD,WAA4B5B,EACvC5lD,WAAAA,CAAY8d,GACVJ,MAAMI,GACNlc,KAAKlD,KAAO,qBACd,EAMK,MAAM+oD,WAAgC7B,EAC3C5lD,WAAAA,CAAY0nD,EAAoBlzB,EAAiBmzB,EAAmBC,GAClElqC,MACE,eAAegqC,aAAsBlzB,oBAA0BmzB,KAC/C,MAAbC,EAAoB,GAAK,MAAMA,MAEpChmD,KAAKlD,KAAO,yBACd,EAMK,MAAMmpD,WAAmBjC,EAC9B5lD,WAAAA,CAAY8d,GACVJ,MAAMI,GACNlc,KAAKlD,KAAO,YACd,EAMK,MAAMopD,WAAsBlC,EACjC5lD,WAAAA,CAAY8d,GACVJ,MAAMI,GACNlc,KAAKlD,KAAO,eACd,EAMK,MAAMqpD,WAA0BD,GACrC9nD,WAAAA,CAAY8d,EAAU,2CACpBJ,MAAMI,GACNlc,KAAKlD,KAAO,mBACd,EAMK,MAAMspD,WAAgCnC,EAC3C7lD,WAAAA,CAAYioD,GACVvqC,MAAM,eAAeuqC,mBACrBrmD,KAAKlD,KAAO,yBACd,EAMK,MAAMwpD,WAAgCpC,EAC3C9lD,WAAAA,CAAYmoD,EAAmCrnD,GAC7C4c,MAAM,QAAQyqC,6BAAoCrnD,KAClDc,KAAKlD,KAAO,yBACd,EAMK,MAAM0pD,WAAiCtC,EAC5C9lD,WAAAA,CAAYqoD,EAAoBC,GAC9B5qC,MACE,oBAAoB2qC,EAAQpoD,4DAA4DqoD,EAAWroD,cAErG2B,KAAKlD,KAAO,0BACd,EAMK,MAAM6pD,WAA6BzC,EACxC9lD,WAAAA,CAAY8d,GACVJ,MAAMI,GACNlc,KAAKlD,KAAO,sBACd,EAMK,MAAM8pD,WAA+BzC,EAC1C/lD,WAAAA,CAAY8d,GACVJ,MAAM,6BAA6BI,KACnClc,KAAKlD,KAAO,wBACd,EAMK,MAAM+pD,WAA6B1C,EACxC/lD,WAAAA,CAAYwC,GACVkb,MAAM,0CAA0Clb,KAChDZ,KAAKlD,KAAO,sBACd,EAMK,MAAMgqD,WAAiC3C,EAC5C/lD,WAAAA,CAAY2oD,GACVjrC,MAAM,qCAAqCirC,KAC3C/mD,KAAKlD,KAAO,0BACd,EAMK,MAAMkqD,WAA8B7C,EACzC/lD,WAAAA,CAAYwC,GACVkb,MAAM,qBAAqBlb,kBAC3BZ,KAAKlD,KAAO,uBACd,EAMK,MAAMmqD,WAAiC9C,EAC5C/lD,WAAAA,GACE0d,MAAM,0CACN9b,KAAKlD,KAAO,0BACd,EAMK,MAAMoqD,WAAyB9C,EACpChmD,WAAAA,CAAY8d,GACVJ,MAAMI,GACNlc,KAAKlD,KAAO,kBACd,EAMK,MAAMqqD,WAA+B/C,EAC1ChmD,WAAAA,CAAY8d,GACVJ,MAAMI,GACNlc,KAAKlD,KAAO,wBACd,EAMK,MAAMsqD,WAAiChD,EAC5ChmD,WAAAA,GACE0d,MAAM,yBACN9b,KAAKlD,KAAO,0BACd,EAMK,MAAMuqD,WAAsCjD,EACjDhmD,WAAAA,CAAY8d,GACVJ,MAAMI,GACNlc,KAAKlD,KAAO,+BACd,EAMK,MAAMwqD,WAAoClD,EAK/ChmD,WAAAA,CAAYmpD,EAAqBC,GAC/B1rC,MAAMyrC,EAAarrC,SACnBlc,KAAKunD,aAAeA,EACpBvnD,KAAKwnD,gBAAkBA,EACvBxnD,KAAKlD,KAAO,6BACd,EAMK,MAAM2qD,WAAiCrD,EAC5ChmD,WAAAA,GACE0d,MAAM,4CACN9b,KAAKlD,KAAO,0BACd,EAMK,MAAM4qD,WAA6BrD,EACxCjmD,WAAAA,CAAY8d,GACVJ,MAAMI,GACNlc,KAAKlD,KAAO,sBACd,EAMK,MAAM6qD,WAA8BrD,EACzClmD,WAAAA,CAAY+xB,EAA4Cy3B,EAAkB,IACxE9rC,MAAM,YAAYqU,4DAAmEy3B,GACrF5nD,KAAKlD,KAAO,uBACd,EAMK,MAAM+qD,WAA+BvD,EAC1ClmD,WAAAA,GACE0d,MAAM,6BACN9b,KAAKlD,KAAO,wBACd,EAMK,MAAMgrD,WAA8BxD,EACzClmD,WAAAA,CAAY2pD,GACVjsC,MAAM,yBAAyBisC,gBAC/B/nD,KAAKlD,KAAO,uBACd,EAMK,MAAMkrD,WAAqC1D,EAChDlmD,WAAAA,CAAY8d,GACVJ,MAAMI,GACNlc,KAAKlD,KAAO,8BACd,EAMK,MAAMmrD,WAAoC3D,EAC/ClmD,WAAAA,CAAY8d,GACVJ,MAAMI,GACNlc,KAAKlD,KAAO,6BACd,EAMK,MAAMorD,WAAgC5D,EAC3ClmD,WAAAA,GACE0d,MAAM,0DACN9b,KAAKlD,KAAO,yBACd,EAMK,MAAMqrD,WAAiC7D,EAC5ClmD,WAAAA,GACE0d,MAAM,6BACN9b,KAAKlD,KAAO,0BACd,EAMK,MAAMsrD,WAA4B9D,EAGvClmD,WAAAA,CAAY8d,EAAiBmsC,GAC3BvsC,MAAM,qBAA+B,MAAXI,EAAkB,GAAK,MAAMA,OACvDlc,KAAKlD,KAAO,sBACZkD,KAAKqoD,YAAcA,CACrB,EAMK,MAAMC,WAAoChE,EAC/ClmD,WAAAA,CAAYtB,GACVgf,MAAM,YAAYhf,+BAClBkD,KAAKlD,KAAO,6BACd,EAMK,MAAMyrD,WAAgCjE,EAC3ClmD,WAAAA,CAAYoqD,EAAatrC,GACvBpB,MACE,mBAAmB0sC,mBAAwBtrC,mEAG7Cld,KAAKlD,KAAO,yBACd,EAMK,MAAM2rD,WAAoCnE,EAC/ClmD,WAAAA,CAAYsqD,EAAuBC,GACjC7sC,MACE,4BAA4B4sC,sBAAkCC,yDAGhE3oD,KAAKlD,KAAO,6BACd,EAMK,MAAM8rD,WAAsCtE,EACjDlmD,WAAAA,CAAYuqD,EAAuCE,GACjD/sC,MACE,kCAAkC+sC,EAAc,GAAG,6CAC7CF,QAAmBE,EAAch9C,KAAI,EAAE/O,KAAU,IAAIA,OAAS/C,KAAK,wGAG3EiG,KAAKlD,KAAO,+BACd,EAMK,MAAMgsD,WAA6BvE,EACxCnmD,WAAAA,GACE0d,MAAM,oBACN9b,KAAKlD,KAAO,sBACd,EAMK,MAAMisD,WAAoCxE,EAC/CnmD,WAAAA,GACE0d,MAAM,0CACN9b,KAAKlD,KAAO,6BACd,EAMK,MAAMksD,WAA+BzE,EAC1CnmD,WAAAA,CAAY8d,GACVJ,MAAMI,GACNlc,KAAKlD,KAAO,wBACd,EAMK,MAAMmsD,WAA+B1E,EAC1CnmD,WAAAA,CAAY8qD,GACVptC,MAAM,wBAAwBotC,KAC9BlpD,KAAKlD,KAAO,wBACd,EAMK,MAAMqsD,WAA+B5E,EAC1CnmD,WAAAA,CAAYgrD,GACVttC,MAAM,wBAAwBstC,KAC9BppD,KAAKlD,KAAO,wBACd,EAMK,MAAMusD,WAA2B7E,EACtCpmD,WAAAA,CAAYtB,GACVgf,MAAM,kBAAkBhf,mBACxBkD,KAAKlD,KAAO,oBACd,EAMK,MAAMwsD,WAA0B9E,EACrCpmD,WAAAA,CAAY8d,GACVJ,MAAMI,GACNlc,KAAKlD,KAAO,mBACd,EAMK,MAAMysD,WAAoB9E,EAC/BrmD,WAAAA,CAAY8d,GACVJ,MAAMI,GACNlc,KAAKlD,KAAO,aACd,EAMK,MAAM0sD,WAA2B/E,EACtCrmD,WAAAA,CAAY8d,GACVJ,MAAMI,GACNlc,KAAKlD,KAAO,oBACd,EAMK,MAAM2sD,WAAoBhF,EAC/BrmD,WAAAA,CAAY8d,GACVJ,MAAMI,GACNlc,KAAKlD,KAAO,aACd,EAMK,MAAM4sD,WAA2BjF,EACtCrmD,WAAAA,CAAY8d,GACVJ,MAAMI,GACNlc,KAAKlD,KAAO,oBACd,EAMK,MAAM6sD,WAA8BlF,EACzCrmD,WAAAA,CAAY8d,GACVJ,MAAMI,GACNlc,KAAKlD,KAAO,uBACd,EAMK,MAAM8sD,WAA4BnF,EACvCrmD,WAAAA,CAAY8tC,GACVpwB,MAAM,qBAAqBowB,gBAC3BlsC,KAAKlD,KAAO,qBACd,EAMK,MAAM+sD,WAA4BpF,EACvCrmD,WAAAA,CAAYiO,EAAaumB,GACvB9W,MAAM,8CAA8CzP,aAAeumB,KACnE5yB,KAAKlD,KAAO,qBACd,EAMK,MAAMgtD,WAAyBrF,EACpCrmD,WAAAA,CAAYc,GACV4c,MAAM,qBAAqB5c,gBAC3Bc,KAAKlD,KAAO,aACd,EAMK,MAAMitD,WAA0BtF,EACrCrmD,WAAAA,CAAY4rD,GACVluC,MAAM,eAAekuC,2BACrBhqD,KAAKlD,KAAO,mBACd,EAMK,MAAMmtD,WAA8BvF,EACzCtmD,WAAAA,CAAY8d,GACVJ,MAAMI,GACNlc,KAAKlD,KAAO,uBACd,EAMK,MAAMotD,WAA+BxF,EAC1CtmD,WAAAA,CAAY8d,GACVJ,MAAMI,GACNlc,KAAKlD,KAAO,wBACd,EAMK,MAAMqtD,WAA2BzF,EACtCtmD,WAAAA,CAAY8d,GACVJ,MAAMI,GACNlc,KAAKlD,KAAO,oBACd,ECvvBK,IAAKstD,GAAiB,SAAjBA,GAAiB,OAAjBA,EAAiB,QAAjBA,EAAiB,iBAAjBA,EAAiB,mBAAjBA,EAAiB,iBAAjBA,EAAiB,iBAAjBA,EAAiB,mBAAjBA,EAAiB,gBAAjBA,CAAiB,MAa7B,MAAMC,GAAyB,CAC7B,CAACD,GAAkBE,IAAK,EACxB,CAACF,GAAkBG,UAAW,EAC9B,CAACH,GAAkBI,WAAY,EAC/B,CAACJ,GAAkBK,UAAW,EAC9B,CAACL,GAAkBM,UAAW,GAC9B,CAACN,GAAkBO,WAAY,GAC/B,CAACP,GAAkBQ,SAAU,IAalBC,GAAeA,CAC1Bn7C,GAEEo7C,eAAeV,GAAkBQ,OACjCG,qBAAqBX,GAAkBQ,WAGzC,GFtCsB,iBADIt/B,EEuCT5b,MFpCf,CAAC,SAAU,SAAU,UAAU4G,gBAAgBgV,IAE7CvlB,MAAMulB,KAAqBvY,OAAOhM,UAAUukB,KAAW7wB,EAAUoI,YAAYyoB,IEkCxD,MAAM,IAAIq5B,EAAc,QAAS,WAAYj1C,GFvC5C4b,MEyC1B,OAAO,IAAI7wB,EAA2B,iBAAViV,EAAqBA,EAAMrR,WAAaqR,GACjE1G,UAAUqhD,GAAuBS,GAAgBT,GAAuBU,IACxE3hD,SAAS,EAWD4hD,GAAOA,CAClBt7C,GACEo7C,eAAeV,GAAkBQ,QAAiD,CAAC,IAC1EC,GAAan7C,EAAO,CAAEo7C,eAAcC,mBAAoBX,GAAkBE,KAU1EW,GAAWA,CACtBv7C,GACEo7C,eAAeV,GAAkBE,IAA6C,CAAC,IACtEO,GAAan7C,EAAO,CAAEo7C,iBAO7BI,GAAqB,CACzB,CAAEpuD,KAAM,MAAOquD,UAAW,IAC1B,CAAEruD,KAAM,OAAQquD,UAAW,GAC3B,CAAEruD,KAAM,GAAIquD,UAAW,GACvB,CAAEruD,KAAM,OAAQquD,WAAY,KAGxBC,GAAoBC,GACxBH,GAAStsC,QAAO,CAACtc,EAAG7G,IAClBb,KAAKuL,IAAI1K,EAAE0vD,UAAYE,GAAYzwD,KAAKuL,IAAI7D,EAAE6oD,UAAYE,GAAY5vD,EAAI6G,IAGxEgpD,GAAuBD,IAAgB,IAAAE,EAAA,OACE,QADFA,EAC3CL,GAASvc,MAAMrsC,GAAMA,EAAE6oD,WAAaE,WAAS,IAAAE,EAAAA,EAAIL,GAASA,GAAS3xD,OAAS,EAAE,EAMnEiyD,GAAkBC,IAAkD,IAAAC,EAC/E,MAAMh8C,EAAmB,IAAIjV,EAAUgxD,GAEjCrhD,EAAa,QAAVshD,EAAGh8C,EAAMjT,SAAC,IAAAivD,EAAAA,EAAI,GACjB,KAAE5uD,EAAI,UAAEquD,IAAe/gD,EAAM,EAAIghD,GAAmBE,IAAqBlhD,GAK/E,MAAO,GAJGsF,EACP1G,WAAWmiD,GACXpiD,UAAU,EAAInO,KAAKgC,IAAIwN,EAAM+gD,EAAW,IACxC/hD,YACoB,KAATtM,EAAc,IAAM,KAAKA,GAAM,EChHzC6uD,GAAkB,IAAI5hC,IAAI,CAAC,cAAe,YAAa,QAAS,SAMtE,MAAM6hC,GACF,WAAAxtD,CAAYytD,GACR,IAAIx0B,EACJr3B,KAAK8rD,UAAY,GACjB9rD,KAAK8rD,UAA6F,QAAhFz0B,EAAKw0B,aAA2C,EAASA,EAAS7vD,MAAM,UAAuB,IAAPq7B,EAAgBA,EAAK,GAC/Hr3B,KAAK+rD,sBAAmBl7C,CAC5B,CACA,SAAAm7C,CAAUC,EAAQp9B,EAAU,CAAC,GACzB,GAAIA,EAAQq9B,OAASr9B,EAAQs9B,WACzB,MAAM,IAAIhyD,MAAM,sDAEpB,GAAI00B,EAAQq9B,QAAUP,GAAgBnrC,IAAIqO,EAAQq9B,OAC9C,MAAM,IAAI/xD,MAAM,uBAAuB00B,EAAQq9B,SAEnD,GAAIr9B,EAAQs9B,aAAeR,GAAgBnrC,IAAIqO,EAAQs9B,YACnD,MAAM,IAAIhyD,MAAM,4BAA4B00B,EAAQs9B,cAExDnsD,KAAK8rD,UAAUlyD,KAAK,CAChBqyD,SACAp9B,YAEJ7uB,KAAK+rD,sBAAmBl7C,CAC5B,CACA,YAAAu7C,CAAav9B,GACT,MAAMw9B,EAAkB,GAYxB,OAXArsD,KAAK8rD,UAAY9rD,KAAK8rD,UAAUtd,QAAQ8d,KAC/Bz9B,EAAQ/xB,MAAQwvD,EAAiBL,OAAOnvD,OAAS+xB,EAAQ/xB,MACzD+xB,EAAQq9B,OAASI,EAAiBz9B,QAAQq9B,QAAUr9B,EAAQq9B,SAC7DG,EAAgBzyD,KAAK0yD,EAAiBL,SAC/B,KAMfjsD,KAAK+rD,sBAAmBl7C,EACjBw7C,CACX,CACA,WAAAE,CAAYC,EAAYC,GAOpB,OANiBzsD,KAAK0sD,qBACIC,aAAY,CAAC98B,EAAMo8B,IACjCW,GACGX,EAAOM,YAAYK,EAAK/8B,KAEnC+8B,GAAQJ,EAAWD,YAAYK,IAC5BC,CAASJ,EACpB,CACA,kBAAAC,GAII,OAHK1sD,KAAK+rD,mBACN/rD,KAAK+rD,iBAAmB/rD,KAAK8sD,iBAE1B9sD,KAAK+rD,gBAChB,CACA,KAAAzuD,GACI,OAAO,IAAIsuD,GAAa5rD,KAAK8rD,UACjC,CACA,aAAOxqC,GACH,OAAO,IAAIsqC,EACf,CACA,aAAAkB,GAoCI,MAAM3lC,EAAS,GAET4lC,EAAY,IAAInjC,IACtB,SAASojC,EAAYlwD,GACjB,MAAO,CACHA,OACA+uD,SAAU,IAAI9hC,IACdkjC,QAAQ,EACRC,kBAAkB,EAE1B,CAEA,MAAMC,EAAiBH,EAAY,aAC7BI,EAAUJ,EAAY,QACtBK,EAAmBL,EAAY,eAC/BM,EAAaN,EAAY,SACzBO,EAAYP,EAAY,QAExBQ,EAAgB,CAACL,EAAgBC,EAASC,EAAkBC,EAAYC,GAE9E,SAASE,EAASvB,GACd,MAAc,UAAVA,EACOoB,EAEQ,cAAVpB,EACEiB,EAEQ,gBAAVjB,EACEmB,EAEQ,SAAVnB,EACEqB,EAGAH,CAEf,CAEA,IAAK,MAAMxgC,KAAc5sB,KAAK8rD,UAAW,CACrC,MAAMG,EAASr/B,EAAWq/B,OACpBp9B,EAAUjC,EAAWiC,QACrB6+B,EAAazB,EAAOnvD,KAC1B,GAAIiwD,EAAUvsC,IAAIktC,GACd,MAAM,IAAIvzD,MAAM,kDAEpB,MAAMwzD,EAAO,CACT1B,SACA2B,UAAW,IAAI7jC,IACf8jC,WAAY,IAAI9jC,KAEhB8E,EAAQs9B,aACRwB,EAAKxB,WAAasB,EAAS5+B,EAAQs9B,YACnCwB,EAAKxB,WAAWe,kBAAmB,GAEvCH,EAAU3qD,IAAIsrD,EAAYC,GACZF,EAAS5+B,EAAQq9B,OACzBL,SAAS5lB,IAAI0nB,EACvB,CAEA,IAAK,MAAM/gC,KAAc5sB,KAAK8rD,UAAW,CACrC,MAAM,OAAEG,EAAM,QAAEp9B,GAAYjC,EACtB8gC,EAAazB,EAAOnvD,KACpB6wD,EAAOZ,EAAU33C,IAAIs4C,GAC3B,IAAKC,EACD,MAAM,IAAIxzD,MAAM,2BAA2BuzD,KAE/C,GAAI7+B,EAAQi/B,cACR,IAAK,MAAMC,KAAmBl/B,EAAQi/B,cAAe,CACjD,MAAME,EAAYjB,EAAU33C,IAAI24C,GAC5BC,IAGAL,EAAKC,UAAU3nB,IAAI+nB,GACnBA,EAAUH,WAAW5nB,IAAI0nB,GAEjC,CAEJ,GAAI9+B,EAAQo/B,eACR,IAAK,MAAMC,KAAoBr/B,EAAQo/B,eAAgB,CACnD,MAAME,EAAapB,EAAU33C,IAAI84C,GAC7BC,IAGAA,EAAWP,UAAU3nB,IAAI0nB,GACzBA,EAAKE,WAAW5nB,IAAIkoB,GAE5B,CAER,CACA,SAASC,EAAUlC,GACfA,EAAMe,QAAS,EAEf,IAAK,MAAMU,KAAQzB,EAAML,SACrB,KAAI8B,EAAKxB,YAAgBwB,EAAKxB,WAAWc,SAAUU,EAAKxB,WAAWN,SAASr+C,OAOhD,IAAxBmgD,EAAKC,UAAUpgD,KAAY,CAG3B2Z,EAAOvtB,KAAK+zD,EAAK1B,QAGjB,IAAK,MAAMoC,KAAaV,EAAKE,WACzBQ,EAAUT,UAAUU,OAAOX,GAE/BZ,EAAUuB,OAAOX,EAAK1B,OAAOnvD,MAC7BovD,EAAML,SAASyC,OAAOX,EAC1B,CAER,CACA,SAASY,IACL,IAAK,MAAMrC,KAASsB,EAAe,CAG/B,GAFAY,EAAUlC,GAENA,EAAML,SAASr+C,KAAO,GAAK0+C,IAAUkB,EAQrC,YAPKA,EAAQH,QAITmB,EAAUhB,IAKdlB,EAAMgB,kBAENkB,EAAUhB,EAElB,CACJ,CAEA,IAAIoB,EAAY,EAChB,KAAOzB,EAAUv/C,KAAO,GAAG,CACvBghD,IACA,MAAMC,EAAsBtnC,EAAO5tB,OAMnC,GAJAg1D,IAIIpnC,EAAO5tB,QAAUk1D,GAAuBD,EAAY,EACpD,MAAM,IAAIr0D,MAAM,gEAExB,CACA,OAAOgtB,CACX,E,eCzPJ,MAAMunC,QAAuC,IAAZt9B,IAA2BA,GAAQsB,KAAOtB,GAAQsB,IAAInyB,YAAUsQ,EACjG,IAAI89C,GACAC,GAAoB,GACpBC,GAAoB,GACxB,MAAMC,GAAY,GACdJ,IACAK,GAAOL,IAEX,MAAMM,GAAW7/C,OAAO8/C,QAAQra,GACrBsa,GAAeta,IACvB,CACCma,UACAI,WACAC,QAqCJ,WACI,MAAMjoC,EAASwnC,IAAiB,GAEhC,OADAI,GAAO,IACA5nC,CACX,EAxCIxZ,ICfG,YAAgB3M,GACnB,GAAIA,EAAKzH,OAAS,EAAG,CACjB,MAAM81D,EAAWtyD,OAAOiE,EAAK,IACzBquD,EAAS/4C,SAAS,UAClB5I,QAAQuH,SAASjU,GAEZquD,EAAS/4C,SAAS,YACvB5I,QAAQ+W,QAAQzjB,GAEXquD,EAAS/4C,SAAS,SACvB5I,QAAQ4hD,QAAQtuD,IAEXquD,EAAS/4C,SAAS,YACvB5I,QAAQ6hD,SAASvuD,GAKzB,CACJ,IDFA,SAAS+tD,GAAOS,GACZb,GAAgBa,EAChBZ,GAAoB,GACpBC,GAAoB,GACpB,MAAMY,EAAW,MACXC,EAAgBF,EAAWlmD,MAAM,KAAKuC,KAAK8jD,GAAOA,EAAG35C,OAAO7V,QAAQsvD,EAAU,SACpF,IAAK,MAAME,KAAMD,EACTC,EAAGC,WAAW,KACdf,GAAkBj1D,KAAK,IAAIkQ,OAAO,IAAI6lD,EAAG9lD,OAAO,QAGhD+kD,GAAkBh1D,KAAK,IAAIkQ,OAAO,IAAI6lD,OAG9C,IAAK,MAAME,KAAYf,GACnBe,EAASV,QAAUA,GAAQU,EAASjb,UAE5C,CACA,SAASua,GAAQva,GACb,GAAIA,EAAUkb,SAAS,KACnB,OAAO,EAEX,IAAK,MAAMC,KAAWlB,GAClB,GAAIkB,EAAQ7vD,KAAK00C,GACb,OAAO,EAGf,IAAK,MAAMob,KAAoBpB,GAC3B,GAAIoB,EAAiB9vD,KAAK00C,GACtB,OAAO,EAGf,OAAO,CACX,CAMA,SAASsa,GAAeta,GACpB,MAAMqb,EAAc9gD,OAAO8/C,QAO3B,YAAkBjuD,GACTivD,EAAYd,UAGbnuD,EAAKzH,OAAS,IACdyH,EAAK,GAAK,GAAG4zC,KAAa5zC,EAAK,MAEnCivD,EAAYtiD,OAAO3M,GACvB,GAfyC,CACrCmuD,QAASA,GAAQva,GACjBsb,WACAviD,IAAKqhD,GAASrhD,IACdinC,YACAub,YAYJ,OADArB,GAAUl1D,KAAKq2D,GACRA,CACX,CACA,SAASC,KACL,MAAMhqC,EAAQ4oC,GAAU10D,QAAQ4F,MAChC,OAAIkmB,GAAS,IACT4oC,GAAUvrD,OAAO2iB,EAAO,IACjB,EAGf,CACA,SAASiqC,GAAOvb,GACZ,MAAMqb,EAAcf,GAAe,GAAGlvD,KAAK40C,aAAaA,KAExD,OADAqb,EAAYtiD,IAAM3N,KAAK2N,IAChBsiD,CACX,CACA,U,WExFA,MAAMG,GAAoB,IAAIrmC,IACxBsmC,QAAsC,IAAZ,IAA2B,GAAQ39B,KAAO,GAAQA,IAAI49B,sBAAoBz/C,EAC1G,IAAI0/C,GAMG,MAAMC,GAAcjB,GAAM,SACjCiB,GAAY7iD,IAAM,IAAI3M,KAClBuuD,GAAM5hD,OAAO3M,EAAK,EAEtB,MAAMyvD,GAAmB,CAAC,UAAW,OAAQ,UAAW,SACpDJ,KAEIK,GAAgBL,IAgBjB,SAAqBM,GACxB,GAAIA,IAAUD,GAAgBC,GAC1B,MAAM,IAAIx2D,MAAM,sBAAsBw2D,0BAA8BF,GAAiB12D,KAAK,QAE9Fw2D,GAAgBI,EAChB,MAAM/B,EAAoB,GAC1B,IAAK,MAAMgC,KAAUR,GACbS,GAAaD,IACbhC,EAAkBh1D,KAAKg3D,EAAOhc,WAGtC2a,GAAMR,OAAOH,EAAkB70D,KAAK,KACxC,CA3BQ+2D,CAAYT,IAGZ3iD,QAAQuH,MAAM,6CAA6Co7C,mDAAgEI,GAAiB12D,KAAK,WA+BzJ,MAAMg3D,GAAW,CACbC,QAAS,IACT1B,KAAM,IACNnrC,QAAS,IACTlP,MAAO,KAOJ,SAASg8C,GAAmBrc,GAC/B,MAAMsc,EAAmBV,GAAYL,OAAOvb,GAE5C,OADAuc,GAAeX,GAAaU,GACrB,CACHj8C,MAAOm8C,GAAaF,EAAkB,SACtC/sC,QAASitC,GAAaF,EAAkB,WACxC5B,KAAM8B,GAAaF,EAAkB,QACrCF,QAASI,GAAaF,EAAkB,WAEhD,CACA,SAASC,GAAe5kB,EAAQ8kB,GAC5BA,EAAM1jD,IAAM,IAAI3M,KACZurC,EAAO5+B,OAAO3M,EAAK,CAE3B,CACA,SAASowD,GAAa7kB,EAAQokB,GAC1B,MAAMC,EAASzhD,OAAO8/C,OAAO1iB,EAAO4jB,OAAOQ,GAAQ,CAC/CA,UAGJ,GADAQ,GAAe5kB,EAAQqkB,GACnBC,GAAaD,GAAS,CACtB,MAAMhC,EAAoBW,GAAMH,UAChCG,GAAMR,OAAOH,EAAoB,IAAMgC,EAAOhc,UAClD,CAEA,OADAwb,GAAkBnqB,IAAI2qB,GACfA,CACX,CACA,SAASC,GAAaD,GAClB,OAAO9nC,QAAQynC,IAAiBQ,GAASH,EAAOD,QAAUI,GAASR,IACvE,CACA,SAASG,GAAgBY,GACrB,OAAOb,GAAiBn6C,SAASg7C,EACrC,CC7FO,MAAM,GAASL,GAAmB,sBCiBlC,MAAMM,WAAmBp3D,MAC5B,WAAAiE,CAAY8d,GACRJ,MAAMI,GACNlc,KAAKlD,KAAO,YAChB,EClBG,SAASkwC,GAAStgC,GACrB,QAAyB,iBAAVA,GACD,OAAVA,GACCzS,MAAM+W,QAAQtE,IACbA,aAAiB5C,QACjB4C,aAAiBuB,KAC3B,CCLO,SAASujD,GAAQ/0D,GACpB,GAAIuwC,GAASvwC,GAAI,CACb,MAAMg1D,EAA4B,iBAAXh1D,EAAEK,KACnB40D,EAAkC,iBAAdj1D,EAAEyf,QAC5B,OAAOu1C,GAAWC,CACtB,CACA,OAAO,CACX,CAOO,SAASC,GAAgBl1D,GAC5B,GAAI+0D,GAAQ/0D,GACR,OAAOA,EAAEyf,QAER,CACD,IAAI01C,EACJ,IAEQA,EADa,iBAANn1D,GAAkBA,EACXiiB,KAAKC,UAAUliB,GAGfM,OAAON,EAE7B,CACA,MAAO6mB,GACHsuC,EAAc,6BAClB,CACA,MAAO,iBAAiBA,GAC5B,CACJ,CCdO,SAASC,GAAmBniD,EAAOhP,GACtC,OAAQA,GACJ,IAAK,QACD,OA2CL,SAAgCgP,GACnC,OAAO,IAAIvC,aAAcC,OAAOsC,EACpC,CA7CmBoiD,CAAuBpiD,GAClC,IAAK,SACD,OAAOqiD,GAAmBriD,GAC9B,IAAK,YACD,OAqDL,SAA+BA,GAElC,OAAOqiD,GADcriD,EAAMvP,QAAQ,KAAM,KAAKA,QAAQ,KAAM,KAEhE,CAxDmB6xD,CAAsBtiD,GACjC,IAAK,MACD,OA4DL,SAA+BA,GAElC,MAAMrC,EAAQ,IAAIrT,WAAW0V,EAAMnW,OAAS,GAC5C,IAAK,IAAIV,EAAI,EAAGA,EAAI6W,EAAMnW,OAAS,IAAKV,EAAG,CACvC,MAAMo5D,EAAaviD,EAAM,EAAI7W,GACvBq5D,EAAYxiD,EAAM,EAAI7W,EAAI,GAChC,IAAKs5D,GAAU3xC,IAAIyxC,KAAgBE,GAAU3xC,IAAI0xC,GAE7C,OAAO7kD,EAAMrR,MAAM,EAAGnD,GAE1BwU,EAAMxU,GAAKsa,SAAS,GAAG8+C,IAAaC,IAAa,GACrD,CACA,OAAO7kD,CACX,CAzEmB+kD,CAAsB1iD,GAEzC,CA0CO,SAASqiD,GAAmBriD,GAC/B,OAAO,IAAI1V,WAAW,IAAIq4D,KAAK3iD,IAAQ7D,KAAK3P,GAAMA,EAAE9C,WAAW,KACnE,CASA,MAAM+4D,GAAY,IAAIpoC,IAAI,0BCxF1B,IAAIsN,GAGJ,MAAMi7B,GAAgK,mBAApD,QAApFj7B,GAAoB,OAAf/W,iBAAsC,IAAfA,gBAAwB,EAASA,WAAW9d,cAA2B,IAAP60B,QAAgB,EAASA,GAAGk7B,YAChJjyC,WAAW9d,OAAO+vD,WAAWn1C,KAAKkD,WAAW9d,QCC5C,WACH,IAAIgwD,EAAO,GACX,IAAK,IAAI35D,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAEzB,MAAM45D,EAAe73D,KAAKG,MAAsB,GAAhBH,KAAKsI,UAGjCsvD,GADM,KAAN35D,EACQ,IAEG,KAANA,EAEmB,EAAf45D,EAAsB,EAIvBA,EAAap0D,SAAS,IAGxB,IAANxF,GAAiB,KAANA,GAAkB,KAANA,GAAkB,KAANA,IACnC25D,GAAQ,IAEhB,CACA,OAAOA,CACX,EDjBO,SAAS,KACZ,OAAOF,IACX,CEbA,IAAI,GAAIh7B,GAAIC,GAAIC,GAK2B,oBAAXnX,QAAiCA,OAAOkO,SAI7B,iBAATn2B,MAC8C,mBAA3D,OAATA,WAA0B,IAATA,UAAkB,EAASA,KAAKs6D,iBACmB,gCAA9C,QAA3B,GAAKt6D,KAAKgG,mBAAgC,IAAP,QAAgB,EAAS,GAAGtB,OACa,8BAA9C,QAA3Bw6B,GAAKl/B,KAAKgG,mBAAgC,IAAPk5B,QAAgB,EAASA,GAAGx6B,OACpC,QAA3By6B,GAAKn/B,KAAKgG,mBAAgC,IAAPm5B,IAAyBA,GAAGz6B,MAInC,oBAAT21C,WACD,IAAjBA,KAAK7f,SACL6f,KAAK7f,QAAQ+/B,KAIY,oBAARC,KAA8BA,IAAIhgC,QAlBvD,MAsBMigC,QAA2C,IAAvBvyC,WAAW8Q,SACxCtI,QAAQxI,WAAW8Q,QAAQwB,UAC3B9J,QAA+C,QAAtC0O,GAAKlX,WAAW8Q,QAAQyB,gBAA6B,IAAP2E,QAAgB,EAASA,GAAGm2B,MC5BjFmF,ID0C4C,oBAAdvgB,YAA4C,OAAdA,gBAAoC,IAAdA,WAAgCA,UAAUwgB,SC1C3G,YAEjBC,GAA4B,CAC9B,yBACA,gCACA,iBACA,8BACA,kBACA,oBACA,QACA,2BACA,cACA,mCACA,+BACA,+BACA,8BACA,gCACA,yBACA,iCACA,gCACA,SACA,SACA,kBACA,gBACA,aACA,iBACA,eACA,OACA,OACA,UACA,WACA,oBACA,gBACA,sBACA,gBACA,SACA,aACA,cACA,SACA,oBACA,aACA,oBAEEC,GAAgC,CAAC,eAIhC,MAAMC,GACT,WAAA90D,EAAc+0D,6BAA8BC,EAAqB,GAAIC,iCAAkCC,EAAyB,IAAQ,CAAC,GACrIF,EAAqBJ,GAA0B7uD,OAAOivD,GACtDE,EAAyBL,GAA8B9uD,OAAOmvD,GAC9DtzD,KAAKozD,mBAAqB,IAAIrpC,IAAIqpC,EAAmBvnD,KAAKpQ,GAAMA,EAAEgF,iBAClET,KAAKszD,uBAAyB,IAAIvpC,IAAIupC,EAAuBznD,KAAKvJ,GAAMA,EAAE7B,gBAC9E,CACA,QAAA8yD,CAASlxD,GACL,MAAMmxD,EAAO,IAAIzpC,IACjB,OAAOrL,KAAKC,UAAUtc,GAAK,CAACgK,EAAKqD,KAE7B,GAAIA,aAAiBvV,MACjB,OAAOgV,OAAO8/C,OAAO9/C,OAAO8/C,OAAO,CAAC,EAAGv/C,GAAQ,CAAE5S,KAAM4S,EAAM5S,KAAMof,QAASxM,EAAMwM,UAEtF,GAAY,YAAR7P,EACA,OAAOrM,KAAKyzD,gBAAgB/jD,GAE3B,GAAY,QAARrD,EACL,OAAOrM,KAAK0zD,YAAYhkD,GAEvB,GAAY,UAARrD,EACL,OAAOrM,KAAK2zD,cAAcjkD,GAEzB,GAAY,SAARrD,GAIQ,aAARA,GAIQ,kBAARA,EAAJ,CAKA,GAAIpS,MAAM+W,QAAQtB,IAAUs9B,GAASt9B,GAAQ,CAC9C,GAAI8jD,EAAKhzC,IAAI9Q,GACT,MAAO,aAEX8jD,EAAKvtB,IAAIv2B,EACb,CACA,OAAOA,CADP,CACY,GACb,EACP,CACA,WAAAgkD,CAAYhkD,GACR,GAAqB,iBAAVA,GAAgC,OAAVA,GAA4B,KAAVA,EAC/C,OAAOA,EAEX,MAAMkkD,EAAM,IAAIC,IAAInkD,GACpB,IAAKkkD,EAAIxzD,OACL,OAAOsP,EAEX,IAAK,MAAOrD,KAAQunD,EAAIE,aACf9zD,KAAKszD,uBAAuB9yC,IAAInU,EAAI5L,gBACrCmzD,EAAIE,aAAa1xD,IAAIiK,EAAKymD,IAGlC,OAAOc,EAAIv1D,UACf,CACA,eAAAo1D,CAAgBpxD,GACZ,MAAM0xD,EAAY,CAAC,EACnB,IAAK,MAAM1nD,KAAO8C,OAAO4P,KAAK1c,GACtBrC,KAAKozD,mBAAmB5yC,IAAInU,EAAI5L,eAChCszD,EAAU1nD,GAAOhK,EAAIgK,GAGrB0nD,EAAU1nD,GAAOymD,GAGzB,OAAOiB,CACX,CACA,aAAAJ,CAAcjkD,GACV,GAAqB,iBAAVA,GAAgC,OAAVA,EAC7B,OAAOA,EAEX,MAAMqkD,EAAY,CAAC,EACnB,IAAK,MAAMv3D,KAAK2S,OAAO4P,KAAKrP,GACpB1P,KAAKszD,uBAAuB9yC,IAAIhkB,EAAEiE,eAClCszD,EAAUv3D,GAAKkT,EAAMlT,GAGrBu3D,EAAUv3D,GAAKs2D,GAGvB,OAAOiB,CACX,ECnIG,MAIDC,GAAkB,CAAC,MAAO,QAOzB,SAASC,GAAeplC,EAAU,CAAC,GACtC,MAAM,WAAEqlC,EAAa,IAAOrlC,EAC5B,MAAO,CACH/xB,KAd0B,iBAe1B,iBAAMyvD,CAAYE,EAAS58B,GACvB,MAAMskC,QAAiBtkC,EAAK48B,GAC5B,OAAO2H,GAAevkC,EAAMskC,EAAUD,EAC1C,EAER,CACAG,eAAeD,GAAevkC,EAAMskC,EAAUD,EAAYI,EAAiB,GACvE,MAAM,QAAE7H,EAAO,OAAE8H,EAAM,QAAEC,GAAYL,EAC/BM,EAAiBD,EAAQp/C,IAAI,YACnC,GAAIq/C,IACY,MAAXF,GACe,MAAXA,GAAkBP,GAAgB19C,SAASm2C,EAAQjY,SACxC,MAAX+f,GAAkBP,GAAgB19C,SAASm2C,EAAQjY,SACxC,MAAX+f,GAAqC,SAAnB9H,EAAQjY,QAChB,MAAX+f,IACJD,EAAiBJ,EAAY,CAC7B,MAAMN,EAAM,IAAIC,IAAIY,EAAgBhI,EAAQmH,KAC5CnH,EAAQmH,IAAMA,EAAIv1D,WAGH,MAAXk2D,IACA9H,EAAQjY,OAAS,MACjBiY,EAAQ+H,QAAQlG,OAAO,yBAChB7B,EAAQiI,MAEnBjI,EAAQ+H,QAAQlG,OAAO,iBACvB,MAAMv6C,QAAY8b,EAAK48B,GACvB,OAAO2H,GAAevkC,EAAM9b,EAAKmgD,EAAYI,EAAiB,EAClE,CACA,OAAOH,CACX,CChDO,MAAMQ,GAAc,SCmBpBN,eAAeO,GAAkB11D,GACpC,MAAM21D,EAAc,IAAIjrC,IACxBirC,EAAYzyD,IAAI,qBAAsBuyD,UCWnCN,eAAuCxoD,GAC1C,MAAMipD,EAAiBx0C,WAAWiyB,UAClC,IAAIwiB,EAAa,UACjB,GAAID,aAAuD,EAASA,EAAeE,cAAe,CAC9F,MAAMC,QAAsBH,EAAeE,cAAcE,qBAAqB,CAC1E,eACA,oBAEJH,EAAa,GAAGE,EAAcE,gBAAgBF,EAAcG,YAAYH,EAAcI,kBAEtF,MAAMC,EAvBd,SAA+BC,GAC3B,MAAMC,EAAa,CAAC,gBAAiB,iBAAkB,QAAS,QAAS,YACzE,IAAK,MAAMF,KAASE,EAAY,CAC5B,MAAMC,EAAaF,EAAO5mB,MAAMvyC,GAAMA,EAAEk5D,QAAUA,IAClD,GAAIG,EACA,OAAOA,CAEf,CAEJ,CAcsBC,CAAsBZ,EAAeE,cAAcO,QAC7DD,GACAzpD,EAAIzJ,IAAIkzD,EAAMA,MAAOA,EAAM1iC,QAEnC,MACK,GAAIkiC,aAAuD,EAASA,EAAeM,SAAU,CAC9FL,EAAaD,EAAeM,SAC5B,MAAME,EA3Cd,SAAwB9iB,GACpB,MAAMmjB,EAAiB,CACnB,CAAE74D,KAAM,UAAW84D,MAAO,qBAC1B,CAAE94D,KAAM,SAAU84D,MAAO,8BAE7B,IAAK,MAAMnjC,KAAWkjC,EAAgB,CAClC,MAAMtqC,EAAQmnB,EAAUnnB,MAAMoH,EAAQmjC,OACtC,GAAIvqC,EACA,MAAO,CAAEiqC,MAAO7iC,EAAQ31B,KAAM81B,QAASvH,EAAM,GAErD,CAEJ,CA+BsBwqC,CAAef,EAAetiB,WACxC8iB,GACAzpD,EAAIzJ,IAAIkzD,EAAMA,MAAOA,EAAM1iC,QAEnC,KAC2C,iBAA3BtS,WAAWw1C,aACvBjqD,EAAIzJ,IAAI,cAAeke,WAAWw1C,aAEtCjqD,EAAIzJ,IAAI,KAAM2yD,EAClB,CDpCUgB,CAAwBlB,GAC9B,MAAMmB,EArBV,SAA4BC,GACxB,MAAMx8D,EAAQ,GACd,IAAK,MAAO4S,EAAKqD,KAAUumD,EAAe,CACtC,MAAMC,EAAQxmD,EAAQ,GAAGrD,KAAOqD,IAAUrD,EAC1C5S,EAAMG,KAAKs8D,EACf,CACA,OAAOz8D,EAAMM,KAAK,IACtB,CAcyBo8D,CAAmBtB,GAExC,OADuB31D,EAAS,GAAGA,KAAU82D,IAAiBA,CAElE,CEzBA,MAAMI,GDGK,iBCCEC,GAAsB,kBCyB7BC,GAAa5nD,OAAO,cAWnB,SAAS6nD,GAAcC,GAC1B,MAVgC,mBAUdA,EAVFF,IAWLE,EAAKF,MAGLE,EAAK1iC,QAEpB,CChDO,SAAS,GAAqB53B,GACjC,OAAO4sB,QAAQ5sB,GAA0B,mBAAdA,EAAQ,KACvC,CACO,SAASu6D,GAAoBv6D,GAChC,OAAO4sB,QAAQ5sB,GACY,mBAAhBA,EAAEw6D,WACQ,mBAAVx6D,EAAEy6D,IACjB,CCEAtC,eAAeuC,GAAWzmC,GACtB,GAAIA,aAAkB0mC,MAAQ1mC,aAAkBn2B,WAC5C,OAAOm2B,EAEX,GAAIsmC,GAAoBtmC,GACpB,OAPG,IAAI2mC,SAOM3mC,GAPWqmC,OAY5B,MAAMF,EAAaC,GAAcpmC,GAEjC,GAAI,GAAqBmmC,GACrB,MAAM,IAAIn8D,MAAM,mJAEpB,OAAOy8D,GAAWN,EACtB,CCnBA,SAASS,GAAcvC,GACnB,IAAIrtC,EAAS,GACb,IAAK,MAAO9a,EAAKqD,KAAU8kD,EACvBrtC,GAAU,GAAG9a,MAAQqD,QAEzB,OAAOyX,CACX,CACA,SAAS6vC,GAAU7mC,GACf,OAAIA,aAAkBn2B,WACXm2B,EAAO93B,WFHS,mBEKX83B,EFLA2D,QEOY,IAAjB3D,EAAO3iB,UAAcqD,EAAYsf,EAAO3iB,UAG/C,CAER,CAmCO,MAAMypD,GAAsB,kBAE7BC,GAA0B,IAAIntC,IAAI,6EAYjC,SAASotC,KACZ,MAAO,CACHr6D,KAAMm6D,GACN,iBAAM1K,CAAYE,EAAS58B,GACvB,IAAIwH,EACJ,IAAKo1B,EAAQ2K,cACT,OAAOvnC,EAAK48B,GAEhB,GAAIA,EAAQiI,KACR,MAAM,IAAIv6D,MAAM,iEAEpB,IAAIk9D,EAAW5K,EAAQ2K,cAAcC,SACrC,MAAMC,EAAmE,QAA9CjgC,EAAKo1B,EAAQ+H,QAAQp/C,IAAI,uBAAoC,IAAPiiB,EAAgBA,EAAK,kBAChGkgC,EAAeD,EAAkBjsC,MAAM,8CAC7C,IAAKksC,EACD,MAAM,IAAIp9D,MAAM,0EAA0Em9D,KAE9F,MAAO,CAAEE,EAAaC,GAAkBF,EACxC,GAAIE,GAAkBJ,GAAYI,IAAmBJ,EACjD,MAAM,IAAIl9D,MAAM,uCAAuCs9D,4BAAyCJ,yBAYpG,OAVAA,UAAuDA,EAAWI,GAC9DJ,EAjChB,SAA6BA,GACzB,GAAIA,EAAS99D,OAHS,GAIlB,MAAM,IAAIY,MAAM,uBAAuBk9D,8CAE3C,GAAIp9D,MAAMwV,KAAK4nD,GAAU5oB,MAAMvyC,IAAOg7D,GAAwB12C,IAAItkB,KAC9D,MAAM,IAAI/B,MAAM,uBAAuBk9D,iCAE/C,CA2BgBK,CAAoBL,GAGpBA,EA/FL,wBAAwB,OAiGvB5K,EAAQ+H,QAAQpyD,IAAI,eAAgB,GAAGo1D,eAAyBH,WA/D5EhD,eAAgC5H,EAAShzD,EAAO49D,GAC5C,MAAMM,EAAU,CACZ9F,GAAmB,KAAKwF,IAAY,YACjC59D,EAAMm+D,SAAS9rC,GAAS,CACvB+lC,GAAmB,OAAQ,SAC3BA,GAAmBkF,GAAcjrC,EAAK0oC,SAAU,SAChD3C,GAAmB,OAAQ,SAC3B/lC,EAAK4oC,KACL7C,GAAmB,SAASwF,IAAY,YAE5CxF,GAAmB,aAAc,UAE/BgG,EAzBV,SAAwBF,GACpB,IAAIG,EAAQ,EACZ,IAAK,MAAM3nC,KAAUwnC,EAAS,CAC1B,MAAMI,EAAaf,GAAU7mC,GAC7B,QAAmBtf,IAAfknD,EACA,OAGAD,GAASC,CAEjB,CACA,OAAOD,CACX,CAa0BE,CAAeL,GACjCE,GACApL,EAAQ+H,QAAQpyD,IAAI,iBAAkBy1D,GAE1CpL,EAAQiI,WDnBLL,eAAsBsD,GACzB,MAAMl+D,EAAQ,GACd,IAAK,MAAM02B,KAAUwnC,EACjBl+D,EAAMG,WAAWg9D,GAA6B,mBAAXzmC,EAAwBA,IAAWA,IAE1E,OAAO,IAAI0mC,KAAKp9D,EACpB,CCayB0K,CAAOwzD,EAChC,CA+CkBM,CAAiBxL,EAASA,EAAQ2K,cAAc39D,MAAO49D,GAC7D5K,EAAQ2K,mBAAgBvmD,EACjBgf,EAAK48B,EAChB,EAER,CChGO,SAAS,GAAMyL,EAAWxoD,EAAOmf,GACpC,OAAO,IAAI3L,SAAQ,CAACC,EAASC,KACzB,IAAI+0C,EACAC,EACJ,MAAMC,EAAgB,IACXj1C,EAAO,IAAImuC,IAAY1iC,aAAyC,EAASA,EAAQypC,eAAiBzpC,aAAyC,EAASA,EAAQypC,cAflJ,+BAiBfC,EAAkB,MACf1pC,aAAyC,EAASA,EAAQ2pC,cAAgBJ,GAC3EvpC,EAAQ2pC,YAAYhzC,oBAAoB,QAAS4yC,EACrD,EASJ,GAPAA,EAAY,KACJD,GACAzmC,aAAaymC,GAEjBI,IACOF,MAENxpC,aAAyC,EAASA,EAAQ2pC,cAAgB3pC,EAAQ2pC,YAAYC,QAC/F,OAAOJ,IAEXF,EAAQ1mC,YAAW,KACf8mC,IACAp1C,EAAQzT,EAAM,GACfwoD,IACCrpC,aAAyC,EAASA,EAAQ2pC,cAC1D3pC,EAAQ2pC,YAAYlzC,iBAAiB,QAAS8yC,EAClD,GAER,CAKO,SAASM,GAAyBvE,EAAUwE,GAC/C,MAAMjpD,EAAQykD,EAASK,QAAQp/C,IAAIujD,GACnC,IAAKjpD,EACD,OACJ,MAAMkpD,EAAa7lD,OAAOrD,GAC1B,OAAIqD,OAAOhN,MAAM6yD,QAAjB,EAEOA,CACX,CCjDA,MAAMC,GAAmB,cAQnBC,GAAuB,CAAC,iBAAkB,sBAAuBD,IAUvE,SAASE,GAAkB5E,GACvB,GAAMA,GAAY,CAAC,IAAK,KAAK79C,SAAS69C,EAASI,QAE/C,IAEI,IAAK,MAAMyE,KAAUF,GAAsB,CACvC,MAAMG,EAAkBP,GAAyBvE,EAAU6E,GAC3D,GAAwB,IAApBC,GAAyBA,EAIzB,OAAOA,GADmBD,IAAWH,GAAmB,IAAO,EAGvE,CAEA,MAAMK,EAAmB/E,EAASK,QAAQp/C,IAAIyjD,IAC9C,IAAKK,EACD,OACJ,MACMC,EADOlrD,KAAK6gB,MAAMoqC,GACJjrD,KAAKmrD,MAEzB,OAAOrmD,OAAO1L,SAAS8xD,GAAQv+D,KAAKiC,IAAI,EAAGs8D,QAAQtoD,CACvD,CACA,MAAOwmB,GACH,MACJ,CACJ,CCvCO,SAASgiC,GAAyBxqC,EAAU,CAAC,GAChD,IAAIwI,EAAIC,EACR,MAAMgiC,EAAkD,QAAjCjiC,EAAKxI,EAAQ0qC,sBAAmC,IAAPliC,EAAgBA,EAT9C,IAU5BmiC,EAAwD,QAApCliC,EAAKzI,EAAQ4qC,yBAAsC,IAAPniC,EAAgBA,EAThD,KAUtC,MAAO,CACHx6B,KAAM,2BACN,KAAA48D,EAAM,WAAEC,EAAU,SAAExF,EAAQ,cAAEyF,IAC1B,MAAMC,KAiCYv2C,EAjCuBs2C,KAqC5B,cAAbt2C,EAAIppB,MACK,oBAAbopB,EAAIppB,MACS,iBAAbopB,EAAIppB,MACS,eAAbopB,EAAIppB,MACS,WAAbopB,EAAIppB,MACS,cAAbopB,EAAIppB,MAzCM4/D,EAAqBD,GAAsBhrC,EAAQirC,mBACnDC,EAqBX,SAAoC5F,GACvC,OAAOrrC,QAAQqrC,QACStjD,IAApBsjD,EAASI,SACRJ,EAASI,QAAU,KAA2B,MAApBJ,EAASI,SAChB,MAApBJ,EAASI,QACW,MAApBJ,EAASI,OACjB,CA3BkCyF,CAA2B7F,GAC3C8F,EAA4BF,GAAiBlrC,EAAQqrC,sBACrDC,EAAkBhG,IDiC7B,SAAmCA,GACtC,OAAOphD,OAAO1L,SAAS0xD,GAAkB5E,GAC7C,CCnCiDiG,CAA0BjG,KAAc4F,GA6BlF,IAAuBz2C,EA5BlB,OAAI62C,GAAmBF,GAA6BH,EACzC,CAAEO,cAAc,IAEvBT,GAAkBC,GAAuBE,ECClD,SAA6BO,EAAcn4D,GAE9C,MAAMo4D,EAAmBp4D,EAAOo3D,eAAiB3+D,KAAKsJ,IAAI,EAAGo2D,GAEvDE,EAAe5/D,KAAKgC,IAAIuF,EAAOs3D,kBAAmBc,GCtBrD,IAAmC39D,EAAKC,ED0B3C,MAAO,CAAE49D,eADcD,EAAe,GCzBA59D,EDyB8B,ECzBzBC,EDyB4B29D,EAAe,ECvBtF59D,EAAMhC,KAAKC,KAAK+B,GAChBC,EAAMjC,KAAKG,MAAM8B,GAIFjC,KAAKG,MAAMH,KAAKsI,UAAYrG,EAAMD,EAAM,IACvCA,GDmBpB,CDPmB89D,CAAoBf,EAAY,CACnCJ,eAAgBD,EAChBG,kBAAmBD,IAJZ,CAAEmB,aAAcf,EAM/B,EAER,CG9BA,MAAMgB,GAAoB3J,GAAmB,kCAQtC,SAAS4J,GAAYC,EAAYjsC,EAAU,CAAEqlC,WbXV,IaYtC,MAAMtD,EAAS/hC,EAAQ+hC,QAAUgK,GACjC,MAAO,CACH99D,KAPgB,cAQhB,iBAAMyvD,CAAYE,EAAS58B,GACvB,IAAIwH,EAAIC,EACR,IAAI68B,EACAyF,EACAD,GAAc,EAClBoB,EAAc,OAAa,CACvBpB,GAAc,EACdxF,OAAWtjD,EACX+oD,OAAgB/oD,EAChB,IACI+/C,EAAOtB,KAAK,SAASqK,gCAA0ClN,EAAQuO,WACvE7G,QAAiBtkC,EAAK48B,GACtBmE,EAAOtB,KAAK,SAASqK,sCAAgDlN,EAAQuO,UACjF,CACA,MAAOv+D,GAMH,GALAm0D,EAAO37C,MAAM,SAAS0kD,oCAA8ClN,EAAQuO,WAI5EpB,EAAgBn9D,GACXA,GAA4B,cAAvBm9D,EAAc98D,KACpB,MAAML,EAEV03D,EAAWyF,EAAczF,QAC7B,CACA,GAAmC,QAA9B98B,EAAKo1B,EAAQ+L,mBAAgC,IAAPnhC,OAAgB,EAASA,EAAGohC,QAGnE,MAFA7H,EAAO37C,MAAM,SAAS0kD,uBACH,IAAIpI,GAG3B,GAAIoI,IAA6C,QAA7BriC,EAAKzI,EAAQqlC,kBAA+B,IAAP58B,EAAgBA,Eb7C/C,Ga6CiF,CAEvG,GADAs5B,EAAOtB,KAAK,SAASqK,0GACjBC,EACA,MAAMA,EAEL,GAAIzF,EACL,OAAOA,EAGP,MAAM,IAAIh6D,MAAM,6DAExB,CACAy2D,EAAOtB,KAAK,SAASqK,iBAA0BmB,EAAWvhE,4BAC1D0hE,EAAgB,IAAK,MAAMC,KAAYJ,EAAY,CAC/C,MAAMK,EAAiBD,EAAStK,QAAUgK,GAC1CO,EAAe7L,KAAK,SAASqK,gCAAyCuB,EAASp+D,SAC/E,MAAMs+D,EAAYF,EAASxB,MAAM,CAC7BC,aACAxF,WACAyF,kBAEJ,GAAIwB,EAAUf,aAAc,CACxBc,EAAe7L,KAAK,SAASqK,eAC7B,SAASsB,CACb,CACA,MAAM,aAAEN,EAAY,eAAEF,EAAc,WAAEY,GAAeD,EACrD,GAAIT,EAEA,MADAQ,EAAelmD,MAAM,SAAS0kD,qBAA8BuB,EAASp+D,qBAAsB69D,GACrFA,EAEV,GAAIF,GAAqC,IAAnBA,EAAsB,CACxCU,EAAe7L,KAAK,SAASqK,qBAA8BuB,EAASp+D,sBAAsB29D,WACpF,GAAMA,OAAgB5pD,EAAW,CAAE2nD,YAAa/L,EAAQ+L,cAC9D,SAASuC,CACb,CACA,GAAIM,EAAY,CACZF,EAAe7L,KAAK,SAASqK,qBAA8BuB,EAASp+D,qBAAqBu+D,KACzF5O,EAAQmH,IAAMyH,EACd,SAASN,CACb,CACJ,CACA,GAAInB,EAEA,MADAhJ,EAAOtB,KAAK,iFACNsK,EAEV,GAAIzF,EAEA,OADAvD,EAAOtB,KAAK,qFACL6E,CAKf,CACJ,EAER,CCrGA,SAASmH,GAAcx+D,GACnB,OAAOA,EAAK2D,aAChB,CAMA,MAAM86D,GACF,WAAAn9D,CAAYo9D,GAER,GADAx7D,KAAKy7D,YAAc,IAAI7xC,IACnB4xC,EACA,IAAK,MAAM7C,KAAcxpD,OAAO4P,KAAKy8C,GACjCx7D,KAAKoC,IAAIu2D,EAAY6C,EAAW7C,GAG5C,CAOA,GAAAv2D,CAAItF,EAAM4S,GACN1P,KAAKy7D,YAAYr5D,IAAIk5D,GAAcx+D,GAAO,CAAEA,OAAM4S,MAAO3S,OAAO2S,GAAOsG,QAC3E,CAMA,GAAAZ,CAAItY,GACA,IAAIu6B,EACJ,OAA4D,QAApDA,EAAKr3B,KAAKy7D,YAAYrmD,IAAIkmD,GAAcx+D,WAA2B,IAAPu6B,OAAgB,EAASA,EAAG3nB,KACpG,CAKA,GAAA8Q,CAAI1jB,GACA,OAAOkD,KAAKy7D,YAAYj7C,IAAI86C,GAAcx+D,GAC9C,CAKA,OAAOA,GACHkD,KAAKy7D,YAAYnN,OAAOgN,GAAcx+D,GAC1C,CAIA,MAAA2N,CAAOokB,EAAU,CAAC,GACd,MAAM1H,EAAS,CAAC,EAChB,GAAI0H,EAAQ6sC,aACR,IAAK,MAAMC,KAAS37D,KAAKy7D,YAAYriB,SACjCjyB,EAAOw0C,EAAM7+D,MAAQ6+D,EAAMjsD,WAI/B,IAAK,MAAOksD,EAAgBD,KAAU37D,KAAKy7D,YACvCt0C,EAAOy0C,GAAkBD,EAAMjsD,MAGvC,OAAOyX,CACX,CAIA,QAAA9oB,GACI,OAAOqgB,KAAKC,UAAU3e,KAAKyK,OAAO,CAAEixD,cAAc,IACtD,CAIA,CAAChtD,OAAO6X,YACJ,OAzER,UAAyB1a,GACrB,IAAK,MAAM8vD,KAAS9vD,EAAIutC,cACd,CAACuiB,EAAM7+D,KAAM6+D,EAAMjsD,MAEjC,CAqEemsD,CAAe77D,KAAKy7D,YAC/B,EAMG,SAASK,GAAkBN,GAC9B,OAAO,IAAID,GAAgBC,EAC/B,CCrFO,MCGMO,GAA+B,2BCF/BC,GAAmB,CAC5BC,KAAMvtD,OAAOo1C,IAAI,4BACjBlP,UAAWlmC,OAAOo1C,IAAI,kCASnB,SAASoY,GAAqBrtC,EAAU,CAAC,GAC5C,IAAIlO,EAAU,IAAIw7C,GAAmBttC,EAAQutC,eAO7C,OANIvtC,EAAQotC,OACRt7C,EAAUA,EAAQ07C,SAASL,GAAiBC,KAAMptC,EAAQotC,OAE1DptC,EAAQ+lB,YACRj0B,EAAUA,EAAQ07C,SAASL,GAAiBpnB,UAAW/lB,EAAQ+lB,YAE5Dj0B,CACX,CAEO,MAAMw7C,GACT,WAAA/9D,CAAYk+D,GACRt8D,KAAKu8D,YACDD,aAA0BH,GACpB,IAAIvyC,IAAI0yC,EAAeC,aACvB,IAAI3yC,GAClB,CACA,QAAAyyC,CAAShwD,EAAKqD,GACV,MAAM8sD,EAAa,IAAIL,GAAmBn8D,MAE1C,OADAw8D,EAAWD,YAAYn6D,IAAIiK,EAAKqD,GACzB8sD,CACX,CACA,QAAAC,CAASpwD,GACL,OAAOrM,KAAKu8D,YAAYnnD,IAAI/I,EAChC,CACA,WAAAqwD,CAAYrwD,GACR,MAAMmwD,EAAa,IAAIL,GAAmBn8D,MAE1C,OADAw8D,EAAWD,YAAYjO,OAAOjiD,GACvBmwD,CACX,ECvCG,MAAM13C,GAAQ,CACjB63C,gCAA4B9rD,GCkDzB,SAAS+rD,KAIZ,OAHK93C,GAAM63C,6BACP73C,GAAM63C,2BAjCH,CACHE,qBAAsB,KACX,CAAC,GAEZC,uBAAwB,KACJ,EAEpBC,UAAW,CAACC,EAAOC,KACR,CACHhB,KA7BL,CACH3hE,IAAK,OAGL4iE,YAAa,KAAM,EACnBC,gBAAiB,OAGjBC,aAAc,OAGdC,UAAW,OAGXC,SAAU,QAgBFC,eAAgBrB,GAAqB,CAAEE,cAAea,EAAYM,mBAG1E,WAAAC,CAAYC,EAAUC,KAAaC,GAC/B,OAAOD,KAAYC,EACvB,IAoBG74C,GAAM63C,0BACjB,CC3DO,MAAMiB,GAAS,CAAC,ECGjBC,GAAiB,IAAI3K,GAIpB,MAAM4K,WAAkB3jE,MAC3B,WAAAiE,CAAY8d,EAAS2S,EAAU,CAAC,GAC5B/S,MAAMI,GACNlc,KAAKlD,KAAO,YACZkD,KAAK9F,KAAO20B,EAAQ30B,KACpB8F,KAAK+9D,WAAalvC,EAAQkvC,WAK1B5uD,OAAO+F,eAAelV,KAAM,UAAW,CAAE0P,MAAOmf,EAAQ49B,QAASt3C,YAAY,IAC7EhG,OAAO+F,eAAelV,KAAM,WAAY,CAAE0P,MAAOmf,EAAQslC,SAAUh/C,YAAY,IAC/EhG,OAAOC,eAAepP,KAAM89D,GAAU3/D,UAC1C,CAIA,CAACy/D,MAGG,MAAO,cAAc59D,KAAKkc,cAAc2hD,GAAetK,SAASpkD,OAAO8/C,OAAO9/C,OAAO8/C,OAAO,CAAC,EAAGjvD,MAAO,CAAEysD,QAASzsD,KAAKysD,QAAS0H,SAAUn0D,KAAKm0D,aACnJ,EAiBG,SAAS6J,GAAYvhE,GACxB,OAAIA,aAAaqhE,IAGVtM,GAAQ/0D,IAAiB,cAAXA,EAAEK,IAC3B,CChCO,SAASmhE,GAA0BpvC,GACtC,IAAIwI,EACJ,MAAMw1B,EpC6OCjB,GAAatqC,SqC1PjB,IAAmB48C,ECAEC,EFyCxB,OA3BItL,KACIhkC,EAAQsvC,OACRtR,EAASb,WEhBOmS,EFgBetvC,EAAQsvC,MEfxC,CACHrhE,KANuB,cAOvByvD,YAAa8H,MAAOzH,EAAK/8B,KAEhB+8B,EAAIuR,QACLvR,EAAIuR,MAAQA,GAETtuC,EAAK+8B,OFUZ/9B,EAAQuvC,YACRvR,EAASb,WCnBKkS,EDmBervC,EAAQuvC,WClBtC,CACHthE,KANqB,YAOrByvD,YAAa8H,MAAOzH,EAAK/8B,KAEhB+8B,EAAIsR,cACLtR,EAAIsR,YAAcA,GAEfruC,EAAK+8B,ODahBC,EAASb,UPnBV,WACH,MAAM,IAAI7xD,MATO,sDAUrB,COiB2BkkE,CAAYxvC,EAAQyvC,eACvCzR,EAASb,UGrBV,WACH,MAAM,IAAI7xD,MAAM,mEACpB,CHmB2BokE,KAEvB1R,EAASb,UIZF,CACHlvD,KAf0B,iBAgB1B,iBAAMyvD,CAAYE,EAAS58B,GAKvB,GAJIgjC,IAAkC,oBAAb2L,UAA4B/R,EAAQiI,gBAAgB8J,WACzE/R,EAAQgS,SAjBxB,SAA+BA,GAC3B,IAAIpnC,EACJ,MAAMqnC,EAAc,CAAC,EACrB,IAAK,MAAOryD,EAAKqD,KAAU+uD,EAAStlB,UACJ,QAA3B9hB,EAAKqnC,EAAYryD,UAAyB,IAAPgrB,IAAsBqnC,EAAYryD,GAAO,IAC7EqyD,EAAYryD,GAAKzS,KAAK8V,GAE1B,OAAOgvD,CACX,CASmCC,CAAsBlS,EAAQiI,MACjDjI,EAAQiI,UAAO7jD,GAEf47C,EAAQgS,SAAU,CAClB,MAAMjH,EAAc/K,EAAQ+H,QAAQp/C,IAAI,gBACpCoiD,IAA6E,IAA9DA,EAAYp9D,QAAQ,qCACnCqyD,EAAQiI,KAW5B,SAA0B+J,GACtB,MAAMG,EAAkB,IAAIC,gBAC5B,IAAK,MAAOxyD,EAAKqD,KAAUP,OAAOgqC,QAAQslB,GACtC,GAAIxkE,MAAM+W,QAAQtB,GACd,IAAK,MAAMovD,KAAYpvD,EACnBkvD,EAAgBG,OAAO1yD,EAAKyyD,EAASzgE,iBAIzCugE,EAAgBG,OAAO1yD,EAAKqD,EAAMrR,YAG1C,OAAOugE,EAAgBvgE,UAC3B,CAxBmC2gE,CAAiBvS,EAAQgS,gBAyB5DpK,eAA+BoK,EAAUhS,GAErC,MAAM+K,EAAc/K,EAAQ+H,QAAQp/C,IAAI,gBACxC,GAAIoiD,IAAgBA,EAAY5H,WAAW,uBAEvC,OAEJnD,EAAQ+H,QAAQpyD,IAAI,eAAgBo1D,QAAiDA,EAAc,uBAEnG,MAAM/9D,EAAQ,GACd,IAAK,MAAOwlE,EAAW7lB,KAAWjqC,OAAOgqC,QAAQslB,GAC7C,IAAK,MAAM/uD,KAASzV,MAAM+W,QAAQooC,GAAUA,EAAS,CAACA,GAClD,GAAqB,iBAAV1pC,EACPjW,EAAMG,KAAK,CACP46D,QAASsH,GAAkB,CACvB,sBAAuB,oBAAoBmD,OAE/CvK,KAAM7C,GAAmBniD,EAAO,eAGnC,IAAIA,SAA0D,iBAAVA,EACrD,MAAM,IAAIvV,MAAM,4BAA4B8kE,MAAcvvD,kDAEzD,CAED,MAAMwvD,EAAWxvD,EAAM5S,MAAQ,OACzB03D,EAAUsH,KAChBtH,EAAQpyD,IAAI,sBAAuB,oBAAoB68D,iBAAyBC,MAEhF1K,EAAQpyD,IAAI,eAAgBsN,EAAMqB,MAAQ,4BAC1CtX,EAAMG,KAAK,CACP46D,UACAE,KAAMhlD,GAEd,EAGR+8C,EAAQ2K,cAAgB,CAAE39D,QAC9B,CA5D0B0lE,CAAgB1S,EAAQgS,SAAUhS,GAE5CA,EAAQgS,cAAW5tD,CACvB,CACA,OAAOgf,EAAK48B,EAChB,GJNiC,CAAEwB,eAAgB,CAACgJ,MACxDpK,EAASb,UnBrBN,SAAyBn9B,EAAU,CAAC,GACvC,MAAMuwC,EAAiBxK,GAAkB/lC,EAAQwwC,iBACjD,MAAO,CACHviE,KAAMu5D,GACN,iBAAM9J,CAAYE,EAAS58B,GAIvB,OAHK48B,EAAQ+H,QAAQh0C,IAAI41C,KACrB3J,EAAQ+H,QAAQpyD,IAAIg0D,SAA2BgJ,GAE5CvvC,EAAK48B,EAChB,EAER,CmBUuB6S,CAAgBzwC,EAAQ0wC,mBAC3C1S,EAASb,UNvBN,SAAkCwT,EAAsB,0BAC3D,MAAO,CACH1iE,KAAMi/D,GACN,iBAAMxP,CAAYE,EAAS58B,GAIvB,OAHK48B,EAAQ+H,QAAQh0C,IAAIg/C,IACrB/S,EAAQ+H,QAAQpyD,IAAIo9D,EAAqB/S,EAAQuO,WAE9CnrC,EAAK48B,EAChB,EAER,CMauBgT,CAA6D,QAAnCpoC,EAAKxI,EAAQ6wC,wBAAqC,IAAProC,OAAgB,EAASA,EAAGsoC,4BAIpH9S,EAASb,UAAUmL,KAAmB,CAAEhL,WAAY,gBACpDU,EAASb,UKxBN,SAA4Bn9B,EAAU,CAAC,GAC1C,IAAIwI,EACJ,MAAO,CACHv6B,KAV8B,qBAW9ByvD,YAAasO,GAAY,ClBwCtB,CACH/9D,KAAM,0BACN,KAAA48D,EAAM,SAAEvF,IACJ,MAAMsG,EAAiB1B,GAAkB5E,GACzC,OAAKphD,OAAO1L,SAASozD,GAGd,CACHA,kBAHO,CAAEJ,cAAc,EAK/B,GkBlDqDhB,GAAyBxqC,IAAW,CACrFqlC,WAA0C,QAA7B78B,EAAKxI,EAAQqlC,kBAA+B,IAAP78B,EAAgBA,E3BlBpC,I2BmB/Bk1B,YAEX,CLgBuBqT,CAAmB/wC,EAAQgxC,cAAe,CAAE3T,MAAO,UACtEW,EAASb,UMtBN,SAAuBn9B,EAAU,CAAC,GACrC,MAAMixC,EAAmBlL,GAAkB/lC,EAAQwwC,iBAC7CU,EAAY,IAAI7M,GAAU,CAC5BG,iCAAkCxkC,EAAQwkC,mCAExC2M,EAkCV,WACI,IACI,OClDD,SAA6BnxC,GAChC,MAAM,UAAE+lB,EAAS,YAAEqrB,EAAW,eAAEC,GAAmBrxC,EACnD,SAASkuC,EAAUjgE,EAAMqjE,EAAkBlD,GACvC,IAAI5lC,EACJ,MAAM+oC,EAAkBxD,KAAkBG,UAAUjgE,EAAMqS,OAAO8/C,OAAO9/C,OAAO8/C,OAAO,CAAC,EAAGgO,GAAc,CAAEgD,YAAaA,EAAaC,eAAgBA,EAAgB3C,eAA+H,QAA9GlmC,EAAK8oC,aAA2D,EAASA,EAAiBE,sBAAmC,IAAPhpC,OAAgB,EAASA,EAAGkmC,kBACvU,IAAIA,EAAiB6C,EAAgB7C,eACrC,MAAMtB,EAAOmE,EAAgBnE,KAQ7B,OAPKsB,EAAed,SAAST,GAAiBpnB,aAC1C2oB,EAAiBA,EAAelB,SAASL,GAAiBpnB,UAAWA,IAEzEqnB,EAAKmB,aAAa,eAAgBG,EAAed,SAAST,GAAiBpnB,YAIpE,CACHqnB,OACAqE,eALmBnxD,OAAO8/C,OAAO,CAAC,EAAGkR,EAAkB,CACvDE,eAAgBlxD,OAAO8/C,OAAO9/C,OAAO8/C,OAAO,CAAC,EAAGkR,aAA2D,EAASA,EAAiBE,gBAAiB,CAAE9C,qBAMhK,CAgBA,SAASC,EAAY78C,EAAS+8C,KAAaC,GACvC,OAAOf,KAAkBY,YAAY78C,EAAS+8C,KAAaC,EAC/D,CAmBA,MAAO,CACHZ,YACAwD,SAtCJlM,eAAwBv3D,EAAMqjE,EAAkBzC,EAAUT,GACtD,MAAM,KAAEhB,EAAI,eAAEqE,GAAmBvD,EAAUjgE,EAAMqjE,EAAkBlD,GACnE,IACI,MAAM91C,QAAeq2C,EAAY8C,EAAeD,eAAe9C,gBAAgB,IAAMr6C,QAAQC,QAAQu6C,EAAS4C,EAAgBrE,MAE9H,OADAA,EAAKoB,UAAU,CAAE9I,OAAQ,YAClBptC,CACX,CACA,MAAO7D,GAEH,MADA24C,EAAKoB,UAAU,CAAE9I,OAAQ,QAASt/C,MAAOqO,IACnCA,CACV,CACA,QACI24C,EAAK3hE,KACT,CACJ,EAyBIkjE,cACAV,uBAhBJ,SAAgC0D,GAC5B,OAAO5D,KAAkBE,uBAAuB0D,EACpD,EAeI3D,qBARJ,SAA8BU,GAC1B,OAAOX,KAAkBC,qBAAqBU,EAClD,EAQJ,CDZekD,CAAoB,CACvB7rB,UAAW,GACXqrB,YAAa,4BACbC,eAAgBvL,IAExB,CACA,MAAOl4D,GAEH,YADA,GAAO0nB,QAAQ,0CAA0CwtC,GAAgBl1D,KAE7E,CACJ,CA9C0BikE,GACtB,MAAO,CACH5jE,KAdyB,gBAezB,iBAAMyvD,CAAYE,EAAS58B,GACvB,IAAIwH,EACJ,IAAK2oC,EACD,OAAOnwC,EAAK48B,GAEhB,MAAMja,QAAkBstB,EAClBa,EAAiB,CACnB,WAAYZ,EAAUrM,YAAYjH,EAAQmH,KAC1C,cAAenH,EAAQjY,OACvB,kBAAmBhC,EACnBwoB,UAAWvO,EAAQuO,WAEnBxoB,IACAmuB,EAAe,mBAAqBnuB,GAExC,MAAM,KAAEypB,EAAI,eAAEsB,GAAoF,QAAhElmC,EA6B9C,SAAuB2oC,EAAevT,EAASkU,GAC3C,IAEI,MAAM,KAAE1E,EAAI,eAAEqE,GAAmBN,EAAcjD,UAAU,QAAQtQ,EAAQjY,SAAU,CAAE6rB,eAAgB5T,EAAQ4T,gBAAkB,CAC3HO,SAAU,SACVD,mBAGJ,IAAK1E,EAAKiB,cAEN,YADAjB,EAAK3hE,MAIT,MAAMk6D,EAAUwL,EAAcnD,qBAAqByD,EAAeD,eAAe9C,gBACjF,IAAK,MAAOlxD,EAAKqD,KAAUP,OAAOgqC,QAAQqb,GACtC/H,EAAQ+H,QAAQpyD,IAAIiK,EAAKqD,GAE7B,MAAO,CAAEusD,OAAMsB,eAAgB+C,EAAeD,eAAe9C,eACjE,CACA,MAAO9gE,GAEH,YADA,GAAO0nB,QAAQ,qDAAqDwtC,GAAgBl1D,KAExF,CACJ,CApDmDokE,CAAcb,EAAevT,EAASkU,UAAoC,IAAPtpC,EAAgBA,EAAK,CAAC,EAChI,IAAK4kC,IAASsB,EACV,OAAO1tC,EAAK48B,GAEhB,IACI,MAAM0H,QAAiB6L,EAAcxC,YAAYD,EAAgB1tC,EAAM48B,GAEvE,OA6DhB,SAA4BwP,EAAM9H,GAC9B,IACI8H,EAAKmB,aAAa,mBAAoBjJ,EAASI,QAC/C,MAAMuM,EAAmB3M,EAASK,QAAQp/C,IAAI,mBAC1C0rD,GACA7E,EAAKmB,aAAa,mBAAoB0D,GAKtC3M,EAASI,QAAU,KACnB0H,EAAKoB,UAAU,CACX9I,OAAQ,UAGhB0H,EAAK3hE,KACT,CACA,MAAOmC,GACH,GAAO0nB,QAAQ,qDAAqDwtC,GAAgBl1D,KACxF,CACJ,CAlFgBskE,CAAmB9E,EAAM9H,GAClBA,CACX,CACA,MAAO7wC,GAEH,MA0ChB,SAAyB24C,EAAMhnD,GAC3B,IACIgnD,EAAKoB,UAAU,CACX9I,OAAQ,QACRt/C,MAAOu8C,GAAQv8C,GAASA,OAAQpE,IAEhCmtD,GAAY/oD,IAAUA,EAAM8oD,YAC5B9B,EAAKmB,aAAa,mBAAoBnoD,EAAM8oD,YAEhD9B,EAAK3hE,KACT,CACA,MAAOmC,GACH,GAAO0nB,QAAQ,qDAAqDwtC,GAAgBl1D,KACxF,CACJ,CAzDgBukE,CAAgB/E,EAAM34C,GAChBA,CACV,CACJ,EAER,CNhBuB29C,CAAc9xD,OAAO8/C,OAAO9/C,OAAO8/C,OAAO,CAAC,EAAGpgC,EAAQ0wC,kBAAmB1wC,EAAQqyC,iBAAkB,CAClH/U,WAAY,UAEZ0G,IAGAhG,EAASb,UAAUiI,GAAeplC,EAAQsyC,iBAAkB,CAAEhV,WAAY,UAE9EU,EAASb,UQrCN,SAAmBn9B,EAAU,CAAC,GACjC,IAAIwI,EACJ,MAAMu5B,EAAmC,QAAzBv5B,EAAKxI,EAAQ+hC,cAA2B,IAAPv5B,EAAgBA,EAAK,GAAWi4B,KAC3EyQ,EAAY,IAAI7M,GAAU,CAC5BC,6BAA8BtkC,EAAQskC,6BACtCE,iCAAkCxkC,EAAQwkC,mCAE9C,MAAO,CACHv2D,KAbqB,YAcrB,iBAAMyvD,CAAYE,EAAS58B,GACvB,IAAK+gC,EAAOzB,QACR,OAAOt/B,EAAK48B,GAEhBmE,EAAO,YAAYmP,EAAUxM,SAAS9G,MACtC,MAAM0H,QAAiBtkC,EAAK48B,GAG5B,OAFAmE,EAAO,yBAAyBuD,EAASI,UACzC3D,EAAO,YAAYmP,EAAUxM,SAASY,EAASK,YACxCL,CACX,EAER,CRiBuBiN,CAAUvyC,EAAQqyC,gBAAiB,CAAE/U,WAAY,SAC7DU,CACX,CDdAiR,GAAUuD,mBAAqB,qBAK/BvD,GAAUwD,YAAc,cUzBxB,MAAMC,GAKF,iBAAMhV,CAAYE,GAGd,GADoC,WADxB,IAAIoH,IAAIpH,EAAQmH,KACL4N,WACJ/U,EAAQgV,wBACvB,MAAM,IAAItnE,MAAM,qBAAqBsyD,EAAQmH,+CAEjD,GAAInH,EAAQiV,cACR,MAAM,IAAIvnE,MAAM,sDAEpB,IACI,aAUZk6D,eAA2B5H,GACvB,MAAM,gBAAEkV,EAAe,uBAAEC,GAoE7B,SAA0BnV,GACtB,MAAMkV,EAAkB,IAAIE,gBAE5B,IAAID,EAIAE,EACJ,GAAIrV,EAAQ+L,YAAa,CACrB,GAAI/L,EAAQ+L,YAAYC,QACpB,MAAM,IAAIlH,GAAW,iEAEzBuQ,EAAiB/gD,IACM,UAAfA,EAAMhQ,MACN4wD,EAAgBI,OACpB,EAEJtV,EAAQ+L,YAAYlzC,iBAAiB,QAASw8C,GAC9CF,EAAyB,KACrB,IAAIvqC,EACAyqC,IAC+B,QAA9BzqC,EAAKo1B,EAAQ+L,mBAAgC,IAAPnhC,GAAyBA,EAAG7R,oBAAoB,QAASs8C,GACpG,CAER,CAOA,OALIrV,EAAQx6B,QAAU,GAClBR,YAAW,KACPkwC,EAAgBI,OAAO,GACxBtV,EAAQx6B,SAER,CAAE0vC,kBAAiBC,yBAC9B,CApGwDI,CAAiBvV,GACrE,IACI,MAAM+H,EAsHd,SAA2ByN,GACvB,MAAMzN,EAAU,IAAI0N,QACpB,IAAK,MAAOplE,EAAM4S,KAAUuyD,EACxBzN,EAAQuK,OAAOjiE,EAAM4S,GAEzB,OAAO8kD,CACX,CA5HwB2N,CAAkB1V,EAAQ+H,UACpC,UAAE4N,EAAW1N,KAAM2N,GAmIjC,SAA0B5V,GACtB,MAAMiI,EAA+B,mBAAjBjI,EAAQiI,KAAsBjI,EAAQiI,OAASjI,EAAQiI,KAC3E,GAAI,GAAqBA,GACrB,MAAM,IAAIv6D,MAAM,0DAEpB,OAAOs8D,GAAoB/B,GACrB,CAAE0N,WAAW,EAAM1N,KAAM4N,GAAgB5N,EAAM,CAAE6N,WAAY9V,EAAQ+V,oBACrE,CAAEJ,WAAW,EAAO1N,OAC9B,CA3IiD,CAAiBjI,GACpDgW,EAActzD,OAAO8/C,OAAO9/C,OAAO8/C,OAAO,CAAEyF,KAAM2N,EAAa7tB,OAAQiY,EAAQjY,OAAQggB,QAASA,EAASkO,OAAQf,EAAgBe,QAAW,gBAAiBC,QAAQxkE,UACrK,CAAEykE,YAAanW,EAAQoW,gBAAkB,UAAY,eACrD,CAAC,GAAM,UAAWF,QAAQxkE,UAAY,CAAE4tC,MAAO,YAAe,CAAC,GAIjEq2B,IACAK,EAAYK,OAAS,QAQzB,MAAM3O,QAAiB4O,MAAMtW,EAAQmH,IAAK6O,GAK1C,OA1DR,SAAgB/N,GAEZ,OAAwB,mBAATmC,MAAuC,iBAATA,OAAsBnC,aAAgBmC,IACvF,CAoDY,CAAOpK,EAAQiI,OAASjI,EAAQ+V,kBAChC/V,EAAQ+V,iBAAiB,CAAEQ,YAAavW,EAAQiI,KAAKlnD,OAYjE6mD,eAAqC4O,EAAcxW,EAASmV,GACxD,IAAIvqC,EAAIC,EACR,MAAMk9B,EA2FV,SAA8ByO,GAC1B,MAAMC,EAAkBpH,KACxB,IAAK,MAAOh/D,EAAM4S,KAAUuzD,EAAazO,QACrC0O,EAAgB9gE,IAAItF,EAAM4S,GAE9B,OAAOwzD,CACX,CAjGoBC,CAAqBF,GAC/B9O,EAAW,CACb1H,UACA+H,UACAD,OAAQ0O,EAAa1O,QAEnB6O,EAAa3M,GAAoBwM,EAAavO,MAC9C4N,GAAgBW,EAAavO,KAAM,CACjC6N,WAAY9V,EAAQ4W,mBACpBC,MAAO1B,IAETqB,EAAavO,KACnB,IAE8C,QAA5Cr9B,EAAKo1B,EAAQ8W,iCAA8C,IAAPlsC,OAAgB,EAASA,EAAG7W,IAAIzN,OAAOywD,sBAC3C,QAA5ClsC,EAAKm1B,EAAQ8W,iCAA8C,IAAPjsC,OAAgB,EAASA,EAAG9W,IAAI2zC,EAASI,SAC/F,GAAI9H,EAAQgX,qBACRtP,EAASuP,kBAAoBN,QAA+CA,OAAavyD,MAExF,CACD,MAAM8yD,EAAiB,IAAI7M,SAASsM,GACpCjP,EAASyP,SAAWD,EAAenN,OACnCoL,SAAgFA,GACpF,KAEC,CACD,MAAM+B,EAAiB,IAAI7M,SAASsM,GACpCjP,EAAS0P,iBAAmBF,EAAej0C,OAC3CkyC,SAAgFA,GACpF,CACA,OAAOzN,CACX,CA3Ce2P,CAAsB3P,EAAU1H,EAASmV,EACpD,CACA,MAAOnlE,GAEH,MADAmlE,SAAgFA,IAC1EnlE,CACV,CACJ,CAzCyBsnE,CAAYtX,EAC7B,CACA,MAAOhwD,GACH,MAiHZ,SAAkBA,EAAGgwD,GACjB,IAAIp1B,EACJ,OAAI56B,GAAwD,gBAAlDA,aAA6B,EAASA,EAAEK,MACvCL,EAGA,IAAIqhE,GAAU,0BAA0BrhE,EAAEyf,UAAW,CACxDhiB,KAA8D,QAAvDm9B,EAAK56B,aAA6B,EAASA,EAAEvC,YAAyB,IAAPm9B,EAAgBA,EAAKymC,GAAUuD,mBACrG5U,WAGZ,CA5HkBuX,CAASvnE,EAAGgwD,EACtB,CACJ,EA2JJ,SAAS6V,GAAgB2B,EAAgBp1C,EAAU,CAAC,GAChD,IAAIm0C,EAAc,EAClB,MAAM,WAAET,EAAU,MAAEe,GAAUz0C,EAG9B,GAuDJ,SAAoCo1C,GAChC,YAAsCpzD,IAA/BozD,EAAeC,kBAAsDrzD,IAAzBzY,KAAK+rE,eAC5D,CAzDQC,CAA2BH,GAC3B,OAAOA,EAAeC,YAAY,IAAIC,gBAAgB,CAClD,SAAAE,CAAUC,EAAOC,GACC,OAAVD,GAIJC,EAAWC,QAAQF,GACnBtB,GAAesB,EAAM/qE,OACjBgpE,GACAA,EAAW,CAAES,iBANbuB,EAAWE,WAQnB,EACA,KAAAC,GACIpB,SAA8CA,GAClD,KAGH,CAGD,MAAMqB,EAASV,EAAevN,YAC9B,OAAO,IAAIkO,eAAe,CACtB,UAAMC,CAAKN,GACP,IAAIltC,EACJ,MAAM,KAAE2Y,EAAI,MAAEtgC,SAAgBi1D,EAAOlyD,OAErC,GAAIu9B,IAAStgC,EAKT,OAJA4zD,SAA8CA,IAE9CiB,EAAWhqB,aACXoqB,EAAOG,cAGX9B,GAAqF,QAArE3rC,EAAK3nB,aAAqC,EAASA,EAAMnW,cAA2B,IAAP89B,EAAgBA,EAAK,EAElHktC,EAAWC,QAAQ90D,GACf6yD,GACAA,EAAW,CAAES,eAErB,EACA,MAAA+B,CAAOC,GAEH,OADA1B,SAA8CA,IACvCqB,EAAOI,OAAOC,EACzB,GAER,CACJ,CChPA,MAAMC,GACF,WAAA7mE,CAAYywB,GACR,IAAIwI,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAC5B33B,KAAK4zD,IAAM/kC,EAAQ+kC,IACnB5zD,KAAK00D,KAAO7lC,EAAQ6lC,KACpB10D,KAAKw0D,QAAqC,QAA1Bn9B,EAAKxI,EAAQ2lC,eAA4B,IAAPn9B,EAAgBA,EAAKykC,KACvE97D,KAAKw0C,OAAmC,QAAzBld,EAAKzI,EAAQ2lB,cAA2B,IAAPld,EAAgBA,EAAK,MACrEt3B,KAAKiyB,QAAqC,QAA1BsF,EAAK1I,EAAQoD,eAA4B,IAAPsF,EAAgBA,EAAK,EACvEv3B,KAAKo3D,cAAgBvoC,EAAQuoC,cAC7Bp3D,KAAKy+D,SAAW5vC,EAAQ4vC,SACxBz+D,KAAKklE,iBAAuD,QAAnC1tC,EAAK3I,EAAQq2C,wBAAqC,IAAP1tC,GAAgBA,EACpFx3B,KAAK0hE,cAAgB7yC,EAAQ6yC,cAC7B1hE,KAAKujE,0BAA4B10C,EAAQ00C,0BACzCvjE,KAAK6iE,gBAAqD,QAAlCprC,EAAK5I,EAAQg0C,uBAAoC,IAAPprC,GAAgBA,EAClFz3B,KAAKw4D,YAAc3pC,EAAQ2pC,YAC3Bx4D,KAAKqgE,eAAiBxxC,EAAQwxC,eAC9BrgE,KAAKwiE,iBAAmB3zC,EAAQ2zC,iBAChCxiE,KAAKqjE,mBAAqBx0C,EAAQw0C,mBAClCrjE,KAAKg7D,UAAYnsC,EAAQmsC,WAAa,KACtCh7D,KAAKyhE,wBAAqE,QAA1C/pC,EAAK7I,EAAQ4yC,+BAA4C,IAAP/pC,GAAgBA,EAClG13B,KAAKyjE,qBAA+D,QAAvC9rC,EAAK9I,EAAQ40C,4BAAyC,IAAP9rC,GAAgBA,EAC5F33B,KAAKm+D,MAAQtvC,EAAQsvC,MACrBn+D,KAAKk+D,YAAcrvC,EAAQqvC,WAC/B,ECvBG,MAAMiH,GAAyB,CAClCC,wBAAyB,IACzBC,kBAAmB,IACnBC,kBAAmB,MCWvBjR,eAAekR,GAAe9Y,EAAS58B,GACnC,IACI,MAAO,OAAOA,EAAK48B,QAAU57C,EACjC,CACA,MAAOpU,GACH,GAAIuhE,GAAYvhE,IAAMA,EAAE03D,SACpB,MAAO,CAAC13D,EAAE03D,SAAU13D,GAGpB,MAAMA,CAEd,CACJ,CAIA43D,eAAemR,GAAwB32C,GACnC,MAAM,OAAE42C,EAAM,eAAEC,EAAc,QAAEjZ,GAAY59B,EAEtC82C,EAAkB,CACpBnN,YAAa/L,EAAQ+L,YACrB6H,eAAgB5T,EAAQ4T,eACxBuF,WAAW,GAETC,QAAoBH,EAAeD,EAAQE,GAC7CE,GACAh3C,EAAQ49B,QAAQ+H,QAAQpyD,IAAI,gBAAiB,UAAUyjE,EAAY3P,QAE3E,CAKA,SAAS4P,GAAoB3R,GACzB,OAA2B,MAApBA,EAASI,QAAkBJ,EAASK,QAAQh0C,IAAI,mBAC3D,CAMA6zC,eAAe0R,GAA+BC,EAAoBC,GAC9D,IAAI5uC,EACJ,MAAM,OAAEouC,GAAWO,EACbH,QAAoBG,EAAmBN,eAAeD,EAAQ,CAChEG,WAAW,EACXM,OAAQD,IAEZ,QAAKJ,IAGLG,EAAmBvZ,QAAQ+H,QAAQpyD,IAAI,gBAAiB,GAAoC,QAAhCi1B,EAAKwuC,EAAYM,iBAA8B,IAAP9uC,EAAgBA,EAAK,YAAYwuC,EAAY3P,UAC1I,EACX,CA6JA,SAASkQ,GAAsBC,GAC3B,IAAIhvC,EACJ,IAAKgvC,EACD,OAGJ,MAAMC,EAlCH,SAAyBD,GAG5B,MAAME,EAAiB,6CAGjBC,EAAa,mBACbF,EAAmB,GACzB,IAAIj7C,EAEJ,KAAqD,QAA7CA,EAAQk7C,EAAex7C,KAAKs7C,KAAuB,CACvD,MAAMI,EAASp7C,EAAM,GACfq7C,EAAer7C,EAAM,GACrBs7C,EAAS,CAAC,EAChB,IAAIC,EAEJ,KAAwD,QAAhDA,EAAaJ,EAAWz7C,KAAK27C,KACjCC,EAAOC,EAAW,IAAMA,EAAW,GAEvCN,EAAiB1sE,KAAK,CAAE6sE,SAAQE,UACpC,CACA,OAAOL,CACX,CAY6BO,CAAgBR,GACzC,OAAqI,QAA7HhvC,EAAKivC,EAAiB33B,MAAMzyC,GAAmB,WAAbA,EAAEuqE,QAAuBvqE,EAAEyqE,OAAOT,QAA6B,wBAAnBhqE,EAAEyqE,OAAO1xD,eAAqD,IAAPoiB,OAAgB,EAASA,EAAGsvC,OAAOT,MACpL,C,sBC1OO,MAAMY,GAAQzS,SACnB,IAAInxC,SAASC,IACXsO,WAAWtO,EAAS4jD,EAAS,IAGpBC,GAAYA,CACvBvoD,EACAvB,IAK6B/N,OAAO83D,YAAY93D,OAAOgqC,QAAQ16B,GAAQ5S,IAAIqR,IAYhEgqD,GATY,MACvB,IAEE,OADAv4D,GAAOxK,OAAO,CAACnK,WAAWyV,KAAK,OACxB,CACT,CAAE,MAAOwF,GACP,OAAO,CACT,CACD,EAPwB,GAUrB,CAACO,EAA6B4e,IAC5BzlB,GAAOxK,OACLqR,EAAK3J,KAAK0hC,GAAO5+B,GAAOc,KAAK89B,KAC7BnZ,GAEJzlB,GAAOxK,OAOJ,SAASgjE,GACd96D,EACAoS,GAEA,OAAOpS,KAAOoS,CAChB,CAOO,SAAS2oD,GAAiBC,EAAWh2D,GAC1C,OAAOA,EAAMiF,SAAS+wD,EACxB,CAEO,SAASC,GAAuBryD,GACrC,OACEA,aAAiB6oD,IACI,MAArB7oD,EAAM8oD,YACN9oD,EAAMiH,QAAQ5F,SAAS,oBAE3B,CAYO,SAASixD,GAAYtyD,GAC1B,KAAIA,aAAiB9a,OACrB,MAAM8a,CACR,CC1EO,SAASuyD,GACdC,GAEA,OAAO,IAAI39C,MACT,CAAC,EACD3a,OAAO83D,YAEH,CACE,QACA,YACA,iBACA,iBACA,2BACA,iBACA,eACA,UACA,oBACA,MACA,iBACA,MACA,OAEFp7D,KAAK/O,GAAS,CACdA,EACA,CAACoL,KAAUlH,KACT,MAAMiV,EAASwxD,IACf,GAAc,MAAVxxD,EAAgB,MAAM,IAAI0uC,EAAc,gBAAiB,UAAW1uC,GACxE,GAAa,QAATnZ,GAA8B,kBAAZkE,EAAK,GAAwB,OAAOiV,EAC1D,MAAMlC,EAAO6J,QAAQ9gB,GAAcmZ,KAAWjV,GAC9C,MAAsB,mBAAR+S,GAA+B,QAATjX,EAAiBiX,EAAIqJ,KAAKnH,GAAUlC,CAAG,MAKrF,C,qCC/BO,IAAK2zD,GAAQ,SAARA,GAAQ,OAARA,EAAQ,kBAARA,EAAQ,oBAARA,EAAQ,kBAARA,EAAQ,iBAARA,EAAQ,oBAARA,EAAQ,aAARA,EAAQ,qBAARA,EAAQ,uBAARA,EAAQ,sBAARA,EAAQ,wBAARA,EAAQ,iBAARA,EAAQ,YAARA,EAAQ,mBAARA,EAAQ,iBAARA,EAAQ,mBAARA,EAAQ,oBAARA,EAAQ,oBAARA,EAAQ,sBAARA,EAAQ,eAARA,EAAQ,gBAARA,EAAQ,gBAARA,EAAQ,UAARA,EAAQ,WAARA,EAAQ,SAARA,EAAQ,gBAARA,EAAQ,mBAARA,EAAQ,eAARA,CAAQ,MCsHpB,ICzHA,GDGA,SAAehoE,GACb,GAAIA,EAASnG,QAAU,IAAO,MAAM,IAAIgW,UAAU,qBAClD,MAAMo4D,EAAW,IAAI3tE,WAAW,KAChC,IAAK,IAAI8B,EAAI,EAAGA,EAAI6rE,EAASpuE,OAAQuC,IACnC6rE,EAAS7rE,GAAK,IAEhB,IAAK,IAAIjD,EAAI,EAAGA,EAAI6G,EAASnG,OAAQV,IAAK,CACxC,MAAMqD,EAAIwD,EAASvC,OAAOtE,GACpBwD,EAAKH,EAAE9C,WAAW,GACxB,GAAqB,MAAjBuuE,EAAStrE,GAAe,MAAM,IAAIkT,UAAUrT,EAAI,iBACpDyrE,EAAStrE,GAAMxD,CACjB,CACA,MAAMqC,EAAOwE,EAASnG,OAChBquE,EAASloE,EAASvC,OAAO,GACzB0qE,EAASjtE,KAAK+S,IAAIzS,GAAQN,KAAK+S,IAAI,KACnCm6D,EAAUltE,KAAK+S,IAAI,KAAO/S,KAAK+S,IAAIzS,GA8CzC,SAAS6sE,EAAc53C,GACrB,GAAsB,iBAAXA,EAAuB,MAAM,IAAI5gB,UAAU,mBACtD,GAAsB,IAAlB4gB,EAAO52B,OAAgB,OAAO,IAAIS,WACtC,IAAIguE,EAAM,EAENC,EAAS,EACT1uE,EAAS,EACb,KAAO42B,EAAO63C,KAASJ,GACrBK,IACAD,IAGF,MAAMx6D,GAAU2iB,EAAO52B,OAASyuE,GAAOH,EAAU,IAAO,EAClDK,EAAO,IAAIluE,WAAWwT,GAE5B,KAAOw6D,EAAM73C,EAAO52B,QAAQ,CAE1B,MAAM4uE,EAAWh4C,EAAO/2B,WAAW4uE,GAEnC,GAAIG,EAAW,IAAO,OAEtB,IAAIzjE,EAAQijE,EAASQ,GAErB,GAAc,MAAVzjE,EAAiB,OACrB,IAAI7L,EAAI,EACR,IAAK,IAAIuvE,EAAM56D,EAAO,GAAc,IAAV9I,GAAe7L,EAAIU,KAAqB,IAAT6uE,EAAaA,IAAOvvE,IAC3E6L,GAAUxJ,EAAOgtE,EAAKE,KAAU,EAChCF,EAAKE,GAAQ1jE,EAAQ,MAAS,EAC9BA,EAASA,EAAQ,MAAS,EAE5B,GAAc,IAAVA,EAAe,MAAM,IAAIvK,MAAM,kBACnCZ,EAASV,EACTmvE,GACF,CAEA,IAAIK,EAAM76D,EAAOjU,EACjB,KAAO8uE,IAAQ76D,GAAsB,IAAd06D,EAAKG,IAC1BA,IAEF,MAAMC,EAAM,IAAItuE,WAAWiuE,GAAUz6D,EAAO66D,IAC5C,IAAIvsE,EAAImsE,EACR,KAAOI,IAAQ76D,GACb86D,EAAIxsE,KAAOosE,EAAKG,KAElB,OAAOC,CACT,CAMA,MAAO,CACLl7D,OAjGF,SAAiB+iB,GAOf,GALIA,aAAkBn2B,aAAyBiW,YAAYC,OAAOigB,GAChEA,EAAS,IAAIn2B,WAAWm2B,EAAO7f,OAAQ6f,EAAO5f,WAAY4f,EAAO93B,YACxD4B,MAAM+W,QAAQmf,KACvBA,EAASn2B,WAAWyV,KAAK0gB,OAErBA,aAAkBn2B,YAAe,MAAM,IAAIuV,UAAU,uBAC3D,GAAsB,IAAlB4gB,EAAO52B,OAAgB,MAAO,GAElC,IAAI0uE,EAAS,EACT1uE,EAAS,EACTgvE,EAAS,EACb,MAAMC,EAAOr4C,EAAO52B,OACpB,KAAOgvE,IAAWC,GAA2B,IAAnBr4C,EAAOo4C,IAC/BA,IACAN,IAGF,MAAMz6D,GAASg7D,EAAOD,GAAUT,EAAU,IAAO,EAC3CW,EAAM,IAAIzuE,WAAWwT,GAE3B,KAAO+6D,IAAWC,GAAM,CACtB,IAAI9jE,EAAQyrB,EAAOo4C,GAEf1vE,EAAI,EACR,IAAK,IAAI6vE,EAAMl7D,EAAO,GAAc,IAAV9I,GAAe7L,EAAIU,KAAqB,IAATmvE,EAAaA,IAAO7vE,IAC3E6L,GAAU,IAAM+jE,EAAIC,KAAU,EAC9BD,EAAIC,GAAQhkE,EAAQxJ,IAAU,EAC9BwJ,EAASA,EAAQxJ,IAAU,EAE7B,GAAc,IAAVwJ,EAAe,MAAM,IAAIvK,MAAM,kBACnCZ,EAASV,EACT0vE,GACF,CAEA,IAAII,EAAMn7D,EAAOjU,EACjB,KAAOovE,IAAQn7D,GAAqB,IAAbi7D,EAAIE,IACzBA,IAGF,IAAIzrE,EAAM0qE,EAAOgB,OAAOX,GACxB,KAAOU,EAAMn7D,IAAQm7D,EAAOzrE,GAAOwC,EAASvC,OAAOsrE,EAAIE,IACvD,OAAOzrE,CACT,EAsDE6qE,eACAl0C,OARF,SAAiBlkB,GACf,MAAMW,EAASy3D,EAAap4D,GAC5B,GAAIW,EAAU,OAAOA,EACrB,MAAM,IAAInW,MAAM,WAAae,EAAO,aACtC,EAMF,CCxHA,CADe,8D,wCCeR,SAAS2tE,GAAWn8D,GACzB,OAAO,IAAIqqB,OAASf,OAAOtpB,GAAO4pB,QACpC,CAKA,MAAMwyC,GAAc,CAClBpB,GAASqB,kBACTrB,GAASsB,iBACTtB,GAASuB,mBACTvB,GAASwB,YACTxB,GAASyB,YACTzB,GAAS0B,eACT1B,GAAS2B,MACT3B,GAAS4B,IACT5B,GAAS6B,WACT7B,GAAS8B,cACT9B,GAAS+B,WAELC,GAAc,CAClBhC,GAASiC,aACTjC,GAASkC,eACTlC,GAASmC,aACTnC,GAASoC,YACTpC,GAASqC,eACTrC,GAASsC,QACTtC,GAASuC,gBACTvC,GAASwC,OACTxC,GAASyC,cACTzC,GAAS0C,cACT1C,GAAS2C,eACT3C,GAAS4C,iBACT5C,GAAS6C,UACT7C,GAAS8C,WACT9C,GAAS+C,WACT/C,GAASgD,MAMLC,GAAkB,CACtB,CAACjD,GAASiC,cAAe,GACzB,CAACjC,GAASkC,gBAAiB,GAC3B,CAAClC,GAASmC,cAAe,GACzB,CAACnC,GAASoC,aAAc,GACxB,CAACpC,GAASqC,gBAAiB,GAC3B,CAACrC,GAASsC,SAAU,GACpB,CAACtC,GAASuC,iBAAkB,GAC5B,CAACvC,GAASwC,QAAS,GACnB,CAACxC,GAASyC,eAAgB,GAC1B,CAACzC,GAAS0C,eAAgB,GAC1B,CAAC1C,GAAS2C,gBAAiB,GAC3B,CAAC3C,GAAS4C,kBAAmB,GAC7B,CAAC5C,GAAS6C,WAAY,GACtB,CAAC7C,GAAS8C,YAAa,GACvB,CAAC9C,GAAS+C,YAAa,GACvB,CAAC/C,GAAS2B,OAAQ,IAGpB,SAASuB,GAAkB35D,EAAkBF,GAC3C,IAAKo2D,GAAcp2D,EAAM45D,IAAkB,OAC3C,MAAME,EAASF,GAAgB55D,GAC/B,GAAc,MAAV85D,GAAkB55D,EAAK1X,SAAWsxE,EACtC,MAAM,IAAIrhB,GAAmB,qBAAqBqhB,gBAAqB55D,EAAK1X,iBAC9E,CAEA,MAAMuxE,GAAeC,GAAgClC,GAAWA,GAAWkC,IAAU/uE,MAAM,EAAG,GAExFgvE,GAAeD,GAAgC7D,GAAc,CAAC6D,EAASD,GAAYC,KAEzF,SAASE,GAAW36D,GAClB,MAAMy6D,EAAUz6D,EAAOtU,MAAM,GAAI,GACjC,IAAK8uE,GAAYC,GAASj1D,OAAOxF,EAAOtU,OAAO,IAAK,MAAM,IAAI8sD,GAC9D,OAAOiiB,CACT,CAEA,MAAMx8D,GAAS,CACbnB,OAASkD,GAAuB06D,GAAY16D,GAAQjS,SAAS,UAC7Dw1B,OAASlkB,GAAmBs7D,GAAWt8D,GAAOc,KAAKE,EAAQ,YAGvDu7D,GAAS,CACb99D,OAASkD,GAAuB66D,GAAK/9D,OAAO49D,GAAY16D,IACxDujB,OAASlkB,GAAmBs7D,GAAWt8D,GAAOc,KAAK07D,GAAKt3C,OAAOlkB,MAG3Dy7D,GAAaC,IACjB,MAAMC,EAAaxC,GAAYn6B,MAAMzmC,GAAMA,IAAMmjE,IACjD,GAAkB,MAAdC,EAAoB,MAAO,CAACA,EAAY/8D,IAC5C,MAAMg9D,EAAa7B,GAAY/6B,MAAMzmC,GAAMA,IAAMmjE,IACjD,GAAkB,MAAdE,EAAoB,MAAO,CAACA,EAAYL,IAC5C,MAAM,IAAIvmB,EACR,SACA,UAAU,IAAI+kB,MAAgBZ,IAAa/uE,KAAK,QAChDsxE,EACD,EAUI,SAASx3C,GAAO5iB,GACrB,MAAO/R,EAAQssE,EAAgBC,GAASx6D,EAAK3H,MAAM,KACnD,GAAsB,MAAlBkiE,EAAwB,MAAM,IAAIjiB,GAAY,mCAAmCt4C,KACrF,GAAa,MAATw6D,EAAe,MAAM,IAAIliB,GAAY,oCAAoCt4C,KAC7E,MAAOF,EAAM26D,GAAWN,GAAUlsE,GAC5B6rE,EAAUW,EAAQ73C,OAAO23C,GAE/B,OADAZ,GAAkBG,EAASh6D,GACpBg6D,CACT,CASO,SAAS39D,GAA8B6D,EAAkBF,GAC9D,MAAO,CAAE26D,GAAWN,GAAUr6D,GAE9B,OADA65D,GAAkB35D,EAAMF,GACjB,GAAGA,KAAQ26D,EAAQt+D,OAAO6D,IACnC,C,sBCtHO,SAAS06D,GAAeC,KAAyBC,GAC7B,IAArBA,EAAUtyE,SAAcsyE,EAAY,CAACnE,GAAS2C,iBAClD,IACEx2C,GAAO+3C,GACP,MAAMh8D,EAAWg8D,EAAatiE,MAAM,KAAK,GACzC,IAAK89D,GAAcx3D,EAAUi8D,GAC3B,MAAM,IAAIlnB,EACR,sBACAknB,EAAUtyE,OAAS,EAAI,UAAUsyE,EAAU9xE,KAAK,QAAU8xE,EAAU,GACpEj8D,GAGJ,OAAO,CACT,CAAE,MAAOqF,GACP,OAAO,CACT,CACF,CAiBO,SAAS62D,GAAcF,KAAyBC,GAErD,GADAh4C,GAAO+3C,GACkB,IAArBC,EAAUtyE,OAAc,OAC5B,MAAMqW,EAAWg8D,EAAatiE,MAAM,KAAK,GACzC,IAAI89D,GAAcx3D,EAAUi8D,GAC5B,MAAM,IAAIlnB,EACR,sBACAknB,EAAUtyE,OAAS,EAAI,UAAUsyE,EAAU9xE,KAAK,QAAU8xE,EAAU,GACpEj8D,EAEJ,CAiBO,SAASm8D,GAAUH,KAAyBC,GACjD,IAEE,OADAC,GAAcF,KAAiBC,IACxB,CACT,CAAE,MAAO52D,GACP,OAAO,CACT,CACF,CAOO,SAAS+2D,KACd,MAAO9oE,GAAU,IAAI2lB,eAAeyP,KAAAA,YAAiB,GAAGhoB,QACxD,OAAOyC,OAAO7P,EAAS4T,OAAO/D,OAAO3X,kBACvC,CAUO,SAAS6wE,GAAev8D,GAC7B,MAAMw8D,EAASv9D,GAAOa,YAAY,GAElC,OADA08D,EAAO7xD,cAAc3K,GACdw8D,EAAO50D,SAAS40D,EAAOt9B,WAAW/1C,GAAY,IAANA,IACjD,CASO,SAAS69B,GAAKhqB,GACnB,OAAOiC,GAAOc,MAAK7C,EAAAA,GAAAA,SAAQF,OAAOmE,EAAW,IAC/C,CAUO,SAASs7D,GACdl7D,EACAm7D,EACA/lB,GAEA,OAAO/tB,KAAAA,KAAU+R,SAASE,OAAOt5B,EAAMm7D,EAAWv4C,GAAOwyB,GAC3D,CAEO,SAASgmB,GAAc38D,GAC5B,OAAIA,EAAQ,IACHf,GAAOc,KAAK,CAACC,IAGbw3D,GADLx3D,GAAS,MACU,CAACf,GAAOc,KAAK,CAAC,MAAQd,GAAOc,KAAK,IAAIwa,YAAY,CAACva,IAAQY,SAE9EZ,GAAS,WACU,CAACf,GAAOc,KAAK,CAAC,MAAQd,GAAOc,KAAK,IAAIpM,YAAY,CAACqM,IAAQY,SAE7D,CACnB3B,GAAOc,KAAK,CAAC,MACbd,GAAOc,KAAK,IAAIoZ,eAAe,CAAC/R,OAAOpH,KAASY,SAEpD,CAEA,MAAMg8D,GAAgB39D,GAAOc,KAAK,8BAA+B,QACpD88D,GAAsBF,GAAcC,GAAc/yE,QAQxD,SAASizE,GAAYtwD,GAC1B,MAAMzO,EAAMkB,GAAOc,KAAKyM,EAAS,QACjC,OAAOwa,GAAKwwC,GAAc,CAACqF,GAAqBD,GAAeD,GAAc5+D,EAAIlU,QAASkU,IAC5F,CAUO,SAASg/D,GACdvwD,EACAkwD,EACA/lB,GAEA,OAAO8lB,GAAgBK,GAAYtwD,GAAUkwD,EAAW/lB,EAC1D,C,sBClLO,SAAShzB,GAAQpmB,EAA0Cy/D,GAAM,GAKtE,GAAW,MAAPz/D,EAAa,OAAO0B,GAAOc,KAAK,IACpC,GAAIsD,OAAOhM,UAAUkG,IAAQxS,EAAUoI,YAAYoK,IAAQy/D,EAAK,CAE9D,GADKjyE,EAAUoI,YAAYoK,KAAMA,EAAM,IAAIxS,EAAUwS,KAChDA,EAAIlG,YAAa,MAAM,IAAIwI,EAAU,iCAAiCtC,EAAI7D,aAC/E,IAAIujE,EAAY1/D,EAAI5O,SAAS,IAE7B,OADIsuE,EAAUpzE,OAAS,GAAM,IAAGozE,EAAY,IAAIA,KACzCh+D,GAAOc,KAAKk9D,EAAW,MAChC,CACA,GAAmB,iBAAR1/D,EACT,OAAO0B,GAAOc,KAAKxC,GAErB,MAAM,IAAIq4C,CACZ,CCvBO,MAAMsnB,GAAkB,CAC7BC,IAAK,4CACLrkB,OAAQ,uCAOGskB,GAAmB,IAYnBC,GAAgB,IAMhBC,GAAsB,KAMtBC,GAAyB,IAOzBC,GAA0B,IAM1BC,GAAsB,GAOtBC,GAAkBpG,GAC7B,CACE,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,GAAI,KACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,EAAG,OACH,EAAG,OACH,EAAG,OACH,EAAG,OACH,EAAG,OACH,EAAG,QACH,EAAG,QACH,EAAG,QACH,EAAG,UAEL,EAAE36D,EAAKqD,KAAW,CAACrD,EAAK,IAAI5R,EAAUiV,GAAOzI,MAAM+lE,OAM9C,IAAKK,GAAwB,SAAxBA,GAAwB,OAAxBA,EAAAA,EAAwB,iBAAxBA,CAAwB,MAQxBC,GAAS,SAATA,GAAS,OAATA,EAAAA,EAAS,eAATA,EAAAA,EAAS,mBAATA,EAAAA,EAAS,yDAATA,EAAAA,EAAS,yDAATA,EAAAA,EAAS,eAATA,EAAAA,EAAS,mDAATA,EAAAA,EAAS,iBAATA,EAAAA,EAAS,iBAATA,CAAS,MAeTC,GAAU,SAAVA,GAAU,OAAVA,EAAAA,EAAU,iBAAVA,EAAAA,EAAU,mBAAVA,EAAAA,EAAU,eAAVA,CAAU,MAaVC,GAAG,SAAHA,GAAG,OAAHA,EAAAA,EAAG,wBAAHA,EAAAA,EAAG,sBAAHA,EAAAA,EAAG,wCAAHA,EAAAA,EAAG,kCAAHA,EAAAA,EAAG,wCAAHA,EAAAA,EAAG,sCAAHA,EAAAA,EAAG,oCAAHA,EAAAA,EAAG,8BAAHA,EAAAA,EAAG,oCAAHA,EAAAA,EAAG,gCAAHA,EAAAA,EAAG,gCAAHA,EAAAA,EAAG,oCAAHA,EAAAA,EAAG,wCAAHA,EAAAA,EAAG,oCAAHA,EAAAA,EAAG,sCAAHA,EAAAA,EAAG,wCAAHA,EAAAA,EAAG,0CAAHA,EAAAA,EAAG,qDAAHA,EAAAA,EAAG,gDAAHA,EAAAA,EAAG,4CAAHA,EAAAA,EAAG,oCAAHA,EAAAA,EAAG,sCAAHA,EAAAA,EAAG,0CAAHA,EAAAA,EAAG,kDAAHA,EAAAA,EAAG,4BAAHA,EAAAA,EAAG,wBAAHA,EAAAA,EAAG,8BAAHA,CAAG,M,sBC9GR,SAASC,GACdC,EACAzkC,GAIA,OAAO77B,GADSspB,GADQ/nB,GAAOc,KAAK,IAAIokB,GAAO65C,MAAWr6C,GAAQ4V,MAE3Cy+B,GAASuC,gBAClC,CAWO,SAAS0D,GACdC,EACA3kC,EACA4kC,GAQA,OAAOzgE,GADSspB,GAAK/nB,GAAOc,KAAK,IAAIokB,GAAO+5C,MAL5C,SAAgB3gE,GACd,MAAM6gE,EAAUz6C,GAAQpmB,GAAK,GAC7B,OAAOi6D,GAAc,CAACv4D,GAAOE,MAAM,GAAKi/D,EAAQv0E,QAASu0E,GAC3D,CAE0DC,CAAO9kC,MAAWpV,GAAOg6C,MAC5DnG,GAAS0C,cAClC,CAEA,MAAM4D,GAAc,SAEb,SAASC,GAAeC,GAC7B,MAAOpxE,EAAM2C,KAAW0uE,GAASD,EAAU5kE,MAAM,KACjD,GAAqB,IAAjB6kE,EAAM50E,OAAc,MAAM,IAAIorD,EAAc,YAAa,yBAA0BupB,GACvF,GAAIzuE,IAAWuuE,GAAYhyE,MAAM,GAC/B,MAAM,IAAI2oD,EAAc,YAAa,iBAAiBqpB,KAAeE,GAEvE,GAAI,0BAA0BhuE,KAAKpD,GACjC,MAAM,IAAI6nD,EAAc,YAAa,uBAAwBupB,GAE/D,GAAgB,MAAZpxE,EAAK,IAA0B,MAAZA,EAAK,GAC1B,MAAM,IAAI6nD,EACR,YACA,0DACAupB,GAGJ,GAAgB,MAAZpxE,EAAK,GACP,MAAM,IAAI6nD,EAAc,YAAa,4BAA6BupB,GAEpE,GAAoB,MAAhBpxE,EAAK0yB,IAAI,GACX,MAAM,IAAIm1B,EAAc,YAAa,0BAA2BupB,GAElE,IAAIE,EACJ,IACE,MAAMj0C,EAAI,IAAI05B,IAAI,UAAU/2D,KAAQ2C,KACpC,GAAI06B,EAAEk0C,SAAWl0C,EAAEm0C,SAAWn0C,EAAEo0C,KAAOp0C,EAAE/5B,OAAS+5B,EAAEzD,OAAS,IAAqB,MAAfyD,EAAEq0C,SACnE,MAAM,IAAI7pB,EAAc,YAAa,QAASupB,GAEhDE,EAAWj0C,EAAEs0C,IACf,CAAE,MAAOx5D,GACP,GAAIA,aAAiB1F,WAAa0F,EAAMiH,QAAQ5F,SAAS,eACvD,MAAM,IAAIquC,EAAc,YAAa,QAASupB,GAEhD,MAAMj5D,CACR,CACA,IAAK,iBAAiB/U,KAAKkuE,GACzB,MAAM,IAAIzpB,EAAc,YAAa,wBAAyBupB,GAEhE,GAAIE,EAAS70E,OAAS,GAAKy0E,GAAYz0E,OACrC,MAAM,IAAIorD,EAAc,YAAa,eAAgBupB,GAEvD,OAAOE,CACT,CASO,SAASM,GAAc5xE,GAC5B,OAAOsQ,GAAOspB,GAAKu3C,GAAenxE,IAAQ4qE,GAASgD,KACrD,CAWO,SAASiE,GAAe7xE,EAAgBwP,EAAe0/D,MAC5D,OAAO5+D,GACLspB,GACEwwC,GAAc,CACZv4D,GAAOc,KAAKw+D,GAAenxE,IAC3B6R,GAAOc,KAAKnD,EAAKjO,SAAS,IAAIm2B,SAAS,GAAI,KAAM,UAGrDkzC,GAAS8C,WAEb,CASO,SAASoE,GAAQt+D,EAAqB3B,GAAOc,KAAK,KACvD,OAAOqH,OAAO,KAAOnI,GAAOc,KAAKa,GAAQjS,SAAS,QAAQA,UAC5D,CAOO,SAASwwE,GAAWX,GACzBD,GAAeC,EACjB,CAOO,SAASY,GAAOZ,GACrB,IAEE,OADAW,GAAWX,IACJ,CACT,CAAE,MAAOj5D,GACP,OAAO,CACT,CACF,CAEA,MAAM85D,GAAuB,CAC3B,CAACrH,GAAS2C,eAAgB,kBAC1B,CAAC3C,GAASyC,cAAe,iBACzB,CAACzC,GAASuC,gBAAiB,mBAC3B,CAACvC,GAASsC,QAAS,YAQd,SAASgF,GACdC,GAEAp7C,GAAOo7C,GACP,MAAMr/D,EAAWq/D,EAAW5uE,UAAU,EAAG,GACnC8mB,EAAS4nD,GAAqBpgC,MAAK,EAAElyC,KAAOA,IAAMmT,MAAY,GACpE,GAAc,MAAVuX,EAAgB,OAAOA,EAC3B,MAAM,IAAIw9B,EACR,aACA,wBAAwBoqB,GAAqBljE,KAAI,EAAEpP,KAAO,GAAGA,OAAM1C,KAAK,QACxEk1E,EAEJ,CAQO,SAASC,GAAkBpyE,GAChC,MAAMqyE,EAAalB,GAAenxE,GAAMvD,OAASy0E,GAAYz0E,OAC7D,OAAO6zE,GAAgBxyE,KAAKgC,IAAIuyE,EAAYhC,IAC9C,CAWO,SAASiC,GACdtyE,GACA,SACEuyE,EAAQ,UACRC,EAAYrC,IACsD,CAAC,GAErE,GAAMl6D,OAAOu8D,KAAeA,GAAaA,EAAY,GAAM,EACzD,MAAM,IAAI5lB,GAAmB,8CAA8C4lB,KAC7E,GAAIA,EAAYrC,GACd,MAAM,IAAIvjB,GAAmB,mCAAmCujB,MAElE,OAAOpyE,EACL,IAAIJ,EAAU40E,QAAAA,EAAYH,GAAkBpyE,IAAOmK,MACjD,IAAIxM,EAAUwyE,IAAwBxpE,KAAK,IAGjD,CAeO,SAAS8rE,GAAuBzyE,EAAgB0yE,GAA6B,IAAAC,EAAAC,EAAAC,EAClF,MAAMp2E,EAAS00E,GAAenxE,GAAMvD,OAASy0E,GAAYz0E,OAGzD,OADyF,QADlFk2E,EACmD,QADnDC,EACqB,QADrBC,EACJp2E,GAAU,EAAI,KAAO,YAAI,IAAAo2E,EAAAA,EAAMp2E,GAAU,EAAI,IAAM,YAAI,IAAAm2E,EAAAA,EAAMn2E,GAAU,GAAK,IAAM,YAAI,IAAAk2E,EAAAA,EAAK,GACnFD,CACb,CAMO,SAASI,GAAc9yE,GAC5B,OAAOmxE,GAAenxE,GAAMvD,OAAS,GAAKy0E,GAAYz0E,MACxD,CC3NO86D,eAAewb,GACpB9+D,EACA8d,GAEA,OAAOj0B,KAAKG,YA5Bds5D,eACEtjD,GACA,kBACE++D,EAAiB,iBACjBC,EAAgB,OAChBC,IAGF,GAAyB,MAArBF,GAAsC,cAAT/+D,EAAsB,OAAO++D,EAC9D,GAAwB,MAApBC,GAAqC,gBAATh/D,EAAwB,OAAOg/D,EAE/D,MAAME,QAAkBD,EAAOE,eAC/B,MAAkB,WAAdD,EAA+B,GAC9B,CAAC,aAAc,UAAU35D,SAAS25D,UAAqBD,EAAOG,gBAAyB,IAE/E,cAATp/D,EAA6B,KACrB,GACd,CAW2Bq/D,CAAiBr/D,EAAM8d,GAAY,EAC9D,CAEA,MAAMwhD,GAA+D,IAAInmD,QAWlEmqC,eAAeic,IAAU,OAC9BC,GAAS,KACN1hD,IAKH,MAAMmhD,ET3BmD,QAAzDQ,GADgD9gE,ES4BrBmf,EAAQmhD,QT3BSQ,qBAAa,IAAAA,EAAAA,EAAI9gE,EADxD,IAA2CA,EAAqB8gE,ES6BrE,GAAID,EAAQ,CACV,MAAMxkC,EAAQskC,GAAYj7D,IAAI46D,GAC9B,GAAa,MAATjkC,GAAiBA,EAAM0kC,KAAOxiE,KAAKmrD,YAAeyW,GAAiB,YAAahhD,GAClF,OAAOkd,EAAMyZ,MAEjB,CACA,MAAM,OAAEA,SAAiBwqB,EAAOU,2BAEhC,OADAL,GAAYjuE,IAAI4tE,EAAQ,CAAExqB,SAAQirB,KAAMxiE,KAAKmrD,QACtC5T,CACT,CAcO6O,eAAesc,GACpB/rC,GACA,OACEtD,EAAS,EAAC,SACVsvC,KACG/hD,IAIL,IAAIhyB,EADJ+zE,UAAAA,QAAmBf,GAAiB,cAAehhD,IAEnD,EAAG,CACD,MAAMuX,QAAWvX,EAAQmhD,OAAOa,qBAAqBjsC,GACrD,IAAwB,IAApBwB,EAAG0qC,YAAoB,OAAO1qC,EACvB,MAAPvpC,IACFA,EAAoB,IAAdupC,EAAGA,GAAG2qC,KAAa,QAAWT,GAAU,IAAKzhD,EAAS0hD,QAAQ,IAAWjvC,SAE3EwlC,GAAM8J,EACd,QAAkB,IAAT/zE,SAA2ByzE,GAAU,IAAKzhD,EAAS0hD,QAAQ,IAAW1zE,GAC/E,MAAM,IAAI4oD,EAAgBnkB,EAAQsD,EACpC,CAWOyvB,eAAe2c,GACpBxrB,GACA,SACEorB,KACG/hD,IAIL,IAAIoiD,EADJL,UAAAA,EAAah2E,KAAKgC,UAAUizE,GAAiB,YAAahhD,GAAU,MAEpE,GACuB,MAAjBoiD,SAA6BnK,GAAM8J,GACvCK,QAAsBX,GAAUzhD,SACzBoiD,EAAgBzrB,GACzB,OAAOyrB,CACT,CAWO5c,eAAe6c,GACpBlnB,GACA,QACEmnB,EAAU,EAAC,OACXnB,KACGnhD,IAGL,MAAM,YAAEiiD,SAAsBd,EAAOa,qBAAqB7mB,GACpDxE,QAAewrB,GAAYF,EAAcK,EAAS,CAAEnB,YAAWnhD,KAC7DiiD,YAAaM,SAAyBpB,EAAOa,qBAAqB7mB,GAC1E,OAAQonB,GACN,KAAM,EACJ,MAAM,IAAIrnB,GAAkBC,GAC9B,KAAK8mB,EACH,OAAOtrB,EACT,QACE,OAAO0rB,GAAiBlnB,EAAQ,CAAEgmB,SAAQmB,aAAYtiD,IAE5D,CAWOwlC,eAAegd,GACpBhrB,GACA,OACEb,EAAM,KACN9uB,EAAI,OACJs5C,IAGF,OAAc,MAAVxqB,EAAuBwqB,EAAOsB,4BAA4BjrB,EAASb,GAC3D,MAAR9uB,EAAqBs5C,EAAOuB,0BAA0BlrB,EAAS3vB,GAC5Ds5C,EAAOwB,mBAAmBnrB,EACnC,CAYOgO,eAAeod,GACpBprB,GACA,OAIE3lD,EAAS0pD,GAAkBQ,UACxB/7B,IAGL,MAAM6iD,EAAOrrB,EAAQuJ,WAAW,OAC5BxiD,GAAOymB,GAAOwyB,GAAUqhB,GAAS2C,gBAChChkB,GAEC,QAAEsrB,SAAkBN,GAAWK,EAAM7iD,GAAS+iD,OAAO38D,IACzD,IAAKqyD,GAAuBryD,GAAQ,MAAMA,EAC1C,MAAO,CAAE08D,QAAS,GAAI,IAGxB,OAAO9mB,GAAa8mB,EAAS,CAAE5mB,mBAAoBrqD,GACrD,CAUO2zD,eAAewd,IAAqB,OACzC7B,IAIA,OAAOA,EAAO6B,sBAChB,CAWOxd,eAAeyd,GACpBC,GACA,OAAE/B,IAEF,MAA4B,iBAAjB+B,EAAkC/B,EAAOgC,sBAAsBD,GACnE/B,EAAOiC,oBAAoBF,EACpC,CAWO1d,eAAe6d,GACpBx7C,GACA,OAAEs5C,IAEF,aAAcA,EAAOmC,gCAAgCz7C,IAAO07C,YAC9D,CAWO/d,eAAege,GACpBN,GACA,OAAE/B,IAEF,MAA4B,iBAAjB+B,EAAkC/B,EAAOsC,oBAAoBP,GACjE/B,EAAOuC,kBAAkBR,EAClC,CAWO1d,eAAeme,GACpB97C,GACA,OAAEs5C,IAEF,OAAOA,EAAOyC,0BAA0B/7C,EAC1C,CAUA,MAAMg8C,GAAoF,IAAI9oD,IAE9FyqC,eAAese,GAAgBtmE,EAAa2jE,GAC1C,MAAM4C,EAAKF,GAAiBt9D,IAAI/I,GAEhC,GADAqmE,GAAiBpkB,OAAOjiD,GACd,MAANumE,EAAY,MAAM,IAAI1sB,GAAc,6BAExC,IAAI2sB,EACJ,IACE,MAAMC,EACiB,iBAAdF,EAAG,GAAGE,WACF9C,EAAOsC,oBAAoBM,EAAG,GAAGE,MAAMp8C,KAC9Ck8C,EAAG,GAAGE,IACZD,QAAkB7C,EAAO+C,mBAAmB,CAC1CD,MACAE,SAAUJ,EAAG,GAAGI,SAChBC,IAAKL,EAAG/mE,KAAK+gD,IAAG,CAAQxmB,GAAIwmB,EAAIxmB,OAChC8sC,SAAUj5E,MAAMwV,KAAK,IAAIsa,IAAI6oD,EAAG/mE,KAAK+gD,GAAQA,EAAIumB,mBAAkBtnE,KAAKunE,IAAM,CAC5EA,SACA5qB,OAAQokB,GAAgBpkB,YAG9B,CAAE,MAAOvzC,GAEP,YADA29D,EAAGriD,SAAQ,EAAGnN,YAAaA,EAAOnO,IAEpC,CAEA,MAAM,QAAEo+D,EAAO,SAAEL,GAAaH,EAC9BQ,EAAQ9iD,SAAQ,EAAGpJ,SAAQ69C,YAAWsO,GAAiBC,KACrD,MAAM,QAAEpwD,EAAO,OAAEC,EAAM,GAAEgjB,EAAE,eAAE+sC,GAAmBP,EAAGW,GACpC,OAAXpsD,EAAiBhE,EAAQ,IAAKmwD,EAAeN,aAC5C5vD,EAAOjU,OAAO8/C,OAAO,IAAIxF,GAAYub,GAAmB,CAAE5+B,KAAI+sC,mBAAkB,GAEzF,CAaO9e,eAAemf,GACpBptC,EACA+sC,GACA,IACEL,EAAG,SACHE,EAAQ,QACRS,EAAO,OACPzD,IAEgE,IAAA0D,EAClE,MAAMrnE,GAAkB,IAAZonE,EAAmB,CAACX,EAAKE,GAAUj5E,OAAS,YAClD45E,EAAoC,QAA5BD,EAAGhB,GAAiBt9D,IAAI/I,UAAI,IAAAqnE,EAAAA,EAAI,GAE9C,OADAhB,GAAiBtwE,IAAIiK,EAAKsnE,GACnB,IAAIzwD,SAAQ,CAACC,EAASC,KAAW,IAAAwwD,EACtCD,EAAS/5E,KAAK,CACZwsC,KACA+sC,iBACAL,MACAE,WACA7vD,UACAC,YAEc,IAAZqwD,EAIY,QAAhBG,EAAAD,EAAS1hD,eAAO,IAAA2hD,IAAhBD,EAAS1hD,QAAYR,YAAW,KACzBkhD,GAAgBtmE,EAAK2jE,EAAO,KAJ5B2C,GAAgBtmE,EAAK2jE,EAK1B,GAEN,CAUO3b,eAAewf,GACpBC,GACA,OAAE9D,IAEF,OAAOA,EAAO+D,gBAAgBD,EAChC,CAUOzf,eAAe2f,GACpBF,GACA,OAAE9D,IAEF,OAAOA,EAAOgE,YAAYF,EAC5B,CAUOzf,eAAe4f,GACpBn3E,GACA,OAAEkzE,IAEF,OAAOA,EAAOkE,mBAAmBp3E,EACnC,CAcOu3D,eAAe8f,GACpB5tB,EACAl6C,GACA,OACEk+B,GAAS,EAAI,cACb6pC,GAAgB,EAAK,OACrBpE,IAGF,GAAIlB,GAAOvoB,GAAW,CACpB,GAAIhc,GAAU6pC,EAAe,CAC3B,MACMC,SADarE,EAAOkE,mBAAmB3tB,IACxB+tB,SAAS3lC,MAAMrsC,GAAMA,EAAE+J,MAAQA,IACpD,GAAe,MAAXgoE,EAAiB,MAAM,IAAI/tB,GAAwBC,EAAUl6C,GACjE,GAAI+nE,EAAe,OAAOC,EAAQzzE,EACpC,CACA,OAAO8tE,GAAcnoB,EACvB,CACA,IAEE,OADA1yB,GAAO0yB,GACAA,CACT,CAAE,MAAOtxC,GACP,MAAM,IAAI0xC,GAAqB,4BAA4BJ,IAC7D,CACF,C,sBC9cO,MAAMguB,GAAkB,CAC7B,CAAClH,GAAyBmH,OAAQ,CAChC,kBAAmB,CACjBC,UAAW,CAACnH,GAAUoH,OACtBC,WAAY,CAACpH,GAAWqH,OAE1B,gBAAiB,CACfH,UAAW,GACXE,WAAY,CAACpH,GAAWqH,OAE1B,cAAe,CACbH,UAAW,GACXE,WAAY,CAACpH,GAAWsH,MAAOtH,GAAWqH,SAUzC,SAASE,GACdC,EACAhkE,GACW,IAAAikE,EACX,MAAMxT,EAAW+S,GAAgBQ,GAAiBhkE,GAClD,MAAO,CACL0jE,UAAgC,QAAvBO,EAAExT,EAASiT,UAAU,UAAE,IAAAO,EAAAA,EAAI1H,GAAU2H,MAC9CN,WAAYnT,EAASmT,WAAW,GAEpC,CAEA,QACEn2D,SAAAA,CACE9O,EACAi3D,GACA,yBACEuO,EAA2B7H,GAAyBmH,QAKtD,OAFA9kE,UAAAA,EAAUolE,GAAmBI,EAA0B,oBAEhDvmE,GAAOc,KAAK,CAACC,EAAM+kE,UAAW,EAAG/kE,EAAMilE,YAChD,EAEA,aAAMQ,CACJzlE,EACAi3D,EAEA93C,GAEA,OAAa,MAATnf,EAAsBA,EACc,MAApCmf,EAAQqmD,0BACyC,IAAjD/lE,OAAO4P,KAAKsuD,IAA0B9zE,QACpB,MAAlBs1B,EAAQmhD,OACH8E,UACEjmD,EAAQmhD,OAAOoF,eAAeF,yBACrC,wBALJ,CASF,EAEAG,WAAAA,CAAY/kE,GACV,MAAOglE,EAAG,CAAGC,GAAOjlE,EACpB,MAAO,CAAEmkE,WAAYa,EAAIX,YAAaY,EACxC,G,kBCtEF,IACEC,mBAAAA,CAAoBl5E,EAA6B4vC,GAG/C,OAAO4oC,GAAmBx4E,EADxBkxE,GAAIiI,iBAAmBvpC,GAAOshC,GAAIkI,WAAaxpC,EAAM,gBAAkB,eACtCyoC,UACrC,EAEAn2D,SAAAA,CACE9O,GACA,IAAEw8B,IACF,yBACEgpC,EAA2B7H,GAAyBmH,QAGtD,MAAMrtD,EAASzX,QAAAA,EAAS1P,KAAKw1E,oBAAoBN,EAA0BhpC,GAE3E,OAAOv9B,GAAOc,KAAK,CAAC0X,GACtB,EAEA,aAAMguD,CACJzlE,GACA,IAAEw8B,GAEFrd,GAEA,OAAa,MAATnf,EAAsBA,EACc,MAApCmf,EAAQqmD,0BACyC,IAAjD/lE,OAAO4P,KAAKsuD,IAA0B9zE,QACpB,MAAlBs1B,EAAQmhD,OACHhwE,KAAKw1E,2BACH3mD,EAAQmhD,OAAOoF,eAAeF,yBACrChpC,QALJ,CASF,EAEAmpC,WAAAA,CAAY/kE,GACV,OAAOA,EAAO,EAChB,G,kBChCK,MAAMqlE,GAAkB,CAC7BjO,GAAS2C,eACT3C,GAASgD,KACThD,GAAS8C,WACT9C,GAASyC,cACTzC,GAASuC,gBACTvC,GAASsC,SAKI,SAAS4L,MACnB/J,GAKH,MAAO,CAMLrtD,SAAAA,CAAUq3D,GACR,MAAM5/C,EAAM4/C,EAAO75E,MAAM,EAAG,GAC5B,IAAKorE,GAAcnxC,EAAK0/C,IAAkB,MAAM,IAAI7rB,GAAiB7zB,GACrE,IAAKmxC,GAAcnxC,EAAK41C,GACtB,MAAM,IAAIlnB,EAAc,mBAAoBknB,EAAU9xE,KAAK,MAAOk8B,GAEpE,MAAM6/C,EAAQH,GAAgBv7E,QAAQ67B,GAAO,EAC7C,OAAOtnB,GAAOc,KAAK,IAAI4jB,GAAQyiD,MAAWjiD,GAAOgiD,IACnD,EAOAR,WAAAA,CAAYnmE,GACV,MAAM4mE,EAAQnnE,GAAOc,KAAKP,GAAKyI,WAAW,EAAG,GACvCse,EAAM0/C,GAAgBG,EAAQ,GACpC,GAAW,MAAP7/C,EAAa,MAAM,IAAI2zB,GAAoBksB,GAC/C,IAAK1O,GAAcnxC,EAAK41C,GACtB,MAAM,IAAIlnB,EAAc,mBAAoBknB,EAAU9xE,KAAK,MAAOk8B,GAEpE,OAAO7oB,GAAO8B,EAAIoI,SAAS,GAAI2e,EACjC,EAEJ,CC3De,SAAS8/C,GAAqCC,GAO3D,MAAO,CACLx3D,SAAAA,CAAUy3D,EAAOtP,GACf,OAAOsP,EAAMpqE,KAAKw7D,GAAS2O,EAAYx3D,UAAU6oD,EAAMV,IACzD,EAEA0O,WAAAA,CAAYa,EAASvP,GACnB,OAAOuP,EAAQrqE,KAAKyE,GAAW0lE,EAAYX,YAAY/kE,EAAQq2D,IACjE,EAEJ,CCXA,QACEnoD,SAAAA,CAAU9O,GACR,GAAIqD,OAAOrD,GAAS,EAAG,MAAM,IAAIi1C,EAAc,QAAS,wBAAyBj1C,GACjF,OAAO2jB,GAAQ3jB,GAAO,EACxB,EAEA2lE,WAAAA,CAAY3lE,GACV,OAAOk/D,GAAQl/D,EACjB,GCTF,OACKymE,GAGHC,eAAAA,CAAgB1mE,EAA2Bi3D,EAAY93C,GACrD,OAAOnf,QAAAA,EAAS,GAClB,EAEA8O,SAAAA,CACE9O,EACAi3D,GACA,aAAE7b,EAAeV,GAAkBQ,UAAW/7B,IAE9C,OAAOsnD,GAAK33D,UACVxe,KAAKo2E,gBACM,MAAT1mE,EAAgBm7C,GAAan7C,EAAO,CAAEo7C,iBAAkBp7C,EACxDi3D,EACA93C,GAGN,G,kBCrBa,SAASwnD,GACtBzmE,EACA0mE,GAOA,MAAO,CACL93D,SAAAA,CAAU+3D,GACR,GAAmB,MAAfA,EAAqB,CACvB,IAAiB,IAAbD,EAAmB,OAAO3nE,GAAOc,KAAK,IAC1C,MAAM,IAAIk1C,EAAc,eAAgB,WAAY4xB,EACtD,CACA,OAAO1iD,GAAO0iD,EAChB,EAEAlB,WAAAA,CAAY/kE,GACV,OAAOlD,GAAOkD,EAAQV,EACxB,EAEJ,C,sBCrBe,SAAS4mE,GACtBtqC,GAeA,MAAO,CACL1tB,SAAAA,CAAUi4D,GAAU,UAAEC,IACpB,OAAIzmE,YAAYC,OAAOumE,GAAkB9nE,GAAOc,KAAKgnE,GAC7B,iBAAbA,GAAyBA,EAAS7mB,WAAW,OAC/C/7B,GAAO4iD,GAET5iD,GAAO6iD,EAAU,IAAKD,KAAqB,MAAPvqC,GAAe,CAAEA,SAC9D,EAEAmpC,WAAAA,CAAYnmE,GAAK,YAAEynE,IACjB,OAAOA,EAAYvpE,GAAO8B,EAAKw4D,GAAS+B,WAAYv9B,EACtD,EAEJ,C,sBC9Be,SAAS0qC,GACtBC,GAKA,MAAMz9B,EAASjqC,OAAOiqC,OAAOy9B,GAAKroC,QAAQ5uC,GAAmB,iBAANA,IACvD,MAAO,CACL4e,SAAAA,CAAU9O,GACR,GAAqB,iBAAVA,EAAoB,MAAM,IAAIi1C,EAAc,QAAS,iBAAkBj1C,GAClF,GAAIA,EAAQ,IAAM,MAAM,IAAIi1C,EAAc,QAAS,sBAAuBj1C,GAC1E,IAAK03D,GAAc13D,EAAO0pC,GACxB,MAAM,IAAIuL,EAAc,QAAS,wBAAyBj1C,GAE5D,OAAOf,GAAOc,KAAK,CAACC,GACtB,EAEA2lE,WAAAA,CAAY/kE,GACV,GAAsB,IAAlBA,EAAO/W,OACT,MAAM,IAAIorD,EAAc,SAAU,yBAA0Br0C,EAAO/W,QAErE,MAAMmW,EAAQY,EAAO,GACrB,IAAK82D,GAAc13D,EAAO0pC,GACxB,MAAM,IAAIuL,EAAc,QAAS,wBAAyBj1C,GAE5D,OAAOA,CACT,EAEJ,CCxBA,MAAMonE,GAAmE,IAAI5sD,QAEtEmqC,eAAe0iB,GAA2BppB,GAC/C,MAAM5hB,EAAQ+qC,GAAc1hE,IAAIu4C,GAChC,GAAa,MAAT5hB,GAAiBA,EAAM0kC,KAAOxiE,KAAKmrD,MAAQ,IAC7C,OAAOrtB,EAAMirC,SAGf,MAAM,YAAEC,EAAW,YAAEC,UAAuBvpB,EAAKwpB,sBAAsB,GACvE,IAAIH,EACFE,EAAc,GACV,GACApgE,OAAO,IAAIrc,EAAUw8E,EAAY54E,YAAY4I,MAAM,MAAMC,eAAekC,WAE9E,MAAMguE,EAA0C,QAAxBtgE,OAAOi2D,IAW/B,OAVIiK,EAAWI,IACb1pE,QAAQ+W,KACN,uBAAuBuyD,8EACKI,4EAG9BJ,EAAWI,GAGbN,GAAc10E,IAAIurD,EAAM,CAAEqpB,WAAUvG,KAAMxiE,KAAKmrD,QACxC4d,CACT,CAGA,WACKK,GAEH,aAAMlC,CACJzlE,EACAi3D,GACA,OACEqJ,EAAM,aACNllB,IASF,GAAa,MAATp7C,EAAe,OAAOA,EAC1B,GAAc,MAAVsgE,EACF,MAAM,IAAIrrB,EAAc,SAAU,2CAA4CqrB,GAEhF,MAAMgH,QAAiBD,GAA2B/G,GAClD,OAAiB,KAAbgH,EACGnsB,GAAamsB,EAAU,CAAEjsB,mBAAoBD,SADpD,CAEF,EAEAsrB,eAAAA,CAAgB1mE,EAA4Bq9D,GAAc1uE,YACxD,IAAKqR,EAAQq9D,GACX,MAAM,IAAIhoB,EACR,aAAar1C,EAAMrR,kCAAkC0uE,MAGzD,OAAOr9D,CACT,GCOF,SAAS4nE,GAAqB3Q,GAC5B,MAAM4Q,EAAU,CACd,CAAC/J,GAAIgK,kBAAmB,iBACxB,CAAChK,GAAIiK,gBAAiB,iBACtB,CAACjK,GAAIkK,eAAgB,gBACrB,CAAClK,GAAImK,iBAAkB,qBAGnB,IAAEzrC,GAAQy6B,EAChB,OAAKQ,GAAcj7B,EAAKqrC,GACjB5Q,EAAO4Q,EAAQrrC,IADmB,CAE3C,CAKO,SAAS0rC,GACdC,EACAC,EACAC,GAEA,MAAM,OAAEx+E,GAAWs6B,GAAOgkD,GACpBG,EAAWF,EAASD,GAE1B,IAAII,EAAc,EAKlB,OAJID,EAAS9rC,MAAQshC,GAAIkI,UAAYsC,EAAS9rC,MAAQshC,GAAI0K,cACxDD,EAAcpkD,GAAOkkD,EAAQC,EAAS5xC,GAAG+xC,YAAY5+E,QA7EpC6+E,KAAwB,IAAAC,EAW3C,OAzBe,MAwB6C,QAAhDA,EATO,CACjB,CAAC7K,GAAI8K,wBAAyB,GAC9B,CAAC9K,GAAI+K,mBAAoB,EACzB,CAAC/K,GAAIgL,kBAAmB,EACxB,CAAChL,GAAIiI,gBAAiB,GACtB,CAACjI,GAAIiL,YAAa,EAClB,CAACjL,GAAIkI,UAAW,EAChB,CAAClI,GAAI0K,aAAc,IAEKE,UAAkC,IAAAC,EAAAA,EAAI,EACxC,EAsEtBK,CAAYV,EAAS9rC,KApDJysC,EACnBP,EACAQ,GACEC,cAAaZ,kBAEf,OAAQG,GACN,KAAK5K,GAAIgK,iBACT,KAAKhK,GAAIiK,eACT,KAAKjK,GAAIkK,cACT,KAAKlK,GAAImK,gBACP,OApDe,GAqDbiB,EACAh+E,KAAKC,KAAM,KAAQg+E,EAAej+E,KAAKG,MAAO,SAElD,KAAKyyE,GAAIkI,SACT,KAAKlI,GAAI0K,YACP,OA1De,IA0DPU,EAASX,GACnB,QACE,OA5De,GA4DRW,EACX,EAkCED,CAAaX,EAAS9rC,IAAK3yC,EAAQ,CACjCs/E,YAAavB,GAAqBU,GAClCC,eAGN,CAwBA,MAAMa,GAAiB,cASvB,WACKzB,GAEH,aAAMlC,CACJzlE,EACAi3D,GACA,OAAEqJ,IAEF,GAAa,MAATtgE,EAAe,OAAOA,EAC1B,GAAc,MAAVsgE,EACF,MAAM,IAAIrrB,EAAc,SAAU,sCAAuCqrB,GAE3E,MAAMgH,QAAiBD,GAA2B/G,GAClD,OAAiB,KAAbgH,EACG8B,GAAiB9B,OADxB,CAEF,EAEAZ,eAAAA,CACE2C,GACA,UAAEC,EAAS,SAAElB,EAAQ,QAAEC,EAAO,iBAAEkB,IAChC,gBAAEC,IAEF,GAAwB,MAApBD,EAA0B,OAAOA,EAAiB7vE,UACtD,MAAM+vE,EAjDV,SACEH,EACAlB,EACAC,GAEA,IACIqB,EADAC,EAAM,IAAI5+E,EAAU,GAExB,GACE2+E,EAAcC,EACdA,EAAM,IAAI5+E,EAAUsyE,IAAe9lE,MAAM2wE,GAASoB,EAAUK,GAAMvB,EAAUC,WACpEsB,EAAIjyE,GAAGgyE,IACjB,OAAOC,CACT,CAqCmBC,EACZD,GAAQL,EAAU,CAAEC,iBAAkBI,KACvCvB,EACAC,GAEIroE,GACmC,IAAvCqpE,GAAQnpB,WAAWkpB,IACfK,EAAO7yE,UAAUymE,IAAe9lE,MAAM8xE,EAAO54E,QAAQ24E,GAAgB,KACrE,IAAIr+E,EAAUs+E,QAAAA,EAAUI,GAC9B,GAAIA,EAAO5xE,GAAGmI,GAAQ,CACpB,IAAwB,IAApBwpE,EAA0B,OAAOC,EAAO/vE,UAC5C,MAAM,IAAI27C,EAAqB,OAAOr1C,EAAMrR,kCAAkC86E,IAChF,CACA,OAAOzpE,EAAMtG,SACf,EAEAoV,SAAAA,CACE9O,EACAi3D,EACA93C,GAEA,MAAqB,iBAAVnf,GAAsBA,EAAMkgD,WAAWkpB,IACzC3C,GAAK33D,UAAUxe,KAAKo2E,gBAAgB1mE,EAAOi3D,EAAQ93C,IAErDwoD,GAAW74D,UAAU1b,KAAK9C,KAAM0P,EAAOi3D,EAAQ93C,EACxD,GC/LF,IACErQ,SAAAA,CAAU9O,GACR,OAAOymE,GAAK33D,UAAU9O,EACxB,EAEA2lE,WAAAA,CAAY3lE,GACV,OAAQymE,GAAKd,YAAY3lE,EAC3B,GCMF,OACK6pE,GAEH/6D,SAAAA,CACEu6D,GACA,IACE7sC,EAAG,UACH8sC,EAAS,SACTlB,EAAQ,QACRC,EAAO,mBACPyB,IAQF,OAAEC,EAAS,MAEX,GAA0B,MAAtBD,EAA4B,OAAOD,GAAU/6D,UAAUg7D,GAE3D,MAAME,EACJxtC,IAAQshC,GAAIkI,SACR5I,GAjCV,SACE2M,EACAT,EACAlB,EACAC,GAEA,OAAO0B,GAAU7B,GAASoB,EAAUS,GAAS3B,EAAUC,EACzD,CA2BU4B,CACEF,GACCG,GAAaZ,EAAU,CAAEQ,mBAAoBI,EAAUV,iBAAiB,KACzEpB,EACAC,GAEFroE,EAAQqpE,QAAAA,EAAUW,EACxB,GAAIhqE,EAAQgqE,EACV,MAAM,IAAI30B,EAAqB,aAAar1C,8BAAkCgqE,KAEhF,OAAOH,GAAU/6D,UAAU9O,EAC7B,G,kBCnDF,IACE8O,SAAAA,CAAU9O,GACR,OAAOf,GAAOc,KAAKC,EACrB,EAEA2lE,WAAAA,CAAY3lE,GACV,OAAOA,EAAMrR,UACf,GCJF,IAIEmgB,SAAAA,CAAU9O,GACR,OAAOmqE,GAAMr7D,UAAU9O,EACzB,EAKA2lE,WAAAA,CAAY3lE,GACV,OAAOmqE,GAAMxE,YAAY3lE,EAC3B,GCVF,OACK2nE,GAEHjB,eAAAA,CAAgB2C,EAA4Be,GAC1C,MAAMpzB,EAAawoB,GAAkB4K,EAASh9E,MACxC4S,EAAQ,IAAIjV,EAAUs+E,QAAAA,EAAUryB,GACtC,GAAIA,EAAWn/C,GAAGmI,GAAQ,MAAM,IAAI82C,GAAyB92C,EAAOg3C,GACpE,OAAOh3C,EAAMtG,SACf,EAOAoV,SAAAA,CACE9O,EACAoqE,EACAC,GAEA,OAAO1C,GAAW74D,UAAU1b,KAAK9C,KAAM0P,EAAOoqE,EAAUC,EAC1D,GCtBF,MAAMC,GAAc3zB,GAAQqhB,GAASgD,MAErC,WACKsP,GAKHx7D,SAAAA,CAAU9O,GACR,OAAOsqE,GAAYx7D,UAAUswD,GAAOp/D,GAASg/D,GAAch/D,GAASA,EACtE,GCRa,SAASuqE,GACtBC,GAiBA,MAAO,IACFX,GAEH/6D,SAAAA,CAAU9O,GAAe,IAAEw8B,IACzB,GAAIshC,GAAIiL,aAAevsC,GAAiB,IAAVx8B,EAC5B,MAAM,IAAIi1C,EAAc,QAAS,wBAAyBj1C,GAE5D,OAAO6pE,GAAU/6D,UAAU9O,EAC7B,EAEA,aAAMylE,CAAQzlE,EAAOi3D,EAAQ93C,GAC3B,GAAa,MAATnf,EAAe,OAAOA,EAG1B,MAAM,OAAEsgE,EAAM,SAAE9U,GAAarsC,EACvB++C,EAAW/+C,EAAQqrD,GACnBr1B,EAAc,wCACpB,GAAc,MAAVmrB,EAAgB,MAAM,IAAIrrB,EAAc,SAAUE,EAAamrB,GACnE,GAAgB,MAAZpC,EAAkB,MAAM,IAAIjpB,EAAc,WAAYE,EAAa+oB,GACvE,aACQoC,EACHmK,oBAAoBvM,EAASztE,QAAQ,OAAQ,OAAQ,CAAE+6D,aACvD0W,OAAO38D,IACN,IAAKqyD,GAAuBryD,GAAQ,MAAMA,EAC1C,MAAO,CAAEmlE,UAAW,EAAG,KAE3BA,SACJ,EAEAF,YAEJ,C,sBCjDA,MAAMG,GAAS1rE,GAAOc,KAAK,CAAC,IACtB6qE,GAAW3rE,GAAOc,KAAK,CAAC,IAExB8qE,GAAal0B,MAAWsvB,IAU9B,OACE6E,IAAkB,CAalBh8D,SAAAA,CAAU81D,GACR,GAAIA,EAAS/6E,OAAS,GACpB,MAAM,IAAIwrD,EACR,qCAAqCuvB,EAAS/6E,kBAGlD,OAAO+6E,EAASzoE,KAAI,EAAGQ,MAAKzL,SAC1B,IAAImqE,EAIJ,GAHIgB,GAAUnrE,KAAO+0E,MACnB5K,EAAU,IAAKyP,EAAW,CAACH,IAAU,GAAKE,GAAW/7D,UAAU5d,KAE7DmrE,GAAUnrE,EAAI8mE,GAAS+B,WAAY,CACrC,MAAMx4D,EAAO4iB,GAAOjzB,GACpB,GAAIqQ,EAAK1X,OAtCO,KAuCd,MAAM,IAAIorD,EACR,cACA,0BACA,GAAG1zC,EAAK1X,gBAGZwxE,EAAU,CAACuP,GAAUrpE,EACvB,CACA,GAAe,MAAX85D,EAAiB,MAAM,IAAIxhB,GAAY,+BAA+B3oD,KAC1E,MAAO,CAACyyB,GAAQhnB,GAAMsC,GAAOxK,OAAO4mE,GAAS,GAEjD,EAOAsK,WAAAA,CAAYf,GACV,OAAOA,EAASzoE,KAAI,EAAE4uE,EAAMC,MAC1B,IAAKF,EAAU,MAAO,CAAEnuE,IAAKouE,EAAKp8E,WAAYuC,GAAI25E,GAAWlF,YAAYqF,IACzE,MAAMxuC,EAAMwuC,EAAIpjE,SAAS,EAAG,GACtByzD,EAAU2P,EAAIpjE,SAAS,GAC7B,IAAI1W,EAIJ,GAHIsrC,EAAIp2B,OAAOukE,MAASz5E,EAAK25E,GAAWlF,YAAYtK,IAEhD7+B,EAAIp2B,OAAOwkE,MAAW15E,EAAKwM,GAAO29D,EAASrD,GAAS+B,YAC9C,MAAN7oE,EAAY,MAAM,IAAI2oD,GAAY,6BAA6Brd,KACnE,MAAO,CAAE7/B,IAAKouE,EAAKp8E,WAAYuC,KAAI,GAEvC,ICrEF,OACKy2E,GAEH,aAAMlC,CACJzlE,EACAi3D,EACA93C,GAEA,GAAa,MAATnf,EAAe,OAAOA,EAC1B,MAAM,OAAEsgE,EAAM,SAAEnC,GAAah/C,EACvBg2B,EAAc,2CACpB,GAAc,MAAVmrB,EAAgB,MAAM,IAAIrrB,EAAc,SAAUE,EAAamrB,GACnE,GAAgB,MAAZnC,EAAkB,MAAM,IAAIlpB,EAAc,WAAYE,EAAagpB,GACvE,aAAcmC,EAAO2K,kBAAkB9M,IAAW+M,SAASv8E,UAC7D,G,kBCvBF,IACEmgB,SAAAA,CAAUlO,GACR,OAAO3B,GAAOc,KAAKa,EACrB,EAEA+kE,WAAAA,CAAY/kE,GACV,OAAOA,CACT,GCJa,SAASuqE,GAItBC,EACAxE,GAOA,MAAO,CACL93D,SAAAA,CAAU9O,GACR,KAAkB,IAAb4mE,GAA8B,MAAT5mE,IAAkBA,IAAUorE,EACpD,MAAM,IAAIn2B,EAAc,iBAAkBm2B,EAAYprE,GAExD,OAAO6pE,GAAU/6D,UAAUs8D,EAC7B,EAEAzF,WAAAA,CAAYnmE,GACV,MAAMQ,EAAQ6pE,GAAUlE,YAAYnmE,GACpC,GAAIQ,IAAUorE,EAAY,MAAM,IAAIn2B,EAAc,iBAAkBm2B,EAAYprE,GAChF,OAAOorE,CACT,EAEAA,aAEAC,oBAAiC,IAAbzE,EAExB,CC/BA,QACE93D,SAAAA,CAAU7O,GACR,OAAO0jB,GAAQ1jB,EACjB,EAEA0lE,WAAAA,CAAY/kE,GACV,OAAOA,EAAOjS,UAChB,G,kBCLa,SAAS28E,GACtB9uC,GAeA,MAAO,CACL1tB,SAAAA,CAAUi4D,GAAU,QAAEsB,IACpB,OAAI9nE,YAAYC,OAAOumE,GAAkB9nE,GAAOc,KAAKgnE,GAC7B,iBAAbA,GAAyBA,EAAS7mB,WAAW,OAC/C/7B,GAAO4iD,GAET5iD,GAAOkkD,EAAQ,IAAKtB,KAAqB,MAAPvqC,GAAe,CAAEA,SAC5D,EAEAmpC,WAAAA,CAAYnmE,GAAK,SAAE4oE,IACjB,OAAOA,EAAS1qE,GAAO8B,EAAKw4D,GAASwB,aAAch9B,EACrD,EAEJ,CCrBA,WACKqtC,GAEH/6D,SAAAA,CAAU9O,GACR,OAAO6pE,GAAU/6D,UAAU9O,QAAAA,EAAS,EACtC,EAEA,aAAMylE,CACJzlE,EACAi3D,GAEA,OACEqJ,EAAM,YACNiL,KACGpsD,IAML,IAAoB,IAAhBosD,GAAkC,IAAVvrE,GAAwB,MAATA,EAAe,CACxD,GAAc,MAAVsgE,EAAgB,MAAM,IAAIrrB,EAAc,SAAU,WAAYqrB,GAClEtgE,SAAe4gE,GAAU,IAAKzhD,EAASmhD,SAAQO,QAAQ,GACzD,CACA,OAAO7gE,CACT,GCrCa,SAASwrE,GACtBC,EACAtB,GAQA,MAAO,IACFA,EAEHr7D,SAAAA,CAAU9O,EAAOi3D,GACf,OAAOkT,EAAMr7D,UAAU9O,QAAAA,EAASyrE,EAAcxU,EAChD,EAEJ,CCjBe,SAASyU,GACtB16E,EACAm5E,GAQA,MAAO,IACFA,EAEHr7D,SAAAA,CAAU9O,EAAOi3D,EAAQ93C,GACvB,OAAOgrD,EAAMr7D,UAAU9d,EAAOgP,GAAQi3D,EAAQ93C,EAChD,EAEJ,CCdO,IAAKwsD,GAAc,SAAdA,GAAc,OAAdA,EAAAA,EAAc,WAAdA,EAAAA,EAAc,iBAAdA,EAAAA,EAAc,mBAAdA,CAAc,MASdC,GAAQ,SAARA,GAAQ,OAARA,EAAAA,EAAQ,sBAARA,EAAAA,EAAQ,oBAARA,EAAAA,EAAQ,gBAARA,EAAAA,EAAQ,wBAARA,EAAAA,EAAQ,gCAARA,EAAAA,EAAQ,mEAARA,EAAAA,EAAQ,iEAARA,EAAAA,EAAQ,mEAARA,EAAAA,EAAQ,+EAARA,EAAAA,EAAQ,2EAARA,EAAAA,EAAQ,sBAARA,EAAAA,EAAQ,wBAARA,EAAAA,EAAQ,4BAARA,EAAAA,EAAQ,kBAARA,EAAAA,EAAQ,4BAARA,EAAAA,EAAQ,qCAARA,EAAAA,EAAQ,6BAARA,EAAAA,EAAQ,mCAARA,EAAAA,EAAQ,yCAARA,EAAAA,EAAQ,iCAARA,EAAAA,EAAQ,mCAARA,EAAAA,EAAQ,yCAARA,CAAQ,MC8BRC,GAAgB,SAAhBA,GAAgB,OAAhBA,EAAAA,EAAgB,iBAAhBA,EAAAA,EAAgB,iBAAhBA,CAAgB,MAY5B,MAAMC,GAAiBnzB,KAUjBozB,GAAsBpzB,GAAYmlB,GAAIkO,UAUtCC,GAAgBhgB,GAAM2f,GAASM,UAE/BC,GAAYX,GAAY,KAAS3B,IAKjCuC,GAAUV,IAAgB1rE,IAC9B,MAAMqsE,EAAW,KAEjB,GADArsE,UAAAA,EAAUqsE,GACNrsE,GAAS,GAAKA,GAASqsE,EAAU,OAAOrsE,EAC5C,MAAM,IAAIi1C,EAAc,UAAW,uCAA6Cj1C,EAAM,GACrF6pE,IAKUyC,GAAW,CACtB,CACE9vC,IAAK+vC,GAAezO,GAAIkO,UACxB9oD,QAASqpD,GAAe,GAAG,GAC3BC,WAAY7qE,GAAM8qE,IAClBhE,UAAWqD,IAEb,CACEtvC,IAAK+vC,GAAezO,GAAI4O,SACxBxpD,QAASqpD,GAAe,GAAG,GAC3BrO,SAAUvnB,GAAQqhB,GAAS2C,gBAE3BgS,YAAah2B,GAAQqhB,GAAS2C,eAAgB3C,GAASuC,gBAAiBvC,GAASgD,MACjFliB,OAAQ6uB,GACRgC,IAAG,GACHtI,IAAG,GACH9nC,MAAOA,GAAM,YACb8hC,QAASuR,GAAQ5U,GAAS+B,WAAW,IAEvC,CACEv9B,IAAK+vC,GAAezO,GAAI+O,gBACxB3pD,QAASqpD,GAAe,GAAG,GAC3BO,UAAWn2B,GAAQqhB,GAAS2C,gBAC5BphC,MAAOA,GAAM,aACbwzC,aAAcp2B,GAAQqhB,GAAS8C,YAC/B6O,IAAG,GACHtI,IAAGA,IAEL,CACE7kC,IAAK+vC,GAAezO,GAAIkP,aACxB9pD,QAASqpD,GAAe,GAAG,GAC3BO,UAAWn2B,GAAQqhB,GAAS2C,gBAC5BphC,MAAOA,GAAM,aACbnsC,KAAI,GACJ6/E,SAAUzB,GAAY,EAAG/E,IACzB1vB,QAAO,GACP4yB,IAAG,GACHtI,IAAGA,IAEL,CACE7kC,IAAK+vC,GAAezO,GAAIoP,cACxBhqD,QAASqpD,GAAe,GAAG,GAC3BO,UAAWn2B,GAAQqhB,GAAS2C,gBAC5BphC,MAAOA,GAAM,aACb4zC,OAAM,GACNf,WACAxH,SAAUA,IAAS,GACnBuH,aACAxC,IAAG,GACHtI,IAAGA,IAEL,CACE7kC,IAAK+vC,GAAezO,GAAIoP,cACxBhqD,QAASqpD,GAAe,GACxBO,UAAWn2B,GAAQqhB,GAAS2C,gBAC5BphC,MAAOA,GAAM,aACb4zC,OAAM,GACNf,WACAxH,SAAUA,IAAS,GACnBuH,aACAxC,IAAG,GACHtI,IAAGA,IAEL,CACE7kC,IAAK+vC,GAAezO,GAAIsP,gBACxBlqD,QAASqpD,GAAe,GAAG,GAC3BO,UAAWn2B,GAAQqhB,GAAS2C,gBAC5BphC,MAAOA,GAAM,aACb4zC,OAAM,GAENR,YAAah2B,GAAQqhB,GAAS2C,eAAgB3C,GAASgD,MACvD2O,IAAG,GACHtI,IAAGA,IAEL,CACE7kC,IAAK+vC,GAAezO,GAAIuP,cACxBnqD,QAASqpD,GAAe,GAAG,GAC3BO,UAAWn2B,GAAQqhB,GAAS2C,gBAC5BphC,MAAOA,GAAM,aACb4zC,OAAM,GACNxD,IAAG,GACHtI,IAAGA,IAEL,CACE7kC,IAAK+vC,GAAezO,GAAIgL,kBACxB5lD,QAASqpD,GAAe,GAAG,GAC3Be,QAAS32B,GAAQqhB,GAAS2C,gBAC1BphC,MAAOA,GAAM,WACb/uC,KAAMoiF,GAAQ5U,GAASqB,mBACvBkU,UAAS,GACT5D,IAAG,GACHtI,IAAG,GACHmM,QAAS9B,IAAe,CAAC1rE,EAAQ,KAC/B,GAAe,IAAVA,EAAa,OAAOA,EACzB,MAAM,IAAIi1C,EAAc,UAAW,sCAAuCj1C,EAAM,GAC/E2nE,IACH7uB,OAAQ6uB,GACRuC,SAAQ,GACR5C,SAAQ,GACRmG,SAAUb,GAAQ5U,GAASqB,oBAE7B,CACE78B,IAAK+vC,GAAezO,GAAIiI,gBACxB7iD,QAASqpD,GAAe,GAAG,GAC3BmB,SAAU/2B,GAAQqhB,GAAS2C,gBAC3BphC,MAAOA,GAAM,YAEb6qC,WAAYztB,GAAQqhB,GAASuC,gBAAiBvC,GAASgD,MACvDiK,WAAU,GACV0E,IAAG,GACHtI,IAAG,GACHvoB,OAAQ6uB,GACRuC,SAAQ,GACR5C,SAAQ,GACRmG,SAAUb,GAAQ5U,GAASqB,oBAE7B,CACE78B,IAAK+vC,GAAezO,GAAIgK,kBACxB5kD,QAASqpD,GAAe,GAAG,GAC3BO,UAAWn2B,GAAQqhB,GAAS2C,gBAC5BphC,MAAOA,GAAM,aACbo0C,YAAa1tE,GACb2tE,eAAgB3tE,GAChBirE,SAAUvD,GACVkG,cAAerC,GAAYK,GAAiBiC,MAAOC,GAAYlC,KAC/DmC,eAAgBxC,GAAY,IAAK3B,IACjCF,IAAG,GACHtI,IAAG,GACH4D,WAAUA,IAEZ,CACEzoC,IAAK+vC,GAAezO,GAAIiK,gBACxB7kD,QAASqpD,GAAe,GAAG,GAE3BpO,SAAUxnB,GAAQqhB,GAASyC,cAAezC,GAASgD,MACnDzhC,MAAOA,GAAM,YACbs0C,cAAerC,GAAYK,GAAiBiC,MAAOC,GAAYlC,KAC/DmC,eAAgBxC,GAAY,IAAK3B,IACjCF,IAAG,GACHtI,IAAGA,IAEL,CACE7kC,IAAK+vC,GAAezO,GAAIkK,eACxB9kD,QAASqpD,GAAe,GAAG,GAC3BrO,SAAUvnB,GAAQqhB,GAAS2C,gBAC3BphC,MAAOA,GAAM,YAEb4kC,SAAUxnB,GAAQqhB,GAASyC,cAAezC,GAASgD,MACnDiT,MAAOhuE,GACPirE,SAAQ,GACRgD,aAAc1C,GAAYK,GAAiBiC,MAAOC,GAAYlC,KAC9DsC,cAAe3C,GAAY,GAAI3B,IAC/BuE,gBAAiB5C,GAAYK,GAAiBiC,MAAOC,GAAYlC,KACjEwC,iBAAkB7C,GAAY,GAAI3B,IAClCF,IAAG,GACHtI,IAAGA,IAEL,CACE7kC,IAAK+vC,GAAezO,GAAImK,iBACxB/kD,QAASqpD,GAAe,GAAG,GAC3BpO,SAAUxnB,GAAQqhB,GAASyC,eAC3BlhC,MAAOA,GAAM,YACb+0C,QAAS1B,GAAQ5U,GAAS0C,eAC1BjW,SAAUxkD,GACVmuE,gBAAiB5C,GAAYK,GAAiBiC,MAAOC,GAAYlC,KACjEwC,iBAAkB7C,GAAY,GAAI3B,IAClCF,IAAG,GACHtI,IAAGA,IAEL,CACE7kC,IAAK+vC,GAAezO,GAAIyQ,iBACxBrrD,QAASqpD,GAAe,GAAG,GAC3BiC,UAAW73B,GAAQqhB,GAAS2C,gBAC5B8T,gBAAiBhI,GACjBiI,UAAW/3B,GAAQqhB,GAAS2C,gBAC5BgU,gBAAiBlI,GACjBmI,eAAgBnI,GAChBoI,WAAYpI,GACZpF,IAAG,GACHsI,IAAG,GACHmF,qBAAsBntE,GAAMg1C,MAAWsvB,KACvC8I,qBAAsBptE,GAAMg1C,MAAWsvB,KACvC+I,UAAWpC,GAAQ5U,GAAS2B,OAC5BpgC,MAAOA,GAAM,cAEf,CACEiD,IAAK+vC,GAAezO,GAAImR,sBACxB/rD,QAASqpD,GAAe,GAAG,GAC3B2C,UAAWv4B,GAAQqhB,GAASsC,SAC5B6U,OAAQx4B,GAAQqhB,GAAS2C,gBACzByU,qBAAsB3I,GACtB4I,qBAAsB5I,GACtBpF,IAAG,GACHsI,IAAG,GACHpwC,MAAOA,GAAM,WAEf,CACEiD,IAAK+vC,GAAezO,GAAIwR,oBACxBpsD,QAASqpD,GAAe,GAAG,GAC3B2C,UAAWv4B,GAAQqhB,GAASsC,SAC5B6U,OAAQx4B,GAAQqhB,GAAS2C,gBACzBU,QAASuR,GAAQ5U,GAASwB,aAC1B+V,IAAKtD,GACL5K,IAAG,GACHsI,IAAG,GACHpwC,MAAOA,GAAM,WAEf,CACEiD,IAAK+vC,GAAezO,GAAI0R,gBACxBtsD,QAASqpD,GAAe,GAAG,GAC3B2C,UAAWv4B,GAAQqhB,GAASsC,SAC5B6U,OAAQx4B,GAAQqhB,GAAS2C,gBACzBU,QAASuR,GAAQ5U,GAASwB,aAC1B+V,IAAKtD,GACL5K,IAAG,GACHsI,IAAG,GACHpwC,MAAOA,GAAM,WAEf,CACEiD,IAAK+vC,GAAezO,GAAI2R,kBACxBvsD,QAASqpD,GAAe,GAAG,GAC3B2C,UAAWv4B,GAAQqhB,GAASsC,SAC5B6U,OAAQx4B,GAAQqhB,GAAS2C,gBACzB7hB,OAAQ2tB,GACRpF,IAAG,GACHsI,IAAG,GACHqF,UAAWpC,GAAQ5U,GAAS2B,OAC5B/oE,MAAOi5E,GACPtwC,MAAOA,GAAM,WAEf,CACEiD,IAAK+vC,GAAezO,GAAI4R,mBACxBxsD,QAASqpD,GAAe,GAAG,GAC3B2C,UAAWv4B,GAAQqhB,GAASsC,SAC5BqV,KAAMh5B,GAAQqhB,GAAS2C,gBACvB7hB,OAAQ2tB,GACRpF,IAAG,GACHsI,IAAG,GACHqF,UAAWpC,GAAQ5U,GAAS2B,OAC5B/oE,MAAOi5E,GACPtwC,MAAOA,GAAM,WAEf,CACEiD,IAAK+vC,GAAezO,GAAI8R,iBACxB1sD,QAASqpD,GAAe,GAAG,GAC3B2C,UAAWv4B,GAAQqhB,GAASsC,SAC5B6U,OAAQx4B,GAAQqhB,GAAS2C,gBACzByU,qBAAsB3I,GACtB4I,qBAAsB5I,GACtBpF,IAAG,GACHsI,IAAG,GACHpwC,MAAOA,GAAM,WAEf,CACEiD,IAAK+vC,GAAezO,GAAI8K,wBACxB1lD,QAASqpD,GAAe,GAAG,GAC3B2C,UAAWv4B,GAAQqhB,GAASsC,SAC5B6U,OAAQx4B,GAAQqhB,GAAS2C,gBACzBU,QAASuR,GAAQ5U,GAASwB,aAC1B5oE,MAAOi5E,GACPvjD,OAAQsmD,GAAQ5U,GAASqB,mBACzB2V,UAAWpC,GAAQ5U,GAAS2B,OAC5BkW,cAAejD,GAAQ5U,GAAS6B,YAChCwH,IAAG,GACHsI,IAAG,GACHpwC,MAAOA,GAAM,WAEf,CACEiD,IAAK+vC,GAAezO,GAAI+K,mBACxB3lD,QAASqpD,GAAe,GAAG,GAC3B2C,UAAWv4B,GAAQqhB,GAASsC,SAC5B1pE,MAAOi5E,GACPmF,UAAWpC,GAAQ5U,GAAS2B,QAE9B,CACEn9B,IAAK+vC,GAAezO,GAAIgS,uBACxB5sD,QAASqpD,GAAe,GAAG,GAC3B2C,UAAWv4B,GAAQqhB,GAASsC,SAC5B6U,OAAQx4B,GAAQqhB,GAAS2C,gBACzBU,QAASuR,GAAQ5U,GAASwB,aAC1B6H,IAAG,GACHsI,IAAG,GACHpwC,MAAOA,GAAM,WAEf,CACEiD,IAAK+vC,GAAezO,GAAIiL,YACxB7lD,QAASqpD,GAAe,GAAG,GAC3Be,QAAS32B,GAAQqhB,GAAS2C,gBAC1BphC,MAAOA,GAAM,WACb/uC,KAAMoiF,GAAQ5U,GAASqB,mBACvB0W,QAAStD,GACTc,UAAS,GACT5D,IAAG,GACHtI,IAAG,GACH6I,SAAQ,GACR5C,SAAQ,GACRmG,SAAUb,GAAQ5U,GAASqB,oBAE7B,CACE78B,IAAK+vC,GAAezO,GAAIkI,UACxB9iD,QAASqpD,GAAe,GAAG,GAC3ByD,KAAMr5B,GAAQqhB,GAAS2C,gBACvBsV,SAAUrD,GAAQ5U,GAASqB,mBAC3B4L,WAAU,GACV0E,IAAG,GACHO,SAAQ,GACR5C,SAAQ,GACR5wC,GAAIq1C,IAEN,CACEvvC,IAAK+vC,GAAezO,GAAI0K,aACxBtlD,QAASqpD,GAAe,GAAG,GAC3B2D,QAASv5B,GAAQqhB,GAAS2C,gBAC1BphC,MAAOA,GAAM,WACbowC,IAAG,GACHjzC,GAAIq1C,K,gCCvYD,SAASoE,GACdC,EACAtS,EACAthC,EACAtZ,GAEA,MAAMmtD,EAAaD,EAAQtxC,QAAQ5yC,GAAMA,EAAEswC,IAAI4uC,aAAe5uC,IAC9D,GAA0B,IAAtB6zC,EAAWxmF,OAAc,MAAM,IAAIswD,GAAoB,GAAG2jB,EAAIthC,OAASA,KAAQ,GACnF,GAAe,MAAXtZ,EAAiB,CACnB,MAAMotD,EAAgBD,EAAWpxC,MAAMsxC,GAAWA,EAAOrtD,QAAQmoD,qBACjE,GAAqB,MAAjBiF,EACF,MAAM,IAAI95B,GAAc,gCAAgCsnB,EAAIthC,OAASA,MACvEtZ,EAAUotD,EAAcptD,QAAQkoD,UAClC,CACA,MAAMmF,EAASF,EAAWpxC,MAAM/yC,GAAMA,EAAEg3B,QAAQkoD,aAAeloD,IAC/D,GAAc,MAAVqtD,EAAgB,MAAM,IAAIp2B,GAAoB,GAAG2jB,EAAIthC,OAASA,KAAQtZ,GAC1E,OAAOzjB,OAAOgqC,QAAQ8mC,EACxB,CAEO,SAASC,GACdJ,EACAtS,EACA7G,EAKAwZ,EACAvwE,GAEA,MACMs8D,EADS2T,GAAUC,EAAStS,EAAK7G,EAAOz6B,IAAKy6B,EAAO/zC,SACpC/mB,KAAI,EAAEQ,EAAKwtE,KAC/BA,EAAMr7D,UAAUmoD,EAAOt6D,GAAM,IAAKs6D,KAAWwZ,GAAexZ,KAE9D,OAAOv5D,IAAOgzE,EAAAA,GAAAA,QAAUlU,GAASt8D,EACnC,CAEO,SAASywE,GACdP,EACAtS,EACA8S,EACAC,EACAJ,GAEA,MAAMjU,GAASsU,EAAAA,GAAAA,QAAU3sD,GAAOysD,IAChC,IAAKrwE,YAAYC,OAAOg8D,EAAO,MAAQj8D,YAAYC,OAAOg8D,EAAO,IAC/D,MAAM,IAAI3iB,GAAY,8CAExB,MAAMrd,EAAMv9B,GAAOc,KAAKy8D,EAAO,IAAIx0D,WAAW,EAAGw0D,EAAO,GAAG3yE,QAErD0mF,EAASJ,GAAUC,EAAStS,EAAKthC,EADvBv9B,GAAOc,KAAKy8D,EAAO,IAAIx0D,WAAW,EAAGw0D,EAAO,GAAG3yE,SAE/D,GAAmB,MAAfgnF,GAAuBA,IAAgBr0C,EACzC,MAAM,IAAIqd,GAAY,YAAYikB,EAAI+S,eAAyB/S,EAAIthC,cAErE,GAAIggC,EAAO3yE,SAAW0mF,EAAO1mF,OAC3B,MAAM,IAAIorD,EAAc,aAAcs7B,EAAO1mF,OAAQ2yE,EAAO3yE,QAE9D,OAAO4V,OAAO83D,YACZgZ,EAAOp0E,KAAI,EAAE/O,EAAM+8E,GAAQ3zD,IAAU,CACnCppB,EACA+8E,EAAMxE,YAAYnJ,EAAOhmD,GAAsBi6D,MAGrD,C,sBC9EA,IACE3hE,SAAAA,CAAU9O,GACR,OAAOf,GAAOc,KAAK,CAACC,EAAQ,EAAI,GAClC,EAEA2lE,WAAAA,CAAY/kE,GACV,OAAqB,IAAdA,EAAO,EAChB,GCHa,SAASmwE,GACtB7wE,EACAs8B,GAgBA,MAAO,CACL1tB,SAAAA,CAAUC,GAAQ,UAAEi4D,IAClB,OAAO7iD,GACL6iD,EAAU,CACRxqC,IAAKovC,GAASoF,MACdtnC,OAAQjqC,OAAOgqC,QAAQ16B,GAAQ5S,KAC7B,EAAEQ,EAAKqD,MAAM,CAETw8B,IAAKovC,GAASqF,WACdt0E,IAAKwnB,GAAOxnB,GACZqD,MAAOmkB,GAAO6iD,EAAU,IAAMhnE,EAAew8B,eAKzD,EAEAmpC,WAAAA,CAAY/kE,GAAQ,YAAEqmE,IACpB,MAAM,OAAEv9B,GAAWu9B,EAAYvpE,GAAOkD,EAAQo3D,GAAS+B,WAAY6R,GAASoF,OAC5E,OAAOvxE,OAAO83D,YACZ7tB,EAEG5K,QAAO,EAAGniC,SAAUuD,IAAa83D,GAASuC,iBAAkC,KAAf59D,EAAI9S,SACjEsS,KAAI,EAAGQ,MAAKqD,WAAY,CACvBtC,GAAOf,EAAKuD,GACZ+mE,EAAYvpE,GAAOsC,EAAOg4D,GAAS+B,WAAYv9B,MAGvD,EAEA00C,eAAe,EAEnB,C,maC3C8E,IAIzEC,GAAQ,SAARA,GAAQ,OAARA,EAAAA,EAAQ,mBAARA,EAAAA,EAAQ,yBAARA,EAAAA,EAAQ,eAARA,CAAQ,EAARA,IAAQ,IAAAC,GAAA,IAAA52D,QAAA62D,GAAA,IAAA72D,QAAA82D,GAAA,IAAA92D,QAAA+2D,GAAA,IAAA/2D,QAAAg3D,GAAA,IAAAh3D,QAAAi3D,GAAA,IAAAj3D,QAAAk3D,GAAA,IAAAh3D,QAQb,MAAMi3D,GAKJ,cAAIC,GACF,OAAOC,GAAKR,GAAL/gF,KACT,CAqBA5B,WAAAA,CAAY8tE,EAAsBt8D,EAAas8B,EAAQs1C,G,MAOrD,G,GA0EF,K,EAAAJ,I,MAAA,MA5GAK,GAAA,KAASX,QAAS,GAElBW,GAAA,KAAAV,IAAc,GAMdU,GAAA,KAAST,QAAM,GAEfS,GAAA,KAASR,QAAS,GAElBQ,GAAA,KAASP,QAAI,GAEbO,GAAA,KAASN,QAAY,GAcnBO,GAAKT,GAALjhF,KAAiB4P,GACjB8xE,GAAKR,GAALlhF,KAAYksC,GACZw1C,GAAKP,GAALnhF,KAAoBwhF,GACpBE,GAAKZ,GAAL9gF,KAAiBksE,EAAO,GAAG7tE,SAAS,QACpCqjF,GAAKV,GAALhhF,KAAcmP,OAAO83D,YAAYiF,EAAO,GAAGrgE,KAAK8hD,GAAS,CAACA,EAAK,GAAGtvD,SAAS,OAAQsvD,EAAK,QAErD,MAA/B4zB,GAAKP,GAALhhF,MAAYuhF,GAAKT,GAAL9gF,OAOhBmP,OAAOgqC,QAAQooC,GAAKP,GAALhhF,OAAauwB,SAAQ,EAAElkB,EAAKshD,MACzC,GAAIg0B,GAAgB7+E,KAAhBu+E,GAAiB1zB,KAAUthD,EAAK,MAAM,IAAI08C,GAC9C,MAAM,KAAEh4C,GAAS6wE,GAAiB9+E,KAAjBu+E,GAAkB1zB,GACnC,OAAQ58C,GACN,KAAK8vE,GAASgB,OACZl0B,EACG3xD,MAAM,EAAG,IACTwyC,QAAQ/yC,GAAMA,EAAElC,SAChBg3B,SAAS90B,IAK8B,MAAlC8lF,GAAKP,GAALhhF,MAAYvE,EAAE4C,SAAS,SAAiBqjF,GAAKX,GAAL/gF,MAAmB,EAAH,IAEhE,MACF,KAAK6gF,GAASiB,UACZ,GAA4C,MAAxCP,GAAKP,GAALhhF,MAAY2tD,EAAK,GAAGtvD,SAAS,QAC/B,MAAM,IAAI2qD,GAAuB,+CAEnC,MACF,KAAK63B,GAASkB,KACZ,MACF,QACE,MAAM,IAAI77B,GAAc,6BAA6Bn1C,KACzD,QAhCF,CACE,GAAwC,IAApC5B,OAAO4P,KAAKwiE,GAAKP,GAALhhF,OAAazG,OAC3B,MAAM,IAAIyvD,GAAuB,kCAEnC04B,GAAKX,GAAL/gF,MAAmB,EAErB,CA4BF,CAEAgiF,OAAAA,CAAQC,GACN,OAAOV,GAAKT,GAAL9gF,QAAmBuhF,GAAKT,GAALmB,EAC5B,CA6BAzjE,SAAAA,GACE,MAAO,CACL7P,GAAOc,KAAK8xE,GAAKT,GAAL9gF,MAAgB,OAC5BmP,OAAOgqC,QAAQooC,GAAKP,GAALhhF,OAAa6L,KAAI,EAAEq2E,EAASxyE,KAAW,CAACf,GAAOc,KAAKyyE,EAAS,OAAQxyE,KAExF,CA2CA0F,GAAAA,CAAI/I,GACF,MAAMjL,EAAI+gF,GAAAf,GAAAphF,KAAKoiF,IAAOt/E,KAAZ9C,KAAa6zB,GAAOxnB,GAAKhO,SAAS,QAC5C,OAAS,MAAL+C,EAAkBA,EACfmgF,GAAKJ,GAALnhF,MAAiB8C,KAAjB9C,KAAkBoN,GAAOhM,EAAGsmE,GAAS+B,WAAY8X,GAAKL,GAALlhF,MAC1D,CAmCA2tC,QAAAA,GACE,OAAOx+B,OAAO83D,YACZkb,GAAAf,GAAAphF,KAAKqiF,IAAWv/E,KAAhB9C,MAEGwuC,QAAO,EAAEhyC,KAAO+kF,GAAKN,GAALjhF,QAAmB0nE,GAASuC,iBAAgC,KAAbztE,EAAEjD,SACjEsS,KAAI,EAAErP,EAAGoD,KAAO,CACfwN,GAAOuB,GAAOc,KAAKjT,EAAG,OAAQ+kF,GAAKN,GAALjhF,OAC9BuhF,GAAKJ,GAALnhF,MAAiB8C,KAAjB9C,KAAkBoN,GAAOxN,EAAG8nE,GAAS+B,WAAY8X,GAAKL,GAALlhF,UAGzD,EAvMU,SAAA2hF,GAiBOh0B,GACf,OAAOh/C,GAAOc,KAAKinB,IAAK0pD,EAAAA,GAAAA,QAAUzyB,KAAQtvD,SAAS,MACrD,CAAC,SAAAujF,GAwDiBj0B,GAChB,OAAQA,EAAKp0D,QACX,KAAK,GACH,MAAO,CACLwX,KAAM8vE,GAASgB,UACS,IAApBl0B,EAAK,IAAIp0D,QAAgB,CAAEmW,MAAOi+C,EAAK,MAE/C,KAAK,EAAG,CACN,MAAMvE,EAASuE,EAAK,GAAG,IAAM,EAC7B,GAAIvE,EAAS,EAAG,MAAM,IAAID,GAAuBC,GACjD,MAAMr4C,EAAOq4C,GAAU,EAAIy3B,GAASiB,UAAYjB,GAASkB,KACnD/lF,EAAQ,CAAC,EAAG,GAAGsa,SAAS8yC,GAAU,EAAI,EAC5C,MAAO,CACLr4C,UACIA,IAAS8vE,GAASkB,MAAQ,CAAEryE,MAAOi+C,EAAK,IAC5CjhB,KAAMihB,EAAK,GAAGtvD,SAAS,OAAOrC,MAAMA,GAExC,CACA,QACE,MAAM,IAAIitD,GAAuB0E,EAAKp0D,QAE5C,CAAC,SAAA6oF,GAkBOE,GACN,IAAIC,EAAahB,GAAKT,GAAL9gF,MACbqM,EAAMi2E,EACV,OAAa,CAEX,MAAM30B,EAAO4zB,GAAKP,GAALhhF,MAAYuiF,GACzB,GAAY,MAAR50B,EAAc,CAChB,IAAK3tD,KAAKshF,WAAY,OACtB,MAAM,IAAIp7B,GAAc,mCAC1B,CACA,MAAM,KAAEn1C,EAAI,MAAErB,EAAK,KAAEg9B,GAASk1C,GAAiB9+E,KAAjBu+E,GAAkB1zB,GAChD,OAAQ58C,GACN,KAAK8vE,GAASgB,OACZ,GAAmB,IAAfx1E,EAAI9S,OAAc,OAAOmW,EAC7B6yE,EAAa50B,GAAM,KAAKthD,EAAI,MAAMhO,SAAS,OAC3CgO,EAAMA,EAAIhM,UAAU,GACpB,MACF,KAAKwgF,GAASiB,UACZ,GAAIz1E,EAAIhM,UAAU,EAAGqsC,GAAMnzC,UAAYmzC,EAAM,OAC7C61C,EAAa50B,EAAK,GAAGtvD,SAAS,OAC9BgO,EAAMA,EAAIhM,UAAUqsC,EAAKnzC,QACzB,MACF,KAAKsnF,GAASkB,KACZ,GAAIr1C,IAASrgC,EAAK,OAClB,OAAOqD,EACT,QACE,MAAM,IAAIw2C,GAAc,6BAA6Bn1C,KAE3D,CACF,CAAC,SAAAsxE,KAcC,MAAMlpC,EAAmC,GACnCqpC,EAAMA,CAACD,EAAoBl2E,KAC/B,MAAMshD,EAAO4zB,GAAKP,GAALhhF,MAAYuiF,GACzB,GAAY,MAAR50B,EAAc,CAChB,IAAK3tD,KAAKshF,WAAY,OACtB,MAAM,IAAIp7B,GAAc,mCAC1B,CACA,MAAM,KAAEn1C,EAAI,MAAErB,EAAK,KAAEg9B,GAASk1C,GAAiB9+E,KAAjBu+E,GAAkB1zB,GAChD,OAAQ58C,GACN,KAAK8vE,GAASgB,OACZl0B,EACG3xD,MAAM,EAAG,IACT6P,KAAI,CAAC3D,EAAGqrE,IAA4B,CAACrrE,EAAGqrE,KACxC/kC,QAAO,EAAEtmC,KAAOA,EAAE3O,SAClBg3B,SAAQ,EAAEroB,EAAGqrE,KAASiP,EAAIt6E,EAAE7J,SAAS,OAAQgO,EAAMknE,EAAIl1E,SAAS,OACtD,MAATqR,GAAeypC,EAAQv/C,KAAK,CAACyS,EAAKqD,IACtC,MACF,KAAKmxE,GAASiB,UACZU,EAAI70B,EAAK,GAAGtvD,SAAS,OAAQgO,EAAMqgC,GACnC,MACF,KAAKm0C,GAASkB,KACZ,GAAa,MAATryE,EAAe,MAAM,IAAIy2C,GAC7BhN,EAAQv/C,KAAK,CAACyS,EAAMqgC,EAAMh9B,IAC1B,MACF,QACE,MAAM,IAAIw2C,GAAc,6BAA6Bn1C,KACzD,EAGF,OADAyxE,EAAIjB,GAAKT,GAAL9gF,MAAgB,IACbm5C,CACT,CAea,SAASspC,GACtB7yE,EACAs8B,GAKA,MAAO,CACL1tB,SAAAA,CAAU9O,GACR,OAAOA,EAAM8O,WACf,EAEA62D,WAAAA,CAAY3lE,GAAO,YAAEinE,IACnB,OAAO,IAAI0K,GAAO3xE,EAAOE,EAAUs8B,EAAKyqC,EAC1C,EAEJ,CCrOe,SAAS+L,GACtBx2C,GAgBA,MAAO,CACL1tB,SAAAA,CAAUusD,GAAS,UAAE2L,IACnB,OAAO7iD,GAAO6iD,EAAU,CAAExqC,MAAK6+B,YACjC,EAEAsK,WAAAA,CAAY/kE,GAAQ,YAAEqmE,IACpB,OAAOA,EAAyBvpE,GAAOkD,EAAQo3D,GAAS+B,WAAYv9B,GAAK6+B,OAC3E,EAEA6V,eAAe,EAEnB,CDuLC+B,GAxMKtB,GESN,MAAMuB,GAAuBvxE,GAAMsqD,GAAM2f,GAASqF,aAY5CkC,GAAeh3E,GAAI67D,GAASuC,gBAAiBqR,GAASwH,UAYtDC,GAAcl3E,GAAI67D,GAAS2C,eAAgBiR,GAAS0H,SAYpDC,GAAWp3E,GAAI67D,GAAS+B,UAAW6R,GAAS4H,cAQ5CC,GAAct3E,GAAI67D,GAASsC,QAASsR,GAAStR,SAQ7CoZ,GAAWv3E,GAAI67D,GAASgD,KAAM4Q,GAAS5Q,MAUvC2Y,GAAax3E,GAAI67D,GAASyC,cAAemR,GAASgI,QAK3CxD,GAAU,CACrB,CACE5zC,IAAK+vC,GAAeX,GAAS0H,SAC7BpwD,QAASqpD,GAAe,GACxBhzC,MAAOswC,GACP5H,QAASwE,IAEX,CACEjqC,IAAK+vC,GAAeX,GAAS0H,SAC7BpwD,QAASqpD,GAAe,GAAG,GAC3B52D,MAAO8wD,GACPltC,MAAOswC,GACP5H,QAASwE,GACToN,WAAYl9B,GAAQqhB,GAASuC,gBAAiBvC,GAASgD,MACvD8Y,UAAWlH,GAAQ5U,GAASqB,oBAE9B,CACE78B,IAAK+vC,GAAeX,GAAS5Q,MAC7B93C,QAASqpD,GAAe,GAAG,GAC3BO,UAAWn2B,GAAQqhB,GAAS2C,gBAC5ByR,QAASvC,GACThlB,OAAQ4nB,GAIRN,UAAWtC,GACXjF,SAAQA,IAEV,CACEpoC,IAAK+vC,GAAeX,GAASwH,UAC7BlwD,QAASqpD,GAAe,GAAG,GAC3BvO,MAAOrnB,GAAQqhB,GAAS2C,gBACxB4S,UAAS,GACT/iF,KAAMoiF,GAAQ5U,GAASqB,mBACvBp7D,IAAK2uE,GAAQ5U,GAASqB,mBACtB0a,OAAQC,GACRC,SAAUtyE,GAAMg1C,GAAQqhB,GAAS2C,iBACjC6S,QAAS7F,IAEX,CACEnrC,IAAK+vC,GAAeX,GAAS4H,cAC7BtwD,QAASqpD,GAAe,GAAG,GAC3BmB,SAAU/2B,GAAQqhB,GAAS2C,gBAC3BuZ,YAAarK,GACb/zB,OAAQ+zB,GACRzF,WAAYztB,GAAQqhB,GAASuC,iBAE7B+M,SAAUb,GACV0N,QAAStK,GACTuK,YAAaxH,GAAQ5U,GAASqB,mBAC9Bgb,WAAYtG,GAAYpC,IAGxB1tE,IAAK0D,GAAM8qE,KAEb,CACEjwC,IAAK+vC,GAAeX,GAASgI,QAC7B1wD,QAASqpD,GAAe,GAAG,GAC3BO,UAAWn2B,GAAQqhB,GAAS2C,gBAC5BgT,YAAa1tE,GACb2tE,eAAgB3tE,GAChBirE,SAAUvD,GACVqG,eAAgBnE,GAChB5E,WAAUA,IAEZ,CACEzoC,IAAK+vC,GAAeX,GAAStR,SAC7Bp3C,QAASqpD,GAAe,GAAG,GAC3BiC,UAAW73B,GAAQqhB,GAAS2C,gBAC5B+T,UAAW/3B,GAAQqhB,GAAS2C,gBAC5B2Z,cAAe7N,GACfgI,gBAAiBhI,GACjBkI,gBAAiBlI,GACjBmI,eAAgBnI,GAChBqI,qBAAsBntE,GAAMg1C,MAAWsvB,KACvC8I,qBAAsBptE,GAAMg1C,MAAWsvB,KACvC+I,UAAWpC,GAAQ5U,GAAS2B,OAC5B/oE,MAAOi5E,GACP0K,UAAW9N,GACXoI,WAAYpI,GACZ+N,YAAa/N,GACbgO,cAAe7H,GAAQ5U,GAASqB,mBAChCqb,cAAe9H,GAAQ5U,GAASqB,oBAElC,CACE78B,IAAK+vC,GAAeX,GAAS+I,+BAC7BzxD,QAASqpD,GAAe,GAAG,GAC3BxsE,KAAM42C,GAAQqhB,GAAS2C,gBACvBia,GAAIj+B,GAAQqhB,GAAS2C,gBACrB7hB,OAAQ2tB,IAEV,CACEjqC,IAAK+vC,GAAeX,GAASiJ,8BAC7B3xD,QAASqpD,GAAe,GAAG,GAC3BxsE,KAAM42C,GAAQqhB,GAAS2C,gBACvB7hB,OAAQ2tB,IAEV,CACEjqC,IAAK+vC,GAAeX,GAASkJ,+BAC7B5xD,QAASqpD,GAAe,GAAG,GAC3BxsE,KAAM42C,GAAQqhB,GAAS2C,gBACvB7hB,OAAQ2tB,IAEV,CACEjqC,IAAK+vC,GAAeX,GAASmJ,qCAC7B7xD,QAASqpD,GAAe,GAAG,GAC3BvO,MAAOrnB,GAAQqhB,GAAS2C,gBACxB4S,UAAS,GACT/iF,KAAMoiF,GAAQ5U,GAASqB,mBACvBmU,QAAS/G,GACTgH,SAAUb,GAAQ5U,GAASqB,oBAE7B,CACE78B,IAAK+vC,GAAeX,GAASoJ,mCAC7B9xD,QAASqpD,GAAe,GAAG,GAC3B0I,OAAQt+B,GAAQqhB,GAAS2C,gBACzBua,SAAUv+B,GAAQqhB,GAASuC,iBAC3B0K,WAAU,GACVnsB,OAAQ2tB,GACRgH,SAAUb,GAAQ5U,GAASqB,mBAC3B8b,UAAW1I,GACXnF,SAAQ,GACR4C,SAAQA,IAEV,CACE1tC,IAAK+vC,GAAeX,GAASM,UAC7BhpD,QAASqpD,GAAe,GAAG,GAE3B/I,SAAU7hE,GAAMyzE,GAAOpd,GAAS2C,eAAgBiR,GAAS0H,UACzD+B,MAAO1zE,GAAMyzE,GAAOpd,GAAS+B,UAAW6R,GAAS4H,eACjD8B,SAAU3zE,GAAMyzE,GAAOpd,GAASsC,QAASsR,GAAStR,UAClDib,UAAW5zE,GAAMyzE,GAAOpd,GAASuC,gBAAiBqR,GAASwH,WAC3DnzB,GAAIt+C,GAAMyzE,GAAOpd,GAASgD,KAAM4Q,GAAS5Q,OACzCwa,QAAS7zE,GAAMyzE,GAAOpd,GAASyC,cAAemR,GAASgI,UAEzD,CACEp3C,IAAK+vC,GAAeX,GAAS/R,YAC7B32C,QAASqpD,GAAe,GAAG,GAC3BgJ,UAAWlgE,GAAQu2D,GAAS6J,gBAC5BJ,MAAOhgE,GAAQu2D,GAAS8J,YACxBJ,SAAUjgE,GAAQu2D,GAAS+J,eAC3B11B,GAAI5qC,GAAQu2D,GAASgK,kBACrBJ,QAASngE,GAAQu2D,GAASiK,cAC1BrS,SAAUnuD,GAAQu2D,GAASkK,gBAE7B,CACEt5C,IAAK+vC,GAAeX,GAASoF,OAC7B9tD,QAASqpD,GAAe,GAAG,GAC3B7iC,OAAQwpC,IAEV,CACE12C,IAAK+vC,GAAeX,GAASqF,YAC7B/tD,QAASqpD,GAAe,GAAG,GAC3B5vE,IAAK8vE,GACLzsE,MAAOysE,IAET,CACEjwC,IAAK+vC,GAAeX,GAAS6J,gBAC7BvyD,QAASqpD,GAAe,GAAG,GAC3BlR,QAAS8X,IAEX,CACE32C,IAAK+vC,GAAeX,GAAS8J,YAC7BxyD,QAASqpD,GAAe,GAAG,GAC3BlR,QAASkY,IAEX,CACE/2C,IAAK+vC,GAAeX,GAAS+J,eAC7BzyD,QAASqpD,GAAe,GAAG,GAC3BlR,QAASoY,IAEX,CACEj3C,IAAK+vC,GAAeX,GAASgK,kBAC7B1yD,QAASqpD,GAAe,GAAG,GAC3BlR,QAASqY,IAEX,CACEl3C,IAAK+vC,GAAeX,GAASiK,cAC7B3yD,QAASqpD,GAAe,GAAG,GAC3BlR,QAASsY,IAEX,CACEn3C,IAAK+vC,GAAeX,GAASkK,eAC7B5yD,QAASqpD,GAAe,GAAG,GAC3BlR,QAASgY,IAEX,CACE72C,IAAK+vC,GAAeX,GAASmK,kBAC7B7yD,QAASqpD,GAAe,GAAG,GAC3B5C,IAAKhC,GACLL,SAAQ,GACRhtB,OAAQsyB,GAAQ5U,GAASwC,UC5RvBwb,GAAc,CAClB,CAACpK,GAAS8J,WAAY1d,GAAS8B,eAC/B,CAAC8R,GAAS/R,WAAY7B,GAAS6B,YAC/B,CAAC+R,GAASM,SAAUlU,GAAS4B,MAaxB,SAASoN,GAAU/P,GAAgC,IAAAgf,EACxD,MAAM/1E,EAA+D,QAAvD+1E,EAAGD,GAAY/2C,MAAK,EAAEzC,KAASA,IAAQy6B,EAAOz6B,QAAO,UAAE,IAAAy5C,EAAAA,EAAIje,GAAS+B,UAClF,OAAOyW,GAAWJ,GAASxE,GAAU3U,EAAQ,CAAE+P,cAAa9mE,EAC9D,CAoBO,SAAS+mE,GAAY2F,EAAsBiE,GAEhD,OADAA,UAAAA,EAAgBmF,GAAY/2C,MAAK,EAAE,CAAE1Y,KAASqmD,EAAQ1sB,WAAW35B,OAAQ,IAClEoqD,GAAaP,GAASxE,GAAUgB,EAASiE,EAAa,CAAE5J,gBACjE,CCjCO,SAASkJ,GAAU3zC,EAAUtZ,GAClC,OAAOgzD,GAAgB5J,GAAUxO,GAAKthC,EAAKtZ,EAC7C,CAaO,SAASmlD,GAAQpR,GACtB,OAAOuZ,GACLlE,GACAxO,GACA7G,EACA,CAEEmR,YACAC,WACAiB,UAAY6M,GAAwB9N,GAAQ,IAAKpR,KAAWkf,IAC5DnP,UAASA,IAEXhP,GAASwB,YAEb,CAcO7U,eAAeyxB,GAAanf,GAUjC,aATMzjD,QAAQsL,IACZqxD,GAAUlZ,EAAOz6B,IAAKy6B,EAAO/zC,SAAS/mB,KAAIwoD,OAAQhoD,EAAKwtE,MAChC,MAAjBA,EAAM1E,UAEVxO,EAAOt6D,SAAawtE,EAAM1E,QAAQxO,EAAOt6D,GAAMs6D,EAAQA,GAAO,KAK3DoR,GAAQpR,EACjB,CASO,SAASmR,GACdK,EACAC,GAEA,OAAOiI,GAAarE,GAAUxO,GAAK2K,EAAWC,EAAQ,CAAEN,YAAUnB,YAAWA,IAC/E,CAQO,SAASoP,GAAYC,GAE1B,OAAO54E,GAAOspB,GADgB,iBAAVsvD,GAAsBA,EAAMp2B,WAAW,OAAS/7B,GAAOmyD,GAASA,GAC1Dte,GAASwC,OACrC,CAQO,SAAS+b,GACdC,GAEA,IAAIvf,EAASmR,GAASoO,GAEtB,GADI1Y,GAAIkO,WAAa/U,EAAOz6B,MAAKy6B,EAASA,EAAOwR,WAC7C3K,GAAIgL,mBAAqB7R,EAAOz6B,KAAOshC,GAAIiL,aAAe9R,EAAOz6B,IACnE,MAAM,IAAIyY,EAAc,aAAc,iCAAkCgiB,EAAOz6B,KAEjF,OAAOuhC,GAAgB9G,EAAOqW,QAASrW,EAAO19B,MAChD,CChGO,SAASk9C,GAAgBz2E,GAC5B,IAAIxS,EAAM,GACV,IAAK,IAAIrE,EAAI,EAAGA,EAAI6W,EAAMnW,OAAQV,IAC9BqE,GAAOH,OAAO0X,aAAa/E,EAAM7W,IAErC,OAAOutF,KAAKlpF,EAChB,CAMO,SAASmpF,GAAa32E,GACzB,MAAM42E,EAAaj0B,KAAK3iD,GAClB5W,EAAM,IAAIkB,WAAWssF,EAAW/sF,QACtC,IAAK,IAAIV,EAAI,EAAGA,EAAIytF,EAAW/sF,OAAQV,IACnCC,EAAID,GAAKytF,EAAWltF,WAAWP,GAEnC,OAAOC,CACX,CC7BO,MAAMytF,GAAc,IAIdC,GAAc,ICUrBC,GAAsB,sKAStBC,GAAiB,iFAyChB,SAASC,GAAgBC,EAAcC,GAC1C,IAAIxvD,EAAIC,EACR,MAAMwvD,EAAgBF,EAAaE,cAGnC,GAAoC,SAAhCF,EAAan6B,QAAQjY,OACrB,OAAOrlC,OAAO8/C,OAAO9/C,OAAO8/C,OAAO,CAAC,EAAG63B,GAAgB,CAAEpyB,KAAMkyB,EAAaG,aAEhF,MAAMC,EAAaH,GAAgBA,EAAaG,WAC1CC,EAAan+D,QAAQk+D,aAA+C,EAASA,EAAWE,UACxFC,EAAuBH,aAA+C,EAASA,EAAWj2E,KAAKjU,KAErG,GAA6B,WAAzBqqF,EACA,OAAOh4E,OAAO8/C,OAAO9/C,OAAO8/C,OAAO,CAAC,EAAG63B,GAAgB,CAAEljB,SAAUgjB,EAAahjB,SAAUwjB,mBAAoBR,EAAaQ,qBAE/H,MAAMC,EAA4C,cAAzBF,GACrBH,EAAWj2E,KAAKs2E,iBAChB,CAAC,EACCC,EAAqBn4E,OAAO4P,KAAKsoE,GAAiB54C,MAAMjyC,GAA4C,KAAtC6qF,EAAgB7qF,GAAG+qF,iBACvF,GAA6B,aAAzBJ,GAAuCG,EAAoB,CAC3D,MAAME,EAAmD,QAAlCnwD,EAAKuvD,EAAaG,kBAA+B,IAAP1vD,EAAgBA,EAAK,GACtF,IAAK,MAAMhrB,KAAO8C,OAAO4P,KAAKsoE,GACtBA,EAAgBh7E,GAAKk7E,iBACrBC,EAAcn7E,GAA0C,QAAlCirB,EAAKsvD,EAAaG,kBAA+B,IAAPzvD,OAAgB,EAASA,EAAGjrB,IAGpG,GAAIy6E,EACA,IAAK,MAAMz6E,KAAO8C,OAAO4P,KAAK+nE,GAC1BU,EAAcn7E,GAAOy6E,EAAcz6E,GAG3C,OAAO46E,GACFL,EAAaG,YACbD,GACsD,IAAvD33E,OAAO4T,oBAAoBskE,GAAiB9tF,OAE1CiuF,EADA,IAEV,CACA,OAzDJ,SAAgDC,GAC5C,MAAMC,EAAyBv4E,OAAO8/C,OAAO9/C,OAAO8/C,OAAO,CAAC,EAAGw4B,EAAejzB,SAAUizB,EAAe/yB,MACvG,OAAI+yB,EAAeE,iBAC+C,IAA9Dx4E,OAAO4T,oBAAoB2kE,GAAwBnuF,OAC5CkuF,EAAeG,eAAiB,CAAElzB,KAAM,MAAS,KAGjD+yB,EAAeG,eAChBz4E,OAAO8/C,OAAO9/C,OAAO8/C,OAAO,CAAC,EAAGw4B,EAAejzB,SAAU,CAAEE,KAAM+yB,EAAe/yB,OAAUgzB,CAExG,CA+CWG,CAAuC,CAC1CnzB,KAAMkyB,EAAaG,WACnBvyB,QAASsyB,EACTa,gBAAiBV,EACjBW,gBAvGwBl4E,EAuGQk3E,EAAaG,WAvGde,EAuG0BX,EAtGlC,cAAnBW,GACe,eAAnBA,IACkB,iBAAVp4E,GACa,iBAAVA,GACU,kBAAVA,GAEH,QADHo4E,aAAuD,EAASA,EAAez8D,MAAM,qEAH1F,MAKI3b,MARL,IAAyBA,EAAOo4E,CAyGvC,CC5GA,MAAMC,GACF,WAAA3pF,CAAY4pF,EAAe,CAAC,EAAGC,GAAQ,GACnCjoF,KAAKgoF,aAAeA,EACpBhoF,KAAKioF,MAAQA,CACjB,CAIA,mBAAAC,CAAoBC,EAAQz4E,EAAO04E,GAC/B,MAAMC,EAAiB,CAACC,EAAgBC,KACpC,MAAM,IAAIpuF,MAAM,IAAIiuF,kBAA2B14E,qCAAyC44E,OAAoBC,KAAmB,EAEnI,GAAIJ,EAAOK,aAAPL,MAAsBz4E,EAAuC,CAC7D,MAAM,iBAAE+4E,EAAgB,iBAAEC,EAAgB,iBAAEC,EAAgB,iBAAEC,EAAgB,SAAEC,EAAQ,UAAEC,EAAS,SAAEC,EAAQ,UAAEC,EAAS,WAAEC,EAAU,QAAEC,EAAO,YAAEC,GAAiBhB,EAAOK,YA4BvK,QA3ByB33E,IAArB43E,GAAkC/4E,GAAS+4E,GAC3CJ,EAAe,mBAAoBI,QAEd53E,IAArB63E,GAAkCh5E,GAASg5E,GAC3CL,EAAe,mBAAoBK,QAEd73E,IAArB83E,GAAkCj5E,EAAQi5E,GAC1CN,EAAe,mBAAoBM,QAEd93E,IAArB+3E,GAAkCl5E,EAAQk5E,GAC1CP,EAAe,mBAAoBO,QAEtB/3E,IAAbg4E,GAA0Bn5E,EAAMnW,OAASsvF,GACzCR,EAAe,WAAYQ,QAEbh4E,IAAdi4E,GAA2Bp5E,EAAMnW,OAASuvF,GAC1CT,EAAe,YAAaS,QAEfj4E,IAAbk4E,GAA0Br5E,EAAMnW,OAASwvF,GACzCV,EAAe,WAAYU,QAEbl4E,IAAdm4E,GAA2Bt5E,EAAMnW,OAASyvF,GAC1CX,EAAe,YAAaW,QAEbn4E,IAAfo4E,GAA4Bv5E,EAAQu5E,GAAe,GACnDZ,EAAe,aAAcY,GAE7BC,EAAS,CACT,MAAME,EAA6B,iBAAZF,EAAuB,IAAIp/E,OAAOo/E,GAAWA,EAC/C,iBAAVx5E,GAA+C,OAAzBA,EAAM2b,MAAM+9D,IACzCf,EAAe,UAAWa,EAElC,CACIC,GACAz5E,EAAM++B,MAAK,CAAC44B,EAAMxuE,EAAGwwF,IAAOA,EAAGjvF,QAAQitE,KAAUxuE,KACjDwvF,EAAe,cAAec,EAEtC,CACJ,CAcA,SAAA3qE,CAAU2pE,EAAQ1pE,EAAQ2pE,EAAYv5D,EAAU,CAAEy6D,IAAK,CAAC,IACpD,IAAIjyD,EAAIC,EAAIC,EACZ,MAAM+oC,EAAiB,CACnBgpB,IAAK,CACDC,SAA0C,QAA/BlyD,EAAKxI,EAAQy6D,IAAIC,gBAA6B,IAAPlyD,EAAgBA,EAAK,GACvEmyD,YAAgD,QAAlClyD,EAAKzI,EAAQy6D,IAAIE,mBAAgC,IAAPlyD,GAAgBA,EACxEmyD,WAA8C,QAAjClyD,EAAK1I,EAAQy6D,IAAIG,kBAA+B,IAAPlyD,EAAgBA,EAAKivD,KAGnF,IAAIzb,EAAU,CAAC,EACf,MAAM2e,EAAavB,EAAOp3E,KAAKjU,KAC1BsrF,IACDA,EAAaD,EAAOZ,gBAEgB,OAApCmC,EAAWr+D,MAAM,iBACjB0/C,EAAU,IAEVod,EAAOwB,aACPlrE,EAAS0pE,EAAOhN,cAWpB,MAAM,SAAEyO,EAAQ,SAAE1C,GAAaiB,EAC/B,GAAIyB,GAAY1C,QAAuBr2E,IAAX4N,EACxB,MAAM,IAAItkB,MAAM,GAAGiuF,0BAEvB,GAAIwB,IAAa1C,GAAY,MAACzoE,EAC1B,MAAM,IAAItkB,MAAM,GAAGiuF,kCAEvB,IAAKwB,IAAyB,IAAb1C,GAAiC,OAAXzoE,EACnC,MAAM,IAAItkB,MAAM,GAAGiuF,qBAmCvB,OAjCI3pE,SAImC,OAA/BirE,EAAWr+D,MAAM,UAHrB0/C,EAAUtsD,EAMqE,OAAtEirE,EAAWr+D,MAAM,iDACtB0/C,EAwMhB,SAA6B8e,EAAUzB,EAAY14E,GAC/C,GAAIA,QACA,GAAoC,OAAhCm6E,EAASx+D,MAAM,cACf,GAAqB,iBAAV3b,EACP,MAAM,IAAIvV,MAAM,GAAGiuF,gBAAyB14E,kCAG/C,GAAoC,OAAhCm6E,EAASx+D,MAAM,cACpB,GAA+B,iBAApB3b,EAAMpR,UACb,MAAM,IAAInE,MAAM,GAAGiuF,iBAA0B14E,mCAGhD,GAAkC,OAA9Bm6E,EAASx+D,MAAM,YACpB,GAAiC,iBAApB3b,EAAMpR,YDvSHk0D,ECuSyC9iD,GDtS1Dg3E,GAAexmF,KAAKsyD,ICuSf,MAAM,IAAIr4D,MAAM,GAAGiuF,iBAA0B14E,oDAGhD,GAAqC,OAAjCm6E,EAASx+D,MAAM,eACpB,GAAqB,kBAAV3b,EACP,MAAM,IAAIvV,MAAM,GAAGiuF,gBAAyB14E,mCAG/C,GAAoC,OAAhCm6E,EAASx+D,MAAM,aAAuB,CAC3C,MAAMy+D,SAAoBp6E,EAC1B,KAAmB,WAAfo6E,GACsB,mBAAfp6E,EAAMq6E,MACQ,mBAAdr6E,EAAMinD,KACXjnD,aAAiBO,aAClBA,YAAYC,OAAOR,KAED,mBAATmnD,MAAuC,iBAATA,OAAsBnnD,aAAiBmnD,MAChE,aAAfizB,GACA,MAAM,IAAI3vF,MAAM,GAAGiuF,mGAE3B,CD5TD,IAAqB51B,EC8TxB,OAAO9iD,CACX,CA7O0Bs6E,CAAoBN,EAAYtB,EAAY3pE,GAEjB,OAAhCirE,EAAWr+D,MAAM,WAEtB0/C,EA0OhB,SAA2Bqd,EAAY6B,EAAev6E,GAClD,IAAKu6E,EACD,MAAM,IAAI9vF,MAAM,qDAAqDiuF,sBAQzE,IANkB6B,EAAcx7C,MAAM44B,GACJ,iBAAnBA,EAAK/oE,UACL+oE,EAAK5mE,gBAAkBiP,EAAMjP,cAEjC4mE,IAAS33D,IAGhB,MAAM,IAAIvV,MAAM,GAAGuV,8BAAkC04E,4BAAqC1pE,KAAKC,UAAUsrE,OAE7G,OAAOv6E,CACX,CAxP0Bw6E,CAAkB9B,EADTD,EACgCp3E,KAAKk5E,cAAexrE,GAEW,OAA7EirE,EAAWr+D,MAAM,wDACtB0/C,EAwQhB,SAA4B8e,EAAUn6E,EAAO04E,GACzC,GAAI14E,QACA,GAAkC,OAA9Bm6E,EAASx+D,MAAM,WAAqB,CACpC,KAAM3b,aAAiBzB,MACS,iBAApByB,EAAMpR,YAA2ByH,MAAMkI,KAAK6gB,MAAMpf,KAC1D,MAAM,IAAIvV,MAAM,GAAGiuF,+DAEvB14E,EACIA,aAAiBzB,KACXyB,EAAMy6E,cAAc9pF,UAAU,EAAG,IACjC,IAAI4N,KAAKyB,GAAOy6E,cAAc9pF,UAAU,EAAG,GACzD,MACK,GAAsC,OAAlCwpF,EAASx+D,MAAM,eAAyB,CAC7C,KAAM3b,aAAiBzB,MACS,iBAApByB,EAAMpR,YAA2ByH,MAAMkI,KAAK6gB,MAAMpf,KAC1D,MAAM,IAAIvV,MAAM,GAAGiuF,+DAEvB14E,EAAQA,aAAiBzB,KAAOyB,EAAMy6E,cAAgB,IAAIl8E,KAAKyB,GAAOy6E,aAC1E,MACK,GAA6C,OAAzCN,EAASx+D,MAAM,sBAAgC,CACpD,KAAM3b,aAAiBzB,MACS,iBAApByB,EAAMpR,YAA2ByH,MAAMkI,KAAK6gB,MAAMpf,KAC1D,MAAM,IAAIvV,MAAM,GAAGiuF,gEAEvB14E,EAAQA,aAAiBzB,KAAOyB,EAAM06E,cAAgB,IAAIn8E,KAAKyB,GAAO06E,aAC1E,MACK,GAAsC,OAAlCP,EAASx+D,MAAM,eAAyB,CAC7C,KAAM3b,aAAiBzB,MACS,iBAApByB,EAAMpR,YAA2ByH,MAAMkI,KAAK6gB,MAAMpf,KAC1D,MAAM,IAAIvV,MAAM,GAAGiuF,yHAGvB14E,EAtHZ,SAAwBtO,GACpB,GAAKA,EAML,MAH2B,iBAAhBA,EAAE9C,YACT8C,EAAI,IAAI6M,KAAK7M,IAEVxG,KAAKG,MAAMqG,EAAE8M,UAAY,IACpC,CA8GoBm8E,CAAe36E,EAC3B,MACK,GAAsC,OAAlCm6E,EAASx+D,MAAM,iBD9YzB,SAAoB3b,GACvB,OAAO+2E,GAAoBvmF,KAAKwP,EACpC,CC6YiB46E,CAAW56E,GACZ,MAAM,IAAIvV,MAAM,GAAGiuF,uDAAgE14E,OAI/F,OAAOA,CACX,CAjT0B66E,CAAmBb,EAAYjrE,EAAQ2pE,GAEP,OAArCsB,EAAWr+D,MAAM,gBACtB0/C,EAmPhB,SAAgCqd,EAAY14E,GACxC,GAAIA,QAAuC,CACvC,KAAMA,aAAiB1V,YACnB,MAAM,IAAIG,MAAM,GAAGiuF,iCAEvB14E,EAAQ,GAAuBA,EACnC,CACA,OAAOA,CACX,CA3P0B86E,CAAuBpC,EAAY3pE,GAEH,OAArCirE,EAAWr+D,MAAM,gBACtB0/C,EAyPhB,SAAgCqd,EAAY14E,GACxC,GAAIA,QAAuC,CACvC,KAAMA,aAAiB1V,YACnB,MAAM,IAAIG,MAAM,GAAGiuF,iCAEvB14E,EA5HR,SAA2BY,GACvB,GAAKA,EAAL,CAGA,KAAMA,aAAkBtW,YACpB,MAAM,IAAIG,MAAM,2EAKpB,OAjBJ,SAAiB+C,GACb,IAAIhE,EAAMgE,EAAI3D,OACd,KAAOL,EAAM,GAAK,GAeE,MAfGgE,EAAIhE,EAAM,MAC3BA,EAEN,OAAOgE,EAAI2M,OAAO,EAAG3Q,EACzB,CAWWuxF,CAFK,GAAuBn6E,IAEVnQ,QAAQ,MAAO,KAAKA,QAAQ,MAAO,IAP5D,CAQJ,CAiHgBuqF,CAAkBh7E,EAC9B,CACA,OAAOA,CACX,CAjQ0Bi7E,CAAuBvC,EAAY3pE,GAEJ,OAApCirE,EAAWr+D,MAAM,eACtB0/C,EAyShB,SAA+B6f,EAAYzC,EAAQ1pE,EAAQ2pE,EAAYyC,EAAOh8D,GAC1E,IAAIwI,EACJ,IAAKp9B,MAAM+W,QAAQyN,GACf,MAAM,IAAItkB,MAAM,GAAGiuF,4BAEvB,IAAI0C,EAAc3C,EAAOp3E,KAAKgkC,QAC9B,IAAK+1C,GAAsC,iBAAhBA,EACvB,MAAM,IAAI3wF,MACN,gGAA0CiuF,MAKpB,cAA1B0C,EAAY/5E,KAAKjU,MAAwBguF,EAAY/5E,KAAKg6E,YAC1DD,EAA6E,QAA9DzzD,EAAKuzD,EAAW5C,aAAa8C,EAAY/5E,KAAKg6E,kBAA+B,IAAP1zD,EAAgBA,EAAKyzD,GAE9G,MAAME,EAAY,GAClB,IAAK,IAAInyF,EAAI,EAAGA,EAAI4lB,EAAOllB,OAAQV,IAAK,CACpC,MAAMoyF,EAAkBL,EAAWpsE,UAAUssE,EAAarsE,EAAO5lB,GAAIuvF,EAAYv5D,GACjF,GAAIg8D,GAASC,EAAYI,aAAc,CACnC,MAAMC,EAAWL,EAAYM,mBACvB,SAASN,EAAYM,qBACrB,QACwB,cAA1BN,EAAY/5E,KAAKjU,MACjBkuF,EAAUnyF,GAAKsW,OAAO8/C,OAAO,CAAC,EAAGg8B,GACjCD,EAAUnyF,GAAG0tF,IAAe,CAAE,CAAC4E,GAAWL,EAAYI,gBAGtDF,EAAUnyF,GAAK,CAAC,EAChBmyF,EAAUnyF,GAAGg2B,EAAQy6D,IAAIG,YAAcwB,EACvCD,EAAUnyF,GAAG0tF,IAAe,CAAE,CAAC4E,GAAWL,EAAYI,cAE9D,MAEIF,EAAUnyF,GAAKoyF,CAEvB,CACA,OAAOD,CACX,CA/U0BK,CAAsBrrF,KAAMmoF,EAAQ1pE,EAAQ2pE,EAAYt/D,QAAQ9oB,KAAKioF,OAAQ3nB,GAE5C,OAAtCopB,EAAWr+D,MAAM,iBACtB0/C,EA6UhB,SAAiC6f,EAAYzC,EAAQ1pE,EAAQ2pE,EAAYyC,EAAOh8D,GAC5E,GAAsB,iBAAXpQ,EACP,MAAM,IAAItkB,MAAM,GAAGiuF,6BAEvB,MAAMkD,EAAYnD,EAAOp3E,KAAKrB,MAC9B,IAAK47E,GAAkC,iBAAdA,EACrB,MAAM,IAAInxF,MACN,mGAA0CiuF,MAElD,MAAMmD,EAAiB,CAAC,EACxB,IAAK,MAAMl/E,KAAO8C,OAAO4P,KAAKN,GAAS,CACnC,MAAMwsE,EAAkBL,EAAWpsE,UAAU8sE,EAAW7sE,EAAOpS,GAAM+7E,EAAYv5D,GAEjF08D,EAAel/E,GAAOm/E,GAAkBF,EAAWL,EAAiBJ,EAAOh8D,EAC/E,CAEA,GAAIg8D,GAAS1C,EAAO+C,aAAc,CAC9B,MAAMC,EAAWhD,EAAOiD,mBAAqB,SAASjD,EAAOiD,qBAAuB,QAC9EjkE,EAASokE,EAEf,OADApkE,EAAOo/D,IAAe,CAAE,CAAC4E,GAAWhD,EAAO+C,cACpC/jE,CACX,CACA,OAAOokE,CACX,CApW0BE,CAAwBzrF,KAAMmoF,EAAQ1pE,EAAQ2pE,EAAYt/D,QAAQ9oB,KAAKioF,OAAQ3nB,GAE/C,OAArCopB,EAAWr+D,MAAM,kBACtB0/C,EAiZhB,SAAgC6f,EAAYzC,EAAQ1pE,EAAQ2pE,EAAYyC,EAAOh8D,GAI3E,GAHI68D,GAAuCd,EAAYzC,KACnDA,EAASwD,GAAqBf,EAAYzC,EAAQ1pE,EAAQ,eAE1DA,QAAyC,CACzC,MAAMssD,EAAU,CAAC,EACX6gB,EAAaC,GAAuBjB,EAAYzC,EAAQC,GAC9D,IAAK,MAAM/7E,KAAO8C,OAAO4P,KAAK6sE,GAAa,CACvC,MAAME,EAAiBF,EAAWv/E,GAClC,GAAIy/E,EAAeC,SACf,SAEJ,IAAIC,EACAC,EAAelhB,EACnB,GAAI6f,EAAW3C,MAEP+D,EADAF,EAAeI,aACJJ,EAAeK,QAGfL,EAAeM,gBAAkBN,EAAeK,YAG9D,CACD,MAAME,EAAQC,GAAmBR,EAAevE,gBAChDyE,EAAWK,EAAMnrF,MACjB,IAAK,MAAMqrF,KAAYF,EAAO,CAEtB,MADgBJ,EAAaM,UAEX17E,IAAhB4N,EAAOpS,IAAsC,OAAhBoS,EAAOpS,SACFwE,IAAhCi7E,EAAe3Q,gBACnB8Q,EAAaM,GAAY,CAAC,GAE9BN,EAAeA,EAAaM,EAChC,CACJ,CACA,GAAIN,QAAqD,CACrD,GAAIpB,GAAS1C,EAAO+C,aAAc,CAC9B,MAAMC,EAAWhD,EAAOiD,mBAClB,SAASjD,EAAOiD,qBAChB,QACNa,EAAa1F,IAAep3E,OAAO8/C,OAAO9/C,OAAO8/C,OAAO,CAAC,EAAGg9B,EAAa1F,KAAe,CAAE,CAAC4E,GAAWhD,EAAO+C,cACjH,CACA,MAAMsB,EAAuD,KAAlCV,EAAevE,eACpCa,EAAa,IAAM0D,EAAevE,eAClCa,EACN,IAAIqE,EAAchuE,EAAOpS,GACzB,MAAMqgF,EAA2BhB,GAAuCd,EAAYzC,GAChFuE,GACAA,EAAyBC,aAAetgF,GACxC,MAACogF,IACDA,EAActE,EAAOZ,gBAEzB,MAAM0D,EAAkBL,EAAWpsE,UAAUstE,EAAgBW,EAAaD,EAAoB39D,GAC9F,QAAwBhe,IAApBo6E,SAAiCe,EAA6C,CAC9E,MAAMt8E,EAAQ87E,GAAkBM,EAAgBb,EAAiBJ,EAAOh8D,GACpEg8D,GAASiB,EAAec,gBAIxBX,EAAa1F,IAAe0F,EAAa1F,KAAgB,CAAC,EAC1D0F,EAAa1F,IAAayF,GAAYf,GAEjCJ,GAASiB,EAAeI,aAC7BD,EAAaD,GAAY,CAAE,CAACF,EAAeM,gBAAiB18E,GAG5Du8E,EAAaD,GAAYt8E,CAEjC,CACJ,CACJ,CACA,MAAMm9E,EAhHd,SAAqCjC,EAAYzC,EAAQC,GACrD,MAAM0E,EAAuB3E,EAAOp3E,KAAK+7E,qBACzC,IAAKA,GAAwB3E,EAAOp3E,KAAKg6E,UAAW,CAChD,MAAMgC,EAAcC,GAAwBpC,EAAYzC,EAAQC,GAChE,OAAO2E,aAAiD,EAASA,EAAYh8E,KAAK+7E,oBACtF,CACA,OAAOA,CACX,CAyG2CG,CAA4BrC,EAAYzC,EAAQC,GACnF,GAAIyE,EAA4B,CAC5B,MAAMK,EAAY/9E,OAAO4P,KAAK6sE,GAC9B,IAAK,MAAMuB,KAAkB1uE,EACIyuE,EAAUx+C,OAAO0+C,GAAOA,IAAOD,MAExDpiB,EAAQoiB,GAAkBvC,EAAWpsE,UAAUquE,EAA4BpuE,EAAO0uE,GAAiB/E,EAAa,KAAO+E,EAAiB,KAAMt+D,GAG1J,CACA,OAAOk8C,CACX,CACA,OAAOtsD,CACX,CAre0B4uE,CAAuBrtF,KAAMmoF,EAAQ1pE,EAAQ2pE,EAAYt/D,QAAQ9oB,KAAKioF,OAAQ3nB,IAGzFyK,CACX,CAcA,WAAAsK,CAAY8S,EAAQmF,EAAclF,EAAYv5D,EAAU,CAAEy6D,IAAK,CAAC,IAC5D,IAAIjyD,EAAIC,EAAIC,EAAIC,EAChB,MAAM8oC,EAAiB,CACnBgpB,IAAK,CACDC,SAA0C,QAA/BlyD,EAAKxI,EAAQy6D,IAAIC,gBAA6B,IAAPlyD,EAAgBA,EAAK,GACvEmyD,YAAgD,QAAlClyD,EAAKzI,EAAQy6D,IAAIE,mBAAgC,IAAPlyD,GAAgBA,EACxEmyD,WAA8C,QAAjClyD,EAAK1I,EAAQy6D,IAAIG,kBAA+B,IAAPlyD,EAAgBA,EAAKivD,IAE/E+G,wBAAoE,QAA1C/1D,EAAK3I,EAAQ0+D,+BAA4C,IAAP/1D,GAAgBA,GAEhG,GAAI81D,QAWA,OAVIttF,KAAKioF,OAA8B,aAArBE,EAAOp3E,KAAKjU,OAAwBqrF,EAAO+D,eAIzDoB,EAAe,SAGSz8E,IAAxBs3E,EAAOhN,eACPmS,EAAenF,EAAOhN,cAEnBmS,EAEX,IAAIviB,EACJ,MAAM2e,EAAavB,EAAOp3E,KAAKjU,KAI/B,GAHKsrF,IACDA,EAAaD,EAAOZ,gBAEiB,OAArCmC,EAAWr+D,MAAM,gBACjB0/C,EAidZ,SAAkC6f,EAAYzC,EAAQmF,EAAclF,EAAYv5D,GAC5E,IAAIwI,EAAIC,EACR,MAAMmyD,EAA+C,QAAjCpyD,EAAKxI,EAAQy6D,IAAIG,kBAA+B,IAAPpyD,EAAgBA,EAAKmvD,GAC9EkF,GAAuCd,EAAYzC,KACnDA,EAASwD,GAAqBf,EAAYzC,EAAQmF,EAAc,mBAEpE,MAAM1B,EAAaC,GAAuBjB,EAAYzC,EAAQC,GAC9D,IAAIv4B,EAAW,CAAC,EAChB,MAAM29B,EAAuB,GAC7B,IAAK,MAAMnhF,KAAO8C,OAAO4P,KAAK6sE,GAAa,CACvC,MAAME,EAAiBF,EAAWv/E,GAC5BggF,EAAQC,GAAmBV,EAAWv/E,GAAKk7E,gBACjDiG,EAAqB5zF,KAAKyyF,EAAM,IAChC,MAAM,eAAE9E,EAAc,QAAE4E,EAAO,eAAEC,GAAmBN,EACpD,IAAIU,EAAqBpE,EACF,KAAnBb,QAA4C12E,IAAnB02E,IACzBiF,EAAqBpE,EAAa,IAAMb,GAE5C,MAAMkG,EAAyB3B,EAAe2B,uBAC9C,GAAIA,EAAwB,CACxB,MAAMC,EAAa,CAAC,EACpB,IAAK,MAAMC,KAAax+E,OAAO4P,KAAKuuE,GAC5BK,EAAU/9B,WAAW69B,KACrBC,EAAWC,EAAUttF,UAAUotF,EAAuBl0F,SAAWqxF,EAAWvV,YAAYyW,EAAe/6E,KAAKrB,MAAO49E,EAAaK,GAAYnB,EAAoB39D,IAEpK2+D,EAAqB5zF,KAAK+zF,GAE9B99B,EAASxjD,GAAOqhF,CACpB,MACK,GAAI9C,EAAW3C,MAChB,GAAI6D,EAAec,gBAAkBU,EAAa/G,IAC9C12B,EAASxjD,GAAOu+E,EAAWvV,YAAYyW,EAAgBwB,EAAa/G,IAAa4F,GAAUK,EAAoB39D,QAE9G,GAAIi9D,EAAe8B,iBACa/8E,IAA7By8E,EAAa7D,GACb55B,EAASxjD,GAAOihF,EAAa7D,GAEA,iBAAjB6D,IAGZz9B,EAASxjD,GAAOihF,OAGnB,CACD,MAAMO,EAAezB,GAAkBD,GAAW5E,EAClD,GAAIuE,EAAeI,aAAc,CAe7B,MAAMnnE,EAAUuoE,EAAanB,GACvB2B,EAAmG,QAApFx2D,EAAKvS,aAAyC,EAASA,EAAQqnE,UAAoC,IAAP90D,EAAgBA,EAAK,GACtIu4B,EAASxjD,GAAOu+E,EAAWvV,YAAYyW,EAAgBgC,EAAatB,EAAoB39D,GACxF2+D,EAAqB5zF,KAAKuyF,EAC9B,KACK,CACD,MAAMhtE,EAAWmuE,EAAaO,GAC9Bh+B,EAASxjD,GAAOu+E,EAAWvV,YAAYyW,EAAgB3sE,EAAUqtE,EAAoB39D,GACrF2+D,EAAqB5zF,KAAKi0F,EAC9B,CACJ,KAEC,CAED,IAAIE,EACAh6E,EAAMu5E,EAENU,EAAQ,EACZ,IAAK,MAAM3mB,KAAQglB,EAAO,CACtB,IAAKt4E,EACD,MACJi6E,IACAj6E,EAAMA,EAAIszD,EACd,CAEY,OAARtzD,GAAgBi6E,EAAQ3B,EAAM9yF,SAC9Bwa,OAAMlD,GAEVk9E,EAAmBh6E,EACnB,MAAM24E,EAA2BvE,EAAOp3E,KAAK27E,yBAe7C,IAAIzB,EAEJ,GAPIyB,GACArgF,IAAQqgF,EAAyBC,YACjC,MAACoB,IACDA,EAAmB5F,EAAOZ,gBAI1BttF,MAAM+W,QAAQs8E,EAAajhF,KAA4C,KAAnCu/E,EAAWv/E,GAAKk7E,eAAuB,CAC3EwG,EAAmBT,EAAajhF,GAChC,MAAM4hF,EAAgBrD,EAAWvV,YAAYyW,EAAgBiC,EAAkBvB,EAAoB39D,GAGnG,IAAK,MAAOryB,EAAGoD,KAAMuP,OAAOgqC,QAAQ0W,GAC3B1gD,OAAOhR,UAAUoE,eAAeO,KAAKmrF,EAAezxF,KACrDyxF,EAAczxF,GAAKoD,GAG3BiwD,EAAWo+B,CACf,WAC8Bp9E,IAArBk9E,QAAkEl9E,IAAhCi7E,EAAe3Q,eACtD8P,EAAkBL,EAAWvV,YAAYyW,EAAgBiC,EAAkBvB,EAAoB39D,GAC/FghC,EAASxjD,GAAO4+E,EAExB,CACJ,CACA,MAAM4B,EAA6B1E,EAAOp3E,KAAK+7E,qBAC/C,GAAID,EAA4B,CAC5B,MAAMqB,EAAwBC,IAC1B,IAAK,MAAMhB,KAAkBvB,EAEzB,GADcU,GAAmBV,EAAWuB,GAAgB5F,gBAClD,KAAO4G,EACb,OAAO,EAGf,OAAO,CAAI,EAEf,IAAK,MAAMA,KAAoBb,EACvBY,EAAqBC,KACrBt+B,EAASs+B,GAAoBvD,EAAWvV,YAAYwX,EAA4BS,EAAaa,GAAmB/F,EAAa,KAAO+F,EAAmB,KAAMt/D,GAGzK,MACK,GAAIy+D,IAAiBz+D,EAAQ0+D,wBAC9B,IAAK,MAAMlhF,KAAO8C,OAAO4P,KAAKuuE,QACJz8E,IAAlBg/C,EAASxjD,IACRmhF,EAAqBl3E,SAASjK,IAC9B+hF,GAAqB/hF,EAAKwiB,KAC3BghC,EAASxjD,GAAOihF,EAAajhF,IAIzC,OAAOwjD,CACX,CAxmBsBw+B,CAAyBruF,KAAMmoF,EAAQmF,EAAclF,EAAY9nB,OAE1E,CACD,GAAItgE,KAAKioF,MAAO,CACZ,MAAMwB,EAAanpB,EAAegpB,IAAIG,gBAMJ54E,IAA9By8E,EAAa/G,UAA2D11E,IAA7By8E,EAAa7D,KACxD6D,EAAeA,EAAa7D,GAEpC,CACsC,OAAlCC,EAAWr+D,MAAM,cACjB0/C,EAAUlhD,WAAWyjE,GACjBvnF,MAAMglE,KACNA,EAAUuiB,IAG0B,OAAnC5D,EAAWr+D,MAAM,cAElB0/C,EADiB,SAAjBuiB,GAGsB,UAAjBA,GAIKA,EAGgE,OAAzE5D,EAAWr+D,MAAM,oDACtB0/C,EAAUuiB,EAEsD,OAA3D5D,EAAWr+D,MAAM,sCACtB0/C,EAAU,IAAI98D,KAAKq/E,GAEsB,OAApC5D,EAAWr+D,MAAM,eACtB0/C,EAuFhB,SAAwBtvE,GACpB,GAAKA,EAGL,OAAO,IAAIwS,KAAS,IAAJxS,EACpB,CA5F0B6yF,CAAehB,GAEiB,OAArC5D,EAAWr+D,MAAM,gBACtB0/C,EAAU,GAAoBuiB,GAEY,OAArC5D,EAAWr+D,MAAM,gBACtB0/C,EA0ChB,SAA8B7tE,GAC1B,GAAKA,EAAL,CAGA,GAAIA,GAAgC,iBAAlBA,EAAIoB,UAClB,MAAM,IAAInE,MAAM,uEAKpB,OAAO,GAFP+C,EAAMA,EAAIiD,QAAQ,KAAM,KAAKA,QAAQ,KAAM,KAL3C,CAQJ,CArD0BouF,CAAqBjB,GAEU,OAApC5D,EAAWr+D,MAAM,eACtB0/C,EA0kBhB,SAAiC6f,EAAYzC,EAAQmF,EAAclF,EAAYv5D,GAC3E,IAAIwI,EACJ,IAAI0d,EAAUozC,EAAOp3E,KAAKgkC,QAC1B,IAAKA,GAA8B,iBAAZA,EACnB,MAAM,IAAI56C,MACN,gGAA0CiuF,KAElD,GAAIkF,EAAc,CACTrzF,MAAM+W,QAAQs8E,KAEfA,EAAe,CAACA,IAKM,cAAtBv4C,EAAQhkC,KAAKjU,MAAwBi4C,EAAQhkC,KAAKg6E,YAClDh2C,EAAqE,QAA1D1d,EAAKuzD,EAAW5C,aAAajzC,EAAQhkC,KAAKg6E,kBAA+B,IAAP1zD,EAAgBA,EAAK0d,GAEtG,MAAMi2C,EAAY,GAClB,IAAK,IAAInyF,EAAI,EAAGA,EAAIy0F,EAAa/zF,OAAQV,IACrCmyF,EAAUnyF,GAAK+xF,EAAWvV,YAAYtgC,EAASu4C,EAAaz0F,GAAI,GAAGuvF,KAAcvvF,KAAMg2B,GAE3F,OAAOm8D,CACX,CACA,OAAOsC,CACX,CAnmB0BkB,CAAwBxuF,KAAMmoF,EAAQmF,EAAclF,EAAY9nB,GAE/B,OAAtCopB,EAAWr+D,MAAM,mBACtB0/C,EAujBhB,SAAmC6f,EAAYzC,EAAQmF,EAAclF,EAAYv5D,GAE7E,MAAMnf,EAAQy4E,EAAOp3E,KAAKrB,MAC1B,IAAKA,GAA0B,iBAAVA,EACjB,MAAM,IAAIvV,MACN,mGAA0CiuF,KAElD,GAAIkF,EAAc,CACd,MAAM/B,EAAiB,CAAC,EACxB,IAAK,MAAMl/E,KAAO8C,OAAO4P,KAAKuuE,GAC1B/B,EAAel/E,GAAOu+E,EAAWvV,YAAY3lE,EAAO49E,EAAajhF,GAAM+7E,EAAYv5D,GAEvF,OAAO08D,CACX,CACA,OAAO+B,CACX,CAtkB0BmB,CAA0BzuF,KAAMmoF,EAAQmF,EAAclF,EAAY9nB,GAEpF,CAIA,OAHI6nB,EAAOwB,aACP5e,EAAUod,EAAOhN,cAEdpQ,CACX,EAOG,SAAS2jB,GAAiB1G,EAAe,CAAC,EAAGC,GAAQ,GACxD,OAAO,IAAIF,GAAeC,EAAcC,EAC5C,CAgCA,SAASqE,GAAmB5gD,GACxB,MAAMijD,EAAU,GAChB,IAAIC,EAAe,GACnB,GAAIljD,EAAM,CACN,MAAMmjD,EAAWnjD,EAAKpiC,MAAM,KAC5B,IAAK,MAAM+9D,KAAQwnB,EACsB,OAAjCxnB,EAAKlqE,OAAOkqE,EAAK9tE,OAAS,GAC1Bq1F,GAAgBvnB,EAAKx9D,OAAO,EAAGw9D,EAAK9tE,OAAS,GAAK,KAGlDq1F,GAAgBvnB,EAChBsnB,EAAQ/0F,KAAKg1F,GACbA,EAAe,GAG3B,CACA,OAAOD,CACX,CAoNA,SAAS3B,GAAwBpC,EAAYzC,EAAQC,GACjD,MAAM2C,EAAY5C,EAAOp3E,KAAKg6E,UAC9B,IAAKA,EACD,MAAM,IAAI5wF,MAAM,yBAAyBiuF,qCAA8C1pE,KAAKC,UAAUwpE,OAAQt3E,EAAW,QAE7H,OAAO+5E,EAAW5C,aAAa+C,EACnC,CAMA,SAASc,GAAuBjB,EAAYzC,EAAQC,GAChD,IAAIwD,EAAazD,EAAOp3E,KAAKs2E,gBAC7B,IAAKuE,EAAY,CACb,MAAMmB,EAAcC,GAAwBpC,EAAYzC,EAAQC,GAChE,IAAK2E,EACD,MAAM,IAAI5yF,MAAM,mDAAmDguF,EAAOp3E,KAAKg6E,eAGnF,GADAa,EAAamB,aAAiD,EAASA,EAAYh8E,KAAKs2E,iBACnFuE,EACD,MAAM,IAAIzxF,MACN,8DAAWukB,KAAKC,UAAUouE,gBAA0B5E,EAAOp3E,KAAKg6E,0BAA0B3C,MAEtG,CACA,OAAOwD,CACX,CAsFA,SAASJ,GAAkBM,EAAgBb,EAAiBJ,EAAOh8D,GAC/D,IAAKg8D,IAAUiB,EAAeZ,aAC1B,OAAOD,EAEX,MAAME,EAAWW,EAAeV,mBAC1B,SAASU,EAAeV,qBACxB,QACAF,EAAe,CAAE,CAACC,GAAWW,EAAeZ,cAClD,GAAI,CAAC,aAAa50E,SAASw1E,EAAe/6E,KAAKjU,MAAO,CAClD,GAAImuF,EAAgB1E,IAChB,OAAO0E,EAEN,CACD,MAAM9jE,EAAShY,OAAO8/C,OAAO,CAAC,EAAGg8B,GAEjC,OADA9jE,EAAOo/D,IAAe2E,EACf/jE,CACX,CACJ,CACA,MAAMA,EAAS,CAAC,EAGhB,OAFAA,EAAO0H,EAAQy6D,IAAIG,YAAcwB,EACjC9jE,EAAOo/D,IAAe2E,EACf/jE,CACX,CACA,SAASinE,GAAqBP,EAAch/D,GACxC,MAAO,CAAC03D,GAAa13D,EAAQy6D,IAAIG,YAAYnzE,SAASu3E,EAC1D,CAyNA,SAASlC,GAAqBf,EAAYzC,EAAQ1pE,EAAQqwE,GACtD,IAAIz3D,EACJ,MAAMq1D,EAA2BhB,GAAuCd,EAAYzC,GACpF,GAAIuE,EAA0B,CAC1B,IAAIqC,EAAoBrC,EAAyBoC,GACjD,GAAIC,EAAmB,CAEa,mBAA5BD,IACAC,EAAoBA,EAAkB5uF,QAAQ,OAAQ,KAE1D,MAAM6uF,EAAqBvwE,EAAOswE,GAC5BlF,EAA6C,QAAjCxyD,EAAK8wD,EAAOp3E,KAAKk+E,kBAA+B,IAAP53D,EAAgBA,EAAK8wD,EAAOp3E,KAAKg6E,UAC5F,GAAkC,iBAAvBiE,GAAmCnF,EAAU,CACpD,MAAMqF,EAnCtB,SAA+BC,EAAgBH,EAAoBnF,GAC/D,MAAMuF,EAAmB,CAACvF,GAC1B,KAAOuF,EAAiB71F,QAAQ,CAC5B,MAAM81F,EAAcD,EAAiBnpE,QAC/BqpE,EAAqBN,IAAuBK,EAC5CL,EACAK,EAAc,IAAML,EAC1B,GAAI7/E,OAAOhR,UAAUoE,eAAeO,KAAKqsF,EAAgBG,GACrD,OAAOH,EAAeG,GAGtB,IAAK,MAAOxyF,EAAMqrF,KAAWh5E,OAAOgqC,QAAQg2C,GACpCryF,EAAK8yD,WAAWy/B,EAAc,MAC9BlH,EAAOp3E,KAAKk+E,aAAeI,GAC3BlH,EAAOp3E,KAAKg6E,WACZqE,EAAiBx1F,KAAKuuF,EAAOp3E,KAAKg6E,UAIlD,CAEJ,CAc0CwE,CAAsB3E,EAAW5C,aAAamH,eAAgBH,EAAoBnF,GACxGqF,IACA/G,EAAS+G,EAEjB,CACJ,CACJ,CACA,OAAO/G,CACX,CACA,SAASuD,GAAuCd,EAAYzC,GACxD,OAAQA,EAAOp3E,KAAK27E,0BAChB8C,GAAkC5E,EAAYzC,EAAOp3E,KAAKk+E,aAC1DO,GAAkC5E,EAAYzC,EAAOp3E,KAAKg6E,UAClE,CACA,SAASyE,GAAkC5E,EAAYf,GACnD,OAAQA,GACJe,EAAW5C,aAAa6B,IACxBe,EAAW5C,aAAa6B,GAAU94E,KAAK27E,wBAC/C,CAIO,MAAM+C,GAYC,WAZDA,GAcD,SCh5BC,GAAQ,CACjBC,oBAAqB,IAAIxlE,SCKtB,SAASylE,GAAuCC,EAAoBC,EAAWC,GAClF,IAAIC,EAAgBF,EAAUE,cAC9B,MAAMC,EAAkBH,EAAU1H,OAClC,IAAIz4E,EAIJ,GAH6B,iBAAlBqgF,IACPA,EAAgB,CAACA,IAEjB91F,MAAM+W,QAAQ++E,IACd,GAAIA,EAAcx2F,OAAS,EACvB,GAAIy2F,EAAgBrG,WAChBj6E,EAAQsgF,EAAgB7U,iBAEvB,CACD,IAAI8U,EAAuBC,GAA6BN,EAAoBG,IACvEE,EAAqBE,eAAiBL,IACvCG,EAAuBC,GAA6BJ,EAAgBC,IAExE,IAAIK,GAAkB,EACjBH,EAAqBE,gBACtBC,EACIJ,EAAgBpG,UACU,YAArBmG,EAAc,IAA6C,IAAzBA,EAAcx2F,QAE7DmW,EAAQ0gF,EAAkBJ,EAAgB7U,aAAe8U,EAAqBI,aAClF,MAGH,CACGL,EAAgBpG,WAChBl6E,EAAQ,CAAC,GAEb,IAAK,MAAMm+E,KAAgBkC,EAAe,CACtC,MAAMjE,EAAiBkE,EAAgBj/E,KAAKs2E,gBAAgBwG,GAEtDwC,EAAgBV,GAAuCC,EAAoB,CAC7EG,cAFiBA,EAAclC,GAG/B1F,OAAQ2D,GACTgE,QACmBj/E,IAAlBw/E,IACK3gF,IACDA,EAAQ,CAAC,GAEbA,EAAMm+E,GAAgBwC,EAE9B,CACJ,CACA,OAAO3gF,CACX,CACA,SAASwgF,GAA6B3jD,EAAQwjD,GAC1C,MAAM5oE,EAAS,CAAEgpE,eAAe,GAChC,IAAIt3F,EAAI,EACR,KAAOA,EAAIk3F,EAAcx2F,SAAUV,EAAG,CAClC,MAAMy3F,EAAoBP,EAAcl3F,GAExC,IAAI0zC,KAAU+jD,KAAqB/jD,GAI/B,MAHAA,EAASA,EAAO+jD,EAKxB,CAKA,OAJIz3F,IAAMk3F,EAAcx2F,SACpB4tB,EAAOkpE,cAAgB9jD,EACvBplB,EAAOgpE,eAAgB,GAEpBhpE,CACX,CACA,MAAMopE,GAAwB7hF,OAAOo1C,IAAI,uCAIlC,SAAS0sC,GAAwB/jC,GACpC,GAJJ,SAA4BA,GACxB,OAAO8jC,MAAyB9jC,CACpC,CAEQgkC,CAAmBhkC,GACnB,OAAO+jC,GAAwB/jC,EAAQ8jC,KAE3C,IAAIjhC,EAAO,GAAMogC,oBAAoBt6E,IAAIq3C,GAKzC,OAJK6C,IACDA,EAAO,CAAC,EACR,GAAMogC,oBAAoBttF,IAAIqqD,EAAS6C,IAEpCA,CACX,CCtFA,MAAMohC,GAA0B,CAAC,mBAAoB,aAC/CC,GAAyB,CAAC,kBAAmB,wBCiB5C,SAASC,GAA2Bf,GACvC,MAAM,cAAEE,EAAa,OAAE5H,GAAW0H,EAClC,IAAI1oE,EAUJ,OARIA,EADyB,iBAAlB4oE,EACEA,EAEJ91F,MAAM+W,QAAQ++E,GACVA,EAAch2F,KAAK,KAGnBouF,EAAOZ,eAEbpgE,CACX,CC1BO,SAAS0pE,GAAqBhiE,EAAU,CAAC,GAC5C,MAAMg+B,EAAWoR,GAA0BpvC,QAAyCA,EAAU,CAAC,GAW/F,OAVIA,EAAQiiE,mBACRjkC,EAASb,UzD8DV,SAAyCn9B,GAC5C,IAAIwI,EAAIC,EAAIC,EACZ,MAAM,WAAEw5D,EAAU,OAAEtrB,EAAM,mBAAEurB,GAAuBniE,EAC7C+hC,EAAS/hC,EAAQ+hC,QAAU,GAC3BqgC,EAAY,CACdC,iBAAiN,QAA9L55D,EAA4H,QAAtHD,EAAK25D,aAA+D,EAASA,EAAmBE,wBAAqC,IAAP75D,OAAgB,EAASA,EAAGja,KAAK4zE,UAAwC,IAAP15D,EAAgBA,EAAKkuC,GAC9O2rB,4BAA+J,QAAjI55D,EAAKy5D,aAA+D,EAASA,EAAmBG,mCAAgD,IAAP55D,OAAgB,EAASA,EAAGna,KAAK4zE,IAMtMtrB,EAAiBqrB,ED3BpB,SAA2BA,EAAYK,GAC1C,IAEIC,EAFAC,EAAgB,KAChBp7B,EAAQ,KAEZ,MAAMrnC,EAAU1f,OAAO8/C,OAAO9/C,OAAO8/C,OAAO,CAAC,EAAGkW,IAAyBisB,GAKnEG,EAAS,CAIX,gBAAIC,GACA,OAAyB,OAAlBF,CACX,EAKA,iBAAIG,GACA,IAAIp6D,EACJ,OAAIk6D,EAAOC,mBAGNt7B,aAAqC,EAASA,EAAMw7B,wBAA0Bx7B,EAAMw7B,sBAAwBzjF,KAAKmrD,SAG5B,QAAjF/hC,EAAK6+B,aAAqC,EAASA,EAAMy7B,0BAAuC,IAAPt6D,EAAgBA,EAAK,GAAKxI,EAAQy2C,kBAAoBr3D,KAAKmrD,MACjK,EAKA,eAAIw4B,GACA,OAAkB,OAAV17B,GAAkBA,EAAMy7B,mBAAqB9iE,EAAQu2C,wBAA0Bn3D,KAAKmrD,KAChG,GAMJ,SAASy4B,EAAQpsB,EAAQE,GACrB,IAAItuC,EAyBJ,OAxBKk6D,EAAOC,eAKRF,EA3FZj9B,eAA4BqR,EAAgBL,EAAmBysB,GAG3Dz9B,eAAe09B,IACX,KAAI9jF,KAAKmrD,MAAQ04B,GAQZ,CACD,MAAME,QAAmBtsB,IAEzB,GAAmB,OAAfssB,EACA,MAAM,IAAI73F,MAAM,mCAEpB,OAAO63F,CACX,CAdI,IACI,aAAatsB,GACjB,CACA,MAAOruC,GACH,OAAO,IACX,CAUR,CACA,IAAI6+B,QAAc67B,IAClB,KAAiB,OAAV77B,SACG,GAAMmP,GACZnP,QAAc67B,IAElB,OAAO77B,CACX,CAgE4B+7B,EAHU,IAAMlB,EAAWmB,SAASzsB,EAAQE,IAGZ92C,EAAQw2C,kBAE0B,QAAjFhuC,EAAK6+B,aAAqC,EAASA,EAAMy7B,0BAAuC,IAAPt6D,EAAgBA,EAAKppB,KAAKmrD,OAC/G+4B,MAAMC,IACPd,EAAgB,KAChBp7B,EAAQk8B,EACRf,EAAW1rB,EAAgB0rB,SACpBn7B,KAEN0b,OAAO5M,IAOR,MAHAssB,EAAgB,KAChBp7B,EAAQ,KACRm7B,OAAWxgF,EACLm0D,CAAM,KAGbssB,CACX,CACA,OAAOj9B,MAAOoR,EAAQ4sB,KAUlB,MAAMC,EAAoBxpE,QAAQupE,EAAansB,QACzCqsB,EAAkBlB,IAAagB,EAAahB,SAUlD,OATIiB,IAGAp8B,EAAQ,MAKQq8B,GAAmBD,GAAqBf,EAAOK,YAExDC,EAAQpsB,EAAQ4sB,IAEvBd,EAAOE,eACPI,EAAQpsB,EAAQ4sB,GAEbn8B,EAAK,CAEpB,CCvEUs8B,CAAkBzB,GAClB,IAAM7tE,QAAQC,QAAQ,MAC5B,MAAO,CACHrmB,KApF2C,kCAkG3C,iBAAMyvD,CAAYE,EAAS58B,GACvB,IAAK48B,EAAQmH,IAAInzD,cAAcmvD,WAAW,YACtC,MAAM,IAAIz1D,MAAM,wFAQpB,IAAIg6D,EACAl/C,EACAw9E,EAEJ,SAVMxB,EAAUC,iBAAiB,CAC7BzrB,OAAQxrE,MAAM+W,QAAQy0D,GAAUA,EAAS,CAACA,GAC1ChZ,UACAiZ,iBACA9U,YAKHuD,EAAUl/C,SAAeswD,GAAe9Y,EAAS58B,GAC9Ci2C,GAAoB3R,GAAW,CAC/B,IAAI+R,EAASE,GAAsBjS,EAASK,QAAQp/C,IAAI,qBAExD,GAAI8wD,EAAQ,CACR,IAAIwsB,EAEJ,IACIA,EAAcrgC,KAAK6T,EACvB,CACA,MAAOzpE,GAEH,OADAm0D,EAAOzsC,QAAQ,mKAAmK+hD,KAC3K/R,CACX,CACAs+B,QAA0B1sB,GAA+B,CACrDN,OAAQxrE,MAAM+W,QAAQy0D,GAAUA,EAAS,CAACA,GAC1CtR,WACA1H,UACAiZ,iBACA9U,UACD8hC,GAECD,KACCt+B,EAAUl/C,SAAeswD,GAAe9Y,EAAS58B,GAE1D,MACK,GAAIohE,EAAUE,8BAEfsB,QAA0BxB,EAAUE,4BAA4B,CAC5D1rB,OAAQxrE,MAAM+W,QAAQy0D,GAAUA,EAAS,CAACA,GAC1ChZ,UACA0H,WACAuR,iBACA9U,WAGA6hC,KACCt+B,EAAUl/C,SAAeswD,GAAe9Y,EAAS58B,IAGlDi2C,GAAoB3R,KACpB+R,EAASE,GAAsBjS,EAASK,QAAQp/C,IAAI,qBAChD8wD,IAAQ,CACR,IAAIwsB,EACJ,IACIA,EAAcrgC,KAAK6T,EACvB,CACA,MAAOzpE,GAEH,OADAm0D,EAAOzsC,QAAQ,mKAAmK+hD,KAC3K/R,CACX,CACAs+B,QAA0B1sB,GAA+B,CACrDN,OAAQxrE,MAAM+W,QAAQy0D,GAAUA,EAAS,CAACA,GAC1CtR,WACA1H,UACAiZ,iBACA9U,UACD8hC,GAECD,KACCt+B,EAAUl/C,SAAeswD,GAAe9Y,EAAS58B,GAE1D,CAGZ,CACA,GAAI5a,EACA,MAAMA,EAGN,OAAOk/C,CAEf,EAER,CyDnL2Bw+B,CAAgC,CAC/C5B,WAAYliE,EAAQiiE,kBAAkBC,WACtCtrB,OAAQ52C,EAAQiiE,kBAAkB8B,oBAG1C/lC,EAASb,UCLN,SAA6Bn9B,EAAU,CAAC,GAC3C,MAAMgkE,EAAehkE,EAAQgkE,aAC7B,MAAO,CACH/1F,KAR+B,sBAS/B,iBAAMyvD,CAAYE,EAAS58B,GACvB,MAAMijE,EAAgBtC,GAAwB/jC,GACxCsmC,EAAgBD,aAAqD,EAASA,EAAcC,cAC5FnD,EAAqBkD,aAAqD,EAASA,EAAclD,mBAKvG,OAJImD,GAAiBnD,IAW1B,SAA0BnjC,EAASmjC,EAAoBmD,GAC1D,IAAI17D,EAAIC,EACR,GAAIy7D,EAAcC,iBACd,IAAK,MAAMC,KAAmBF,EAAcC,iBAAkB,CAC1D,IAAIE,EAAcvD,GAAuCC,EAAoBqD,GAC7E,GAAI,MAACC,GAAsDD,EAAgB9K,OAAOyB,SAAU,CACxFsJ,EAAcH,EAAcnI,WAAWpsE,UAAUy0E,EAAgB9K,OAAQ+K,EAAatC,GAA2BqC,IACjH,MAAMxF,EAAyBwF,EAAgB9K,OAC1CsF,uBACL,GAAIA,EACA,IAAK,MAAMphF,KAAO8C,OAAO4P,KAAKm0E,GAC1BzmC,EAAQ+H,QAAQpyD,IAAIqrF,EAAyBphF,EAAK6mF,EAAY7mF,SAIlEogD,EAAQ+H,QAAQpyD,IAAI6wF,EAAgB9K,OAAOZ,gBAAkBqJ,GAA2BqC,GAAkBC,EAElH,CACJ,CAEJ,MAAMC,EAAoH,QAAnG77D,EAA2C,QAArCD,EAAKu4D,EAAmB/gE,eAA4B,IAAPwI,OAAgB,EAASA,EAAG+7D,sBAAmC,IAAP97D,OAAgB,EAASA,EAAG67D,cAC9J,GAAIA,EACA,IAAK,MAAME,KAAoBlkF,OAAO4P,KAAKo0E,GACvC1mC,EAAQ+H,QAAQpyD,IAAIixF,EAAkBF,EAAcE,GAGhE,CApCgBC,CAAiB7mC,EAASmjC,EAAoBmD,GAwCvD,SAA8BtmC,EAASmjC,EAAoBmD,EAAeF,EAAe,WAC5F,MAAM,IAAI14F,MAAM,iCACpB,GACI,IAAIk9B,EAAIC,EAAIC,EAAIC,EAAIC,EACpB,MAAM87D,EAA0D,QAArCl8D,EAAKu4D,EAAmB/gE,eAA4B,IAAPwI,OAAgB,EAASA,EAAGk8D,kBAC9FjzB,EAAiB,CACnBgpB,IAAK,CACDC,SAA0H,QAA/GjyD,EAAKi8D,aAA6D,EAASA,EAAkBjK,IAAIC,gBAA6B,IAAPjyD,EAAgBA,EAAK,GACvJkyD,YAAgI,QAAlHjyD,EAAKg8D,aAA6D,EAASA,EAAkBjK,IAAIE,mBAAgC,IAAPjyD,GAAgBA,EACxJkyD,WAA8H,QAAjHjyD,EAAK+7D,aAA6D,EAASA,EAAkBjK,IAAIG,kBAA+B,IAAPjyD,EAAgBA,EAAKgvD,KAG7JiD,EAAanpB,EAAegpB,IAAIG,WACtC,GAAIsJ,EAAc1wB,aAAe0wB,EAAc1wB,YAAY8lB,OAAQ,CAC/D17B,EAAQiI,KAAOi7B,GAAuCC,EAAoBmD,EAAc1wB,aACxF,MAAM2kB,EAAa+L,EAAc1wB,YAAY8lB,QACvC,SAAEyB,EAAQ,eAAErC,EAAc,QAAE4E,EAAO,eAAEC,EAAc,aAAElB,EAAY,mBAAEE,EAAkB,SAAElE,GAAcF,EACrG6C,EAAW7C,EAAWj2E,KAAKjU,KACjC,IACI,QAAsB+T,IAAjB47C,EAAQiI,MAAuC,OAAjBjI,EAAQiI,MACtCwyB,GAA6B,OAAjBz6B,EAAQiI,MACrBk1B,EAAU,CACV,MAAM4J,EAAiC5C,GAA2BmC,EAAc1wB,aAChF5V,EAAQiI,KAAOq+B,EAAcnI,WAAWpsE,UAAUwoE,EAAYv6B,EAAQiI,KAAM8+B,EAAgClzB,GAC5G,MAAMmzB,EAAW5J,IAAa4F,GAC9B,GAAIsD,EAAc9K,MAAO,CACrB,MAAMkD,EAAWC,EAAqB,SAASA,IAAuB,QAChE17E,EAwC1B,SAAkCw7E,EAAcC,EAAUtB,EAAUoB,EAAiBp8D,GAGjF,GAAIq8D,IAAiB,CAAC,YAAa,WAAY,cAAc50E,SAASuzE,GAAW,CAC7E,MAAM1iE,EAAS,CAAC,EAGhB,OAFAA,EAAO0H,EAAQy6D,IAAIG,YAAcwB,EACjC9jE,EAAOo/D,IAAe,CAAE,CAAC4E,GAAWD,GAC7B/jE,CACX,CACA,OAAO8jE,CACX,CAlDkCyI,CAAyBxI,EAAcC,EAAUtB,EAAUp9B,EAAQiI,KAAM4L,GACnFupB,IAAa4F,GACbhjC,EAAQiI,KAAOm+B,EAiDvC,SAA4BxwF,EAAKsxF,EAAaC,EAAiB1I,GAI3D,GAHKjxF,MAAM+W,QAAQ3O,KACfA,EAAM,CAACA,KAENuxF,IAAoB1I,EACrB,MAAO,CAAE,CAACyI,GAActxF,GAE5B,MAAM8kB,EAAS,CAAE,CAACwsE,GAActxF,GAEhC,OADA8kB,EAAOo/D,IAAe,CAAE,CAACqN,GAAkB1I,GACpC/jE,CACX,CA3DoD0sE,CAAmBnkF,EAAO08E,GAAkBD,GAAW5E,EAAgB4D,EAAUD,GAAe,CAAE3B,SAAU4C,GAAW5E,EAAgBkC,eAE7JgK,IACNhnC,EAAQiI,KAAOm+B,EAAanjF,EAAO,CAC/B65E,SAAU4C,GAAW5E,EACrBkC,eAGZ,KACK,IN+yBT,WM/yBaI,KACkC,QAApCpyD,EAAKs7D,EAAcv7B,mBAAgC,IAAP//B,OAAgB,EAASA,EAAGpM,MAAM,gBAA8C,SAA5B0nE,EAAce,WAGjH,OAEML,IACNhnC,EAAQiI,KAAOh2C,KAAKC,UAAU8tC,EAAQiI,MAC1C,CACJ,CACJ,CACA,MAAOz/C,GACH,MAAM,IAAI9a,MAAM,UAAU8a,EAAMiH,kDAAkDwC,KAAKC,UAAU4oE,OAAgB12E,EAAW,SAChI,CACJ,MACK,GAAIkiF,EAAcgB,oBAAsBhB,EAAcgB,mBAAmBx6F,OAAS,EAAG,CACtFkzD,EAAQgS,SAAW,CAAC,EACpB,IAAK,MAAMu1B,KAAqBjB,EAAcgB,mBAAoB,CAC9D,MAAME,EAAyBtE,GAAuCC,EAAoBoE,GAC1F,GAAIC,QAAyE,CACzE,MAAMC,EAAgCF,EAAkB7L,OAAOZ,gBAAkBqJ,GAA2BoD,GAC5GvnC,EAAQgS,SAASy1B,GAAiCnB,EAAcnI,WAAWpsE,UAAUw1E,EAAkB7L,OAAQ8L,EAAwBrD,GAA2BoD,GAAoB1zB,EAC1L,CACJ,CACJ,CACJ,CAtGgB6zB,CAAqB1nC,EAASmjC,EAAoBmD,EAAeF,IAE9DhjE,EAAK48B,EAChB,EAER,CDVuB2nC,CAAoBvlE,EAAQwlE,sBAAuB,CAAEnoC,MAAO,cAC/EW,EAASb,UFLN,SAA+Bn9B,EAAU,CAAC,GAC7C,IAAIwI,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAC5B,MAAM28D,EAA+G,QAA3Fh9D,EAA6C,QAAvCD,EAAKxI,EAAQ0lE,4BAAyC,IAAPl9D,OAAgB,EAASA,EAAGm9D,YAAyB,IAAPl9D,EAAgBA,EAAKo5D,GAC5I+D,EAA6G,QAA1Fj9D,EAA6C,QAAvCD,EAAK1I,EAAQ0lE,4BAAyC,IAAPh9D,OAAgB,EAASA,EAAG+xD,WAAwB,IAAP9xD,EAAgBA,EAAKm5D,GAC1I+D,EAAW7lE,EAAQ6lE,SACnBnB,EAAoB1kE,EAAQ0kE,kBAC5BjzB,EAAiB,CACnBgpB,IAAK,CACDC,SAA0H,QAA/G9xD,EAAK87D,aAA6D,EAASA,EAAkBjK,IAAIC,gBAA6B,IAAP9xD,EAAgBA,EAAK,GACvJ+xD,YAAgI,QAAlH9xD,EAAK67D,aAA6D,EAASA,EAAkBjK,IAAIE,mBAAgC,IAAP9xD,GAAgBA,EACxJ+xD,WAA8H,QAAjH9xD,EAAK47D,aAA6D,EAASA,EAAkBjK,IAAIG,kBAA+B,IAAP9xD,EAAgBA,EAAK6uD,KAGnK,MAAO,CACH1pF,KAlBiC,wBAmBjC,iBAAMyvD,CAAYE,EAAS58B,GACvB,MAAMskC,QAAiBtkC,EAAK48B,GAC5B,OAmCZ4H,eAAuCigC,EAAkBG,EAAiBtgC,EAAUtlC,EAAS6lE,GACzF,MAAMC,QA8HVtgC,eAAqBigC,EAAkBG,EAAiBG,EAAmBC,EAAMH,GAC7E,IAAIr9D,EACJ,KAAqE,QAA9DA,EAAKu9D,EAAkBnoC,QAAQ8W,iCAA8C,IAAPlsC,OAAgB,EAASA,EAAG7W,IAAIo0E,EAAkBrgC,UAC3HqgC,EAAkB/wB,WAAY,CAC9B,MAAMn0C,EAAOklE,EAAkB/wB,WACzBrM,EAAco9B,EAAkBpgC,QAAQp/C,IAAI,iBAAmB,GAC/D0/E,EAAqBt9B,EAErBA,EAAYluD,MAAM,KAAKuC,KAAKkpF,GAAcA,EAAUt0F,gBADpD,GAEN,IACI,GAAiC,IAA7Bq0F,EAAkBv7F,QAClBu7F,EAAkBrmD,MAAMsmD,IAAuD,IAAzCT,EAAiBl6F,QAAQ26F,KAE/D,OADAH,EAAkB7N,WAAaroE,KAAKoQ,MAAMY,GACnCklE,EAEN,GAAIE,EAAkBrmD,MAAMsmD,IAAsD,IAAxCN,EAAgBr6F,QAAQ26F,KAAoB,CACvF,IAAKL,EACD,MAAM,IAAIv6F,MAAM,8BAEpB,MAAMu6D,QAAaggC,EAAShlE,EAAMmlE,EAAKvL,KAEvC,OADAsL,EAAkB7N,WAAaryB,EACxBkgC,CACX,CACJ,CACA,MAAOtxE,GACH,MAAM7V,EAAM,UAAU6V,iDAAmDsxE,EAAkB/wB,cACrFmxB,EAAU1xE,EAAIppB,MAAQ4jE,GAAUwD,YAOtC,MANU,IAAIxD,GAAUrwD,EAAK,CACzBvT,KAAM86F,EACNj3B,WAAY62B,EAAkBrgC,OAC9B9H,QAASmoC,EAAkBnoC,QAC3B0H,SAAUygC,GAGlB,CACJ,CACA,OAAOA,CACX,CAnKiC9lE,CAAMwlE,EAAkBG,EAAiBtgC,EAAUtlC,EAAS6lE,GACzF,IAlBJ,SAAmCC,GAC/B,MACM7B,EAAgBtC,GADNmE,EAAeloC,SAEzBwoC,EAAoBnC,aAAqD,EAASA,EAAcmC,kBACtG,IAAI9tE,EAUJ,OARIA,OADsBtW,IAAtBokF,IAGkC,kBAAtBA,EACHA,EAGAA,EAAkBN,IAExBxtE,CACX,CAGS+tE,CAA0BP,GAC3B,OAAOA,EAEX,MAAM7B,EAAgBtC,GAAwBmE,EAAeloC,SACvDsmC,EAAgBD,aAAqD,EAASA,EAAcC,cAClG,IAAKA,IAAkBA,EAAcoC,UACjC,OAAOR,EAEX,MAAM9N,EAzCV,SAAiC8N,GAC7B,IAAIxtE,EACJ,MACM2rE,EAAgBtC,GADNmE,EAAeloC,SAEzBsmC,EAAgBD,aAAqD,EAASA,EAAcC,cASlG,OARIA,IAKI5rE,GAJE2rE,aAAqD,EAASA,EAAcsC,yBAIrEtC,aAAqD,EAASA,EAAcsC,wBAAwBrC,EAAe4B,GAHnH5B,EAAcoC,UAAUR,EAAepgC,SAMjDptC,CACX,CA2ByBkuE,CAAwBV,IACvC,MAAE1/E,EAAK,qBAAEqgF,GA6CnB,SAA6BX,EAAgB5B,EAAelM,EAAch4D,GACtE,IAAIwI,EAAIC,EAAIC,EAAIC,EAAIC,EACpB,MAAM89D,EAAoB,KAAOZ,EAAepgC,QAAUogC,EAAepgC,OAAS,IAC5EihC,EARV,SAA8BzC,GAC1B,MAAM0C,EAAsBtmF,OAAO4P,KAAKg0E,EAAcoC,WACtD,OAAuC,IAA/BM,EAAoBl8F,QACQ,IAA/Bk8F,EAAoBl8F,QAA2C,YAA3Bk8F,EAAoB,EACjE,CAIiCC,CAAqB3C,GAC5CwC,IACE1O,EACR,GAAI2O,EAAsB,CACtB,IAAI3O,EAMA,MAAO,CAAE5xE,MAAO,KAAMqgF,sBAAsB,GAL5C,IAAKzO,EAAar1B,QACd,MAAO,CAAEv8C,MAAO,KAAMqgF,sBAAsB,EAMxD,CACA,MAAMK,EAAoB9O,QAAmDA,EAAekM,EAAcoC,UAAUS,QAC9GC,GAAmF,QAA3Dx+D,EAAKs9D,EAAeloC,QAAQ8W,iCAA8C,IAAPlsC,OAAgB,EAASA,EAAG7W,IAAIm0E,EAAepgC,SAC1I,2BAA2BogC,EAAepgC,SAC1CogC,EAAe9wB,WACf5uD,EAAQ,IAAI6oD,GAAU+3B,EAAqB,CAC7C93B,WAAY42B,EAAepgC,OAC3B9H,QAASkoC,EAAeloC,QACxB0H,SAAUwgC,IAKd,KAAKgB,IAC4F,QAAzFp+D,EAA0C,QAApCD,EAAKq9D,EAAe5N,kBAA+B,IAAPzvD,OAAgB,EAASA,EAAGriB,aAA0B,IAAPsiB,OAAgB,EAASA,EAAGr9B,QAAoG,QAAzFu9B,EAA0C,QAApCD,EAAKm9D,EAAe5N,kBAA+B,IAAPvvD,OAAgB,EAASA,EAAGviB,aAA0B,IAAPwiB,OAAgB,EAASA,EAAGvb,UACzQ,MAAMjH,EAEV,MAAM6gF,EAAoBH,aAA6D,EAASA,EAAkB3O,WAC5G+O,EAAuBJ,aAA6D,EAASA,EAAkBK,cACrH,IAGI,GAAIrB,EAAe5N,WAAY,CAC3B,MAAMA,EAAa4N,EAAe5N,WAClC,IAAIkP,EACJ,GAAIH,EAAmB,CACnB,IAAII,EAAqBnP,EACzB,GAAIgM,EAAc9K,OAAS6N,EAAkB/kF,KAAKjU,OAAS2yF,GAA0B,CACjFyG,EAAqB,GACrB,MAAMvC,EAAcmC,EAAkB1J,eACZ,iBAAfrF,GAA2B4M,IAClCuC,EAAqBnP,EAAW4M,GAExC,CACAsC,EAAoBlD,EAAcnI,WAAWvV,YAAYygB,EAAmBI,EAAoB,4BAA6BrnE,EACjI,CACA,MAAMsnE,EAAgBpP,EAAW9xE,OAASghF,GAAqBlP,EAC/D9xE,EAAM/a,KAAOi8F,EAAcj8F,KACvBi8F,EAAcj6E,UACdjH,EAAMiH,QAAUi6E,EAAcj6E,SAE9B45E,IACA7gF,EAAMk/C,SAAS4yB,WAAakP,EAEpC,CAEItB,EAAengC,SAAWuhC,IAC1B9gF,EAAMk/C,SAAS2yB,cACXiM,EAAcnI,WAAWvV,YAAY0gB,EAAsBpB,EAAengC,QAAQ/pD,SAAU,8BAExG,CACA,MAAO2rF,GACHnhF,EAAMiH,QAAU,UAAUk6E,EAAal6E,0DAA0Dy4E,EAAe9wB,uCACpH,CACA,MAAO,CAAE5uD,QAAOqgF,sBAAsB,EAC1C,CAnH4Ce,CAAoB1B,EAAgB5B,EAAelM,EAAch4D,GACzG,GAAI5Z,EACA,MAAMA,EAEL,GAAIqgF,EACL,OAAOX,EAIX,GAAI9N,EAAc,CACd,GAAIA,EAAaG,WAAY,CACzB,IAAIkP,EAAqBvB,EAAe5N,WACpCgM,EAAc9K,OAASpB,EAAaG,WAAWj2E,KAAKjU,OAAS2yF,KAC7DyG,EACkC,iBAAvBA,EACDA,EAAmBrP,EAAaG,WAAWoF,gBAC3C,IAEd,IACIuI,EAAe5N,WAAagM,EAAcnI,WAAWvV,YAAYwR,EAAaG,WAAYkP,EAAoB,0BAA2BrnE,EAC7I,CACA,MAAOynE,GAMH,MALkB,IAAIx4B,GAAU,SAASw4B,kDAAiE3B,EAAe9wB,aAAc,CACnI9F,WAAY42B,EAAepgC,OAC3B9H,QAASkoC,EAAeloC,QACxB0H,SAAUwgC,GAGlB,CACJ,KACsC,SAA7B5B,EAAcwD,aAEnB5B,EAAe5N,WAAa5yB,EAASI,QAAU,KAAOJ,EAASI,OAAS,KAExEsyB,EAAamP,gBACbrB,EAAe7N,cAAgBiM,EAAcnI,WAAWvV,YAAYwR,EAAamP,cAAerB,EAAengC,QAAQ/pD,SAAU,6BAA8B,CAAE6+E,IAAK,CAAC,EAAGiE,yBAAyB,IAE3M,CACA,OAAOoH,CACX,CArFmB6B,CAAwBlC,EAAkBG,EAAiBtgC,EAAUmM,EAAgBo0B,EAChG,EAER,CEfuB+B,CAAsB5nE,EAAQ6nE,wBAAyB,CACtExqC,MAAO,gBAEJW,CACX,CErBA,IAAI8pC,GCCJ,MAAMC,GAAiC,CACnCC,IAAK,IACLC,IAAK,IACLC,MAAO,QACPC,IAAK,KACLC,MAAO,KAEJ,SAASC,GAAcC,EAASpE,EAAenD,EAAoBE,GACtE,MAAMsH,EAuCV,SAAkCrE,EAAenD,EAAoBE,GACjE,IAAIz4D,EACJ,MAAMlQ,EAAS,IAAIyC,IACnB,GAA2C,QAAtCyN,EAAK07D,EAAcsE,qBAAkC,IAAPhgE,OAAgB,EAASA,EAAG99B,OAC3E,IAAK,MAAM+9F,KAAgBvE,EAAcsE,cAAe,CACpD,IAAIE,EAAoB5H,GAAuCC,EAAoB0H,EAAcxH,GACjG,MAAM0H,EAAsB5G,GAA2B0G,GACvDC,EAAoBxE,EAAcnI,WAAWpsE,UAAU84E,EAAanP,OAAQoP,EAAmBC,GAC1FF,EAAaG,eACdF,EAAoBpuE,mBAAmBouE,IAE3CpwE,EAAO/kB,IAAI,IAAIk1F,EAAanP,OAAOZ,gBAAkBiQ,KAAwBD,EACjF,CAEJ,OAAOpwE,CACX,CAtD4BuwE,CAAyB3E,EAAenD,EAAoBE,GACpF,IAAI6H,GAAiB,EACjBC,EAAaC,GAAWV,EAASC,GACrC,GAAIrE,EAAcrmD,KAAM,CACpB,IAAIA,EAAOmrD,GAAW9E,EAAcrmD,KAAM0qD,GAIf,gBAAvBrE,EAAcrmD,MAA0BA,EAAKkjB,WAAW,OACxDljB,EAAOA,EAAKrsC,UAAU,IAKRqsC,EA0CXp2B,SAAS,QAzCZshF,EAAalrD,EACbirD,GAAiB,GAGjBC,EAuCZ,SAAoBhkC,EAAKkkC,GACrB,IAAKA,EACD,OAAOlkC,EAEX,MAAMmkC,EAAY,IAAIlkC,IAAID,GAC1B,IAAIokC,EAAUD,EAAUvpB,SACnBwpB,EAAQloC,SAAS,OAClBkoC,EAAU,GAAGA,MAEbF,EAAaloC,WAAW,OACxBkoC,EAAeA,EAAaz3F,UAAU,IAE1C,MAAM43F,EAAcH,EAAa19F,QAAQ,KACzC,IAAqB,IAAjB69F,EAAoB,CACpB,MAAMvrD,EAAOorD,EAAaz3F,UAAU,EAAG43F,GACjC73F,EAAS03F,EAAaz3F,UAAU43F,EAAc,GACpDD,GAAoBtrD,EAChBtsC,IACA23F,EAAU33F,OAAS23F,EAAU33F,OAAS,GAAG23F,EAAU33F,UAAUA,IAAWA,EAEhF,MAEI43F,GAAoBF,EAGxB,OADAC,EAAUvpB,SAAWwpB,EACdD,EAAU15F,UACrB,CAjEyB65F,CAAWN,EAAYlrD,EAE5C,CACA,MAAM,YAAEyrD,EAAW,eAAEC,GA+DzB,SAAkCrF,EAAenD,EAAoBE,GACjE,IAAIz4D,EACJ,MAAMlQ,EAAS,IAAIyC,IACbwuE,EAAiB,IAAIruE,IAC3B,GAA6C,QAAxCsN,EAAK07D,EAAcsF,uBAAoC,IAAPhhE,OAAgB,EAASA,EAAG99B,OAC7E,IAAK,MAAM++F,KAAkBvF,EAAcsF,gBAAiB,CAChB,aAApCC,EAAenQ,OAAOp3E,KAAKjU,MAAuBw7F,EAAenQ,OAAOZ,gBACxE6Q,EAAenyD,IAAIqyD,EAAenQ,OAAOZ,gBAE7C,IAAIgR,EAAsB5I,GAAuCC,EAAoB0I,EAAgBxI,GACrG,GAAI,MAACyI,GACDD,EAAenQ,OAAOyB,SAAU,CAChC2O,EAAsBxF,EAAcnI,WAAWpsE,UAAU85E,EAAenQ,OAAQoQ,EAAqB3H,GAA2B0H,IAChI,MAAME,EAAYF,EAAeG,iBAC3B7B,GAA+B0B,EAAeG,kBAC9C,GAUN,GATIx+F,MAAM+W,QAAQunF,KAEdA,EAAsBA,EAAoB1sF,KAAKw7D,GACvCA,QACO,GAEJA,KAGyB,UAApCixB,EAAeG,kBAA+D,IAA/BF,EAAoBh/F,OACnE,UAEKU,MAAM+W,QAAQunF,IACkB,QAApCD,EAAeG,kBAAkE,QAApCH,EAAeG,mBAC7DF,EAAsBA,EAAoBx+F,KAAKy+F,IAE9CF,EAAeb,eAEZc,EADAt+F,MAAM+W,QAAQunF,GACQA,EAAoB1sF,KAAKw7D,GACpCl+C,mBAAmBk+C,KAIRl+C,mBAAmBovE,KAI7Ct+F,MAAM+W,QAAQunF,IACuB,QAApCD,EAAeG,kBAAkE,UAApCH,EAAeG,mBAC7DF,EAAsBA,EAAoBx+F,KAAKy+F,IAEnDrxE,EAAO/kB,IAAIk2F,EAAenQ,OAAOZ,gBAAkBqJ,GAA2B0H,GAAiBC,EACnG,CACJ,CAEJ,MAAO,CACHJ,YAAahxE,EACbixE,iBAER,CAtH4CM,CAAyB3F,EAAenD,EAAoBE,GAQpG,OADA8H,EA0IG,SAA2BhkC,EAAKukC,EAAaC,EAAgBO,GAAc,GAC9E,GAAyB,IAArBR,EAAY3qF,KACZ,OAAOomD,EAEX,MAAMmkC,EAAY,IAAIlkC,IAAID,GAIpBglC,EAlCV,SAAgCC,GAC5B,MAAM1xE,EAAS,IAAIyC,IACnB,IAAKivE,GAAkC,MAAnBA,EAAY,GAC5B,OAAO1xE,EAIX,MAAM2xE,GADND,EAAcA,EAAY78F,MAAM,IACNsN,MAAM,KAChC,IAAK,MAAMyvF,KAAQD,EAAO,CACtB,MAAOh8F,EAAM4S,GAASqpF,EAAKzvF,MAAM,IAAK,GAChC0vF,EAAgB7xE,EAAO/R,IAAItY,GAC7Bk8F,EACI/+F,MAAM+W,QAAQgoF,GACdA,EAAcp/F,KAAK8V,GAGnByX,EAAO/kB,IAAItF,EAAM,CAACk8F,EAAetpF,IAIrCyX,EAAO/kB,IAAItF,EAAM4S,EAEzB,CACA,OAAOyX,CACX,CAU2B8xE,CAAuBlB,EAAU33F,QACxD,IAAK,MAAOtD,EAAM4S,KAAUyoF,EAAa,CACrC,MAAMa,EAAgBJ,EAAexjF,IAAItY,GACzC,GAAI7C,MAAM+W,QAAQgoF,GACd,GAAI/+F,MAAM+W,QAAQtB,GAAQ,CACtBspF,EAAcp/F,QAAQ8V,GACtB,MAAMwpF,EAAW,IAAInvE,IAAIivE,GACzBJ,EAAex2F,IAAItF,EAAM7C,MAAMwV,KAAKypF,GACxC,MAEIF,EAAcp/F,KAAK8V,QAGlBspF,GACD/+F,MAAM+W,QAAQtB,GACdA,EAAM2U,QAAQ20E,GAETZ,EAAe53E,IAAI1jB,IACxB87F,EAAex2F,IAAItF,EAAM,CAACk8F,EAAetpF,IAExCipF,GACDC,EAAex2F,IAAItF,EAAM4S,IAI7BkpF,EAAex2F,IAAItF,EAAM4S,EAEjC,CACA,MAAMypF,EAAe,GACrB,IAAK,MAAOr8F,EAAM4S,KAAUkpF,EACxB,GAAqB,iBAAVlpF,EACPypF,EAAav/F,KAAK,GAAGkD,KAAQ4S,UAE5B,GAAIzV,MAAM+W,QAAQtB,GAEnB,IAAK,MAAMovD,KAAYpvD,EACnBypF,EAAav/F,KAAK,GAAGkD,KAAQgiE,UAIjCq6B,EAAav/F,KAAK,GAAGkD,KAAQ4S,KAKrC,OADAqoF,EAAU33F,OAAS+4F,EAAa5/F,OAAS,IAAI4/F,EAAap/F,KAAK,OAAS,GACjEg+F,EAAU15F,UACrB,CAhMiB+6F,CAAkBxB,EAAYO,EAAaC,EAAgBT,GACjEC,CACX,CACA,SAASC,GAAWnrF,EAAO2sF,GACvB,IAAIlyE,EAASza,EACb,IAAK,MAAO4sF,EAAaC,KAAiBF,EACtClyE,EAASA,EAAO7d,MAAMgwF,GAAav/F,KAAKw/F,GAE5C,OAAOpyE,CACX,CC/CO,MAAMypC,GAASK,GAAmB,eCUlC,MAAMuoC,GAKT,WAAAp7F,CAAYywB,EAAU,CAAC,GACnB,IAAIwI,EAAIC,EASR,GARAt3B,KAAKy5F,oBAAsB5qE,EAAQ6qE,mBACnC15F,KAAK25F,UAAwC,QAA3BtiE,EAAKxI,EAAQ+qE,gBAA6B,IAAPviE,EAAgBA,EAAKxI,EAAQsoE,QAC9EtoE,EAAQsoE,SACRvmC,GAAOzsC,QAAQ,wFAEnBnkB,KAAK65F,yBAA2BhrE,EAAQ4yC,wBACxCzhE,KAAK85F,YAAcjrE,EAAQ29B,aHrB1BmqC,KACDA,G9DoPG,IAAIp1B,I8DlPJo1B,IGmBH32F,KAAK6sD,SAAWh+B,EAAQg+B,UAkGhC,SAA+Bh+B,GAC3B,MAAM+jE,EAMV,SAA6B/jE,GACzB,GAAIA,EAAQ+jE,iBACR,OAAO/jE,EAAQ+jE,iBAEnB,GAAI/jE,EAAQ+qE,SACR,MAAO,GAAG/qE,EAAQ+qE,oBAEtB,GAAI/qE,EAAQsoE,QACR,MAAO,GAAGtoE,EAAQsoE,mBAEtB,GAAItoE,EAAQkiE,aAAeliE,EAAQ+jE,iBAC/B,MAAM,IAAIz4F,MAAM,4JAGxB,CApB6B4/F,CAAoBlrE,GACvCiiE,EAAoBjiE,EAAQkiE,YAAc6B,EAC1C,CAAEA,mBAAkB7B,WAAYliE,EAAQkiE,iBACxClgF,EACN,OAAOggF,GAAqB1hF,OAAO8/C,OAAO9/C,OAAO8/C,OAAO,CAAC,EAAGpgC,GAAU,CAAEiiE,sBAC5E,CAxG4CkJ,CAAsBnrE,GAChB,QAArCyI,EAAKzI,EAAQorE,0BAAuC,IAAP3iE,OAAgB,EAASA,EAAG/9B,OAC1E,IAAK,MAAM,OAAE0yD,EAAM,SAAElmC,KAAc8I,EAAQorE,mBAAoB,CAG3D,MAAM9tC,EAA0B,aAAbpmC,EAA0B,YAASlV,EACtD7Q,KAAK6sD,SAASb,UAAUC,EAAQ,CAC5BE,cAER,CAER,CAIA,iBAAMI,CAAYE,GACd,OAAOzsD,KAAK6sD,SAASN,YAAYvsD,KAAK85F,YAAartC,EACvD,CAOA,0BAAMytC,CAAqBtK,EAAoBmD,GAC3C,MAAM6G,EAAW7G,EAAcoH,SAAWn6F,KAAK25F,UAC/C,IAAKC,EACD,MAAM,IAAIz/F,MAAM,6IAKpB,MACMsyD,EhE1BP,SAA+B59B,GAClC,OAAO,IAAIo2C,GAAoBp2C,EACnC,CgEwBwBurE,CAAsB,CAClCxmC,IAFQsjC,GAAc0C,EAAU7G,EAAenD,EAAoB5vF,QAIvEysD,EAAQjY,OAASu+C,EAAcwD,WAC/B,MAAMzD,EAAgBtC,GAAwB/jC,GAC9CqmC,EAAcC,cAAgBA,EAC9BD,EAAclD,mBAAqBA,EACnC,MAAMp4B,EAAcu7B,EAAcv7B,aAAex3D,KAAKy5F,oBAClDjiC,GAAeu7B,EAAc1wB,aAC7B5V,EAAQ+H,QAAQpyD,IAAI,eAAgBo1D,GAExC,MAAM3oC,EAAU+gE,EAAmB/gE,QACnC,GAAIA,EAAS,CACT,MAAMukE,EAAiBvkE,EAAQukE,eAC3BA,IACIA,EAAenhE,UACfw6B,EAAQx6B,QAAUmhE,EAAenhE,SAEjCmhE,EAAe5wB,mBACf/V,EAAQ+V,iBAAmB4wB,EAAe5wB,kBAE1C4wB,EAAe/vB,qBACf5W,EAAQ4W,mBAAqB+vB,EAAe/vB,yBAEPxyD,IAArCuiF,EAAe6B,oBACfnC,EAAcmC,kBAAoB7B,EAAe6B,mBAEjD7B,EAAe3xB,0BACfhV,EAAQgV,yBAA0B,IAGtC5yC,EAAQ2pC,cACR/L,EAAQ+L,YAAc3pC,EAAQ2pC,aAE9B3pC,EAAQwxC,iBACR5T,EAAQ4T,eAAiBxxC,EAAQwxC,eAEzC,CACIrgE,KAAK65F,2BACLptC,EAAQgV,yBAA0B,QAEI5wD,IAAtC47C,EAAQ8W,4BACR9W,EAAQ8W,0BN/Fb,SAAyCwvB,GAC5C,MAAM5rE,EAAS,IAAI4C,IACnB,IAAK,MAAMg0C,KAAcg1B,EAAcoC,UAAW,CAC9C,MAAMP,EAAoB7B,EAAcoC,UAAUp3B,GAC9C62B,EAAkB5N,YAClB4N,EAAkB5N,WAAWj2E,KAAKjU,OAAS2yF,IAC3CtoE,EAAO8e,IAAIlzB,OAAOgrD,GAE1B,CACA,OAAO52C,CACX,CMqFgDkzE,CAAgCtH,IAExE,IACI,MAAMuH,QAAoBt6F,KAAKusD,YAAYE,GACrC8tC,EAAe5T,GAAgB2T,EAAavH,EAAcoC,UAAUmF,EAAY/lC,SAItF,OAHI1lC,aAAyC,EAASA,EAAQ2rE,aAC1D3rE,EAAQ2rE,WAAWF,EAAaC,GAE7BA,CACX,CACA,MAAOtlF,GACH,GAAqB,iBAAVA,IAAuBA,aAAqC,EAASA,EAAMk/C,UAAW,CAC7F,MAAMmmC,EAAcrlF,EAAMk/C,SACpBomC,EAAe5T,GAAgB2T,EAAavH,EAAcoC,UAAUlgF,EAAM8oD,aAAeg1B,EAAcoC,UAAmB,SAChIlgF,EAAM2yC,QAAU2yC,GACZ1rE,aAAyC,EAASA,EAAQ2rE,aAC1D3rE,EAAQ2rE,WAAWF,EAAaC,EAActlF,EAEtD,CACA,MAAMA,CACV,CACJ,EC3HJ,SAASwlF,GAAO9+F,EAAWS,GACzB,MAAMs+F,EAAiB96F,GACrBA,EACG0J,MAAM,QAAQ,GACdA,MAAM,KACNuC,KAAKhT,IAAOA,IAEX8hG,EAAcD,EAAc/+F,GAC5Bi/F,EAAcF,EAAct+F,GAE5BiI,EAAOzJ,KAAKiC,OAAO89F,KAAgBC,GAAe,EAClDC,EAAsBC,GAC1BA,EAAW/2F,UAAU6a,QAAO,CAACm8E,EAAKt/F,EAAG83E,IAAQwnB,EAAMt/F,EAAI4I,GAAQkvE,GAAK,GAEtE,OAAOsnB,EAAmBF,GAAeE,EAAmBD,EAC9D,CAEe,SAASI,GACtBpoE,EACAmzB,EACAC,GAEA,OAAOy0C,GAAO7nE,EAASmzB,IAAc,IAAmB,MAAbC,GAAqBy0C,GAAO7nE,EAASozB,GAAa,EAC/F,CCZA,MAAMi1C,GAAe,gBAERvM,GAAmBA,IAC3B1tF,KAEH,MAAM4pF,EAAasQ,MAAwBl6F,IACrC,UAAEwd,EAAS,YAAE62D,GAAgBuV,EACnC,OAAOz7E,OAAO8/C,OAAO27B,EAAY,CAC/BpsE,SAAAA,KACM2pE,EAAQ1pE,EAAQ2pE,EAAYv5D,IAGhC,GAAyB,WAArBs5D,EAAOp3E,KAAKjU,MAA+B,MAAV2hB,EACnC,OAAOD,EAAU1b,KAAK9C,KAAMmoF,EAAQ1pE,EAAQ2pE,EAAYv5D,GAE1D,GAAsB,iBAAXpQ,EAET,MADA2pE,UAAAA,EAAeD,EAAOZ,gBAChB,IAAIptF,MAAM,GAAGiuF,gBAAyB3pE,6BAE9C,OAAOA,EAAOpgB,UAChB,EAEAg3E,WAAAA,KACM8S,EAAQmF,EAAclF,EAAYv5D,IAGtC,GAAyB,WAArBs5D,EAAOp3E,KAAKjU,MAAqC,MAAhBwwF,EAAsB,CAC7B,iBAAjBA,GAA6BA,EAAa19B,WAAWqrC,MAC9DvtF,QAAQ+W,KAAK,sCAAsC6oE,yBACnDA,GAAgBA,EAAantF,QAAQ86F,GAAc,KAErD,MAAM9zE,EAASkuD,EAAYvyE,KAAK9C,KAAMmoF,EAAQmF,EAAclF,EAAYv5D,GAGxE,OAAI1H,aAAkBlZ,KAAa,IAAIA,MAAMkZ,EAAS,KAC/CA,CACT,CACA,GAA4B,iBAAjBmmE,GAA6BA,EAAev6E,OAAO3X,iBAC5D,MAAM,IAAI8qD,GAAc,UAAUonC,+CAEpC,OAAOx2E,OAAOw2E,EAAajvF,WAAW8B,QAAQ86F,GAAc,IAC9D,GACA,EAGEE,GAAapoF,OAAO3X,iBAAiBiD,WAAW9E,OAChD6hG,GAAmB,IAAItxF,OAAO/M,OAAOo/E,GAAG,kBAAkBgf,iBAA0B,KACpFE,GAAoB,IAAIvxF,OAAO/M,OAAOo/E,GAAG,gBAAgBgf,UAAmB,KACrEG,GAAoC,CAC/Cx+F,KAAM,gBACN,iBAAMyvD,CAAYE,EAAS58B,GACzB,MAAMskC,QAAiBtkC,EAAK48B,GAC5B,OAA2B,MAAvB0H,EAAS0P,aAEb1P,EAAS0P,WAAa1P,EAAS0P,WAAWg0B,WACxC,IAAI/tF,OAAOsxF,GAAkB,MAC5BG,IACC,MAAMlwE,EAAQkwE,EAAQlwE,MAAM+vE,IAC5B,GAAa,MAAT/vE,EAAe,MAAM,IAAI86B,GAC7B,MAAO,CAAErpD,EAAM4S,EAAOpV,GAAO+wB,EAC7B,MAAO,CACLvuB,GACC4S,EAAQqD,OAAO3X,iBAAmB,IAAI6/F,KAAevrF,KAAWA,EACjEpV,GACAP,KAAK,GAAG,IAIdo6D,EAAS0P,WAAa1P,EAAS0P,WAAWg0B,WACxC,IAAI/tF,OAAOuxF,GAAmB,MAC7BE,IACC,MAAMlwE,EAAQkwE,EAAQlwE,MAAMgwE,IAC5B,GAAa,MAAThwE,EAAe,MAAM,IAAI86B,GAC7B,MAAO,CAAEjnD,EAAQwQ,GAAS2b,EAC1B,MAAO,GAAGnsB,KAAU+7F,KAAevrF,IAAQ,KAtBPykD,CA0B1C,GAGWqnC,GAAyBA,KACpC,MAAMC,EAAgB,IAAI7xE,IAE1B,MAAO,CACLqiC,OAAQ,CACNnvD,KAAM,iBACN,iBAAMyvD,CAAYE,EAAS58B,GAAM,IAAA6rE,EAC/B,MAAMrvF,EAAMogD,EAAQ+H,QAAQp/C,IAAI,WAChCq3C,EAAQ+H,QAAQlG,OAAO,WACvB,MAAMqtC,EAActnC,SAAuCxkC,EAAK48B,GAChE,GAAW,MAAPpgD,EAAa,OAAOsvF,IACxB,MAAM/uC,GAA6B,QAAvB8uC,EAACD,EAAcrmF,IAAI/I,UAAI,IAAAqvF,EAAAA,EAAIx4E,QAAQC,WAAWgvE,KAAKwJ,GAK/D,OAJAF,EAAcr5F,IACZiK,EACAugD,EAAIglB,OAAM,UAELhlB,CACT,GAEF7mC,SAAU,UACX,EAGU61E,GAA8BA,KACzC,MAAMC,EAAqB,IAAIjyE,IAE/B,MAAO,CACLqiC,OAAQ,CACNnvD,KAAM,uBACN,iBAAMyvD,CAAYE,EAAS58B,GAAM,IAAAisE,EAC/B,GAAuB,QAAnBrvC,EAAQjY,OAAkB,OAAO3kB,EAAK48B,GAC1C,MAAMpgD,EAAMqS,KAAKC,UAAU,CAAC8tC,EAAQmH,IAAKnH,EAAQiI,OAC3CP,EAAsC,QAA9B2nC,EAAGD,EAAmBzmF,IAAI/I,UAAI,IAAAyvF,EAAAA,EAAIjsE,EAAK48B,GACrDovC,EAAmBz5F,IAAIiK,EAAK8nD,GAC5B,IACE,aAAaA,CACf,CAAE,QACA0nC,EAAmBvtC,OAAOjiD,EAC5B,CACF,GAEF0Z,SAAU,UACX,EAGUg2E,GAAuCA,KAClD,MAAMC,EAAc,IAAIpyE,IAExB,MAAO,CACLqiC,OAAQ,CACNnvD,KAAM,iCACN,iBAAMyvD,CAAYE,EAAS58B,GAAM,IAAAosE,EAC/B,GAAuB,QAAnBxvC,EAAQjY,OAAkB,OAAO3kB,EAAK48B,GAC1C,MAAMpgD,EAAMqS,KAAKC,UAAU,CAAC8tC,EAAQmH,IAAKnH,EAAQiI,OAC3CP,EAA+B,QAAvB8nC,EAAGD,EAAY5mF,IAAI/I,UAAI,IAAA4vF,EAAAA,EAAIpsE,EAAK48B,GAE9C,OADAuvC,EAAY55F,IAAIiK,EAAK8nD,GACdA,CACT,GAEFpuC,SAAU,UACX,EAGUm2E,GACXtgF,IAA8B,CAE9BqwC,OAAQ,CACNnvD,KAAM,kBACN,iBAAMyvD,CAAYE,EAAS58B,GACzB,IACE,aAAaA,EAAK48B,EACpB,CAAE,MAAOx3C,GACP,KACIA,aAAiB6oD,KACF,MAAjB7oD,EAAMw3C,SACNx3C,EAAMiH,QAAQ0zC,WAAW,UAEzB,MAAM36C,EACR,MAAM/V,EAAS,GAAG,IAAI20D,IAAI5+C,EAAMw3C,QAAQmH,KAAK4a,SAASxyE,MAAM,WAE5D,GAAkC,MAA9BiZ,EAAMk/C,UAAU0P,WAElB,KADsB,KAAlB5uD,EAAMiH,UAAgBjH,EAAMiH,QAAU,GAAGhd,MAAW+V,EAAM/a,QACxD+a,EAGR,MAAMy/C,EAAQz/C,EAAMk/C,SAAmC4yB,WACvD9xE,EAAMiH,QAAUhd,EAChB,MAAMgd,EAAkB,MAARw4C,EAAe,IAAIz/C,EAAMk/C,SAASI,qBAAuB34C,EAAW84C,GAEpF,KADgB,KAAZx4C,IAAgBjH,EAAMiH,SAAW,IAAIA,KACnCjH,CACR,CACF,GAEF8Q,SAAU,YAGCo2E,GAAwBA,CACnCr/F,EACAs/F,EACAr2C,EACAC,EACAq2C,KAAsB,CAEtBpwC,OAAQ,CACNnvD,KAAM,gBACN,iBAAMyvD,CAAYE,EAAS58B,GACzB,GAAI48B,EAAQ+H,QAAQh0C,IAAI,mBAEtB,OADAisC,EAAQ+H,QAAQlG,OAAO,mBAChBz+B,EAAK48B,GAEd,MACMzrD,EAAO,OAAOo7F,EADJ,CAAEhJ,eAAgB,CAAED,cAAe,CAAE,kBAAmB,WAChCptC,EAAWC,GACnD,IAAKg1C,MAAmBh6F,GAAO,CAC7B,MAAMiU,EAAQ,IAAI4wC,GAAwB/oD,KAASkE,GACnD,IAAIq7F,EACC,MAAMpnF,EADQvH,QAAQ+W,KAAKxP,EAAMiH,QAExC,CACA,OAAO2T,EAAK48B,EACd,GAEF1mC,SAAU,YAGCu2E,GAA0BA,CACrC3iC,EACA4iC,KAAyB,CAEzBtwC,OAAQ,CACNnvD,KAAM,mBACN,iBAAMyvD,CAAYE,EAAS58B,GAAM,IAAA2sE,EAC/B,GAAyC,MAArC/vC,EAAQ+H,QAAQp/C,IAAI,cAEtB,OADAq3C,EAAQ+H,QAAQlG,OAAO,cAChBz+B,EAAK48B,GAGd,MAAMgwC,EAA+C,QAAtCD,EAAG/vC,EAAQ+H,QAAQp/C,IAAI,uBAAe,IAAAonF,EAAAA,EAAI12F,IACzD2mD,EAAQ+H,QAAQlG,OAAO,gBACvB,MAAMouC,EAAqB,CAAC,IAAK,IAAK,IAAK,IAAK,KAAKluD,QAAQlyC,GAAMA,KAAOmgG,IAEpEE,EAAY,IAAI1iG,MAAM0/D,GACzBntD,KAAK,GACLX,KAAI,CAAC4gB,EAAG8mD,MAAUA,EAAM,GAAK5Z,IAAe,IACzCijC,EAAcD,EAAU/9E,QAAO,CAACjjB,EAAGS,IAAMT,EAAIS,GAAG,GAChDygG,EAAgBF,EAAU9wF,KAAKpP,GAAM7B,KAAKG,MAAO0B,EAAImgG,EAAeL,KAE1E,IAAItnF,EAAQ,IAAI6oD,GAAU,6BAC1B,IAAK,IAAIg/B,EAAU,EAAGA,GAAWnjC,EAAYmjC,GAAW,EAAG,CACzD,GAAgB,IAAZA,EAAe,OACXh2B,GAAM+1B,EAAcC,EAAU,IACpC,MAAMC,EAAY,IAAIlpC,IAAIpH,EAAQmH,KAClCmpC,EAAUjpC,aAAa1xD,IAAI,cAAe06F,EAAQz+F,YAClDouD,EAAQmH,IAAMmpC,EAAU1+F,UAC1B,CACA,IACE,aAAawxB,EAAK48B,EACpB,CAAE,MAAOhwD,GAAG,IAAAugG,EACV,KAAMvgG,aAAaqhE,IAAY,MAAMrhE,EACrC,GAAIigG,EAAmBpmF,SAA2B,QAAnB0mF,EAACvgG,EAAE03D,UAAUI,cAAM,IAAAyoC,EAAAA,EAAI,GAAI,MAAMvgG,EAChEwY,EAAQxY,CACV,CACF,CACA,MAAMwY,CACR,GAEF8Q,SAAU,YC9PCi9D,GAAsC,CACjDjyE,KAAM,CACJjU,KAAM,YACNiuF,UAAW,UACX1D,gBAAiB,CACfzmF,GAAI,CACF2mF,eAAgB,KAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV60E,QAAS,CACP6W,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVmsC,MAAO,CACLu/C,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVmgG,QAAS,CACP1V,eAAgB,UAChBx2E,KAAM,CACJjU,KAAM,YAGVmjD,KAAM,CACJsnC,eAAgB,OAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,QAAS,iBAG7BnW,WAAY,CACVyT,eAAgB,cAChBx2E,KAAM,CACJjU,KAAM,WAGV2iF,QAAS,CACP8H,eAAgB,WAChBx2E,KAAM,CACJjU,KAAM,cAOHogG,GAAyC,CACpDnsF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,aACX1D,gBAAiB,CACfriB,OAAQ,CACNuiB,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVqgG,UAAW,CACT5V,eAAgB,aAChBx2E,KAAM,CACJjU,KAAM,cAOHsgG,GAAgD,CAC3DrsF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,oBACX1D,gBAAiB,CACfjN,UAAW,CACToO,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHugG,GAAwC,CACnDtsF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,YACX1D,gBAAiB,CACfjV,aAAc,CACZmV,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,kBASZrP,GAAuC,CAClD3qE,KAAM,CACJjU,KAAM,YACNiuF,UAAW,WACX1D,gBAAiB,CACfjhD,GAAI,CACFmhD,eAAgB,KAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,OAGfja,YAAa,CACX0X,YAAa,CACXG,iBAAkB,oBAClBC,kBAAmB,GAErBrB,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVwgG,UAAW,CACT/V,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV45B,KAAM,CACJ6wD,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVq7E,UAAW,CACToP,eAAgB,aAChBx2E,KAAM,CACJjU,KAAM,WAGVo/E,WAAY,CACVqL,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,gBASPygG,GAAiC,CAC5CxsF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,KACX1D,gBAAiB,CACfhL,YAAa,CACXkL,eAAgB,eAChBx2E,KAAM,CACJjU,KAAM,WAGV0rD,OAAQ,CACNggC,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,SAChBx2E,KAAM,CAEJjU,KAAM,WAGVu8E,IAAK,CACHmP,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVi0E,IAAK,CACHyX,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WAGV8wE,SAAU,CACR2Z,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,WAGVmsC,MAAO,CACLu/C,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,WAGViuE,QAAS,CACPwc,eAAgB,UAChBx2E,KAAM,CACJjU,KAAM,WAGV0gG,YAAa,CACXjW,eAAgB,eAChBx2E,KAAM,CACJjU,KAAM,WAGVqhF,gBAAiB,CACfqK,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,mBAChBx2E,KAAM,CAEJjU,KAAM,WAGV2gG,YAAa,CACXlW,eAAgB,eAChBx2E,KAAM,CACJjU,KAAM,WAGVuhF,gBAAiB,CACfmK,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,mBAChBx2E,KAAM,CAEJjU,KAAM,WAGVwhF,eAAgB,CACdkK,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,kBAChBx2E,KAAM,CAEJjU,KAAM,WAGVyhF,WAAY,CACViK,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,cAChBx2E,KAAM,CACJjU,KAAM,WAGV4hF,UAAW,CACT6I,eAAgB,aAChBx2E,KAAM,CACJjU,KAAM,WAGV4gG,YAAa,CACXnW,eAAgB,eAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,cAGfnM,UAAW,CACT2I,eAAgB,aAChBx2E,KAAM,CACJjU,KAAM,WAGV+hF,OAAQ,CACN0I,eAAgB,UAChBx2E,KAAM,CACJjU,KAAM,WAGVwD,MAAO,CACLkoF,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,WAGVuiF,KAAM,CACJkI,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,WAGVk5B,OAAQ,CACNuxD,eAAgB,SAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,mBAGf4S,cAAe,CACbpW,eAAgB,iBAChBx2E,KAAM,CACJjU,KAAM,WAGVgiF,qBAAsB,CACpB0J,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,yBAChBx2E,KAAM,CAEJjU,KAAM,WAGViiF,qBAAsB,CACpByJ,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,yBAChBx2E,KAAM,CAEJjU,KAAM,WAGVmiF,IAAK,CACHsI,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WAGV0hF,qBAAsB,CACpB+I,eAAgB,yBAChBx2E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,aAKd2hF,qBAAsB,CACpB8I,eAAgB,yBAChBx2E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,aAKdugF,YAAa,CACXkK,eAAgB,eAChBx2E,KAAM,CACJjU,KAAM,WAGVwgF,eAAgB,CACdiK,eAAgB,kBAChBx2E,KAAM,CACJjU,KAAM,WAGV89E,SAAU,CACR4N,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,YAChBx2E,KAAM,CAEJjU,KAAM,WAGV8gG,UAAW,CACTrW,eAAgB,aAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,gBAGfvO,UAAW,CACT+K,eAAgB,aAChBx2E,KAAM,CACJjU,KAAM,WAGV63E,WAAY,CACV6T,YAAa,CACXG,iBAAkB,MAClBC,iBAAkB,GAEpBrB,eAAgB,cAChBx2E,KAAM,CACJjU,KAAM,WAGV+wE,SAAU,CACR0Z,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,WAGV6gF,MAAO,CACL4J,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,WAGV+gG,SAAU,CACRtW,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,QAGf+S,YAAa,CACXvW,eAAgB,eAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,gBAGf/M,QAAS,CACPuJ,eAAgB,WAChBx2E,KAAM,CACJjU,KAAM,WAGVq3D,SAAU,CACRozB,eAAgB,WAChBx2E,KAAM,CACJjU,KAAM,WAGV2/E,aAAc,CACZ8K,eAAgB,gBAChBx2E,KAAM,CACJjU,KAAM,WAGVA,KAAM,CACJyqF,eAAgB,OAChBx2E,KAAM,CACJjU,KAAM,WAGV6/E,SAAU,CACR6L,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,WAGV2pD,QAAS,CACP+hC,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,WAChBx2E,KAAM,CAEJjU,KAAM,WAGV+/E,OAAQ,CACN0K,eAAgB,UAChBx2E,KAAM,CACJjU,KAAM,WAGVg/E,QAAS,CACP0M,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,WAChBx2E,KAAM,CACJjU,KAAM,WAGVw3E,SAAU,CACRiT,eAAgB,WAChBx2E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,kBAKnBlP,UAAW,CACT2M,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,aAChBx2E,KAAM,CACJjU,KAAM,WAGVkgF,QAAS,CACPuK,eAAgB,WAChBx2E,KAAM,CACJjU,KAAM,WAGV5C,KAAM,CACJqtF,eAAgB,OAChBx2E,KAAM,CACJjU,KAAM,WAGV23E,UAAW,CACT+T,YAAa,CACXG,iBAAkB,MAClBC,iBAAkB,GAEpBrB,eAAgB,aAChBx2E,KAAM,CACJjU,KAAM,WAGVogF,QAAS,CACPsL,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,UAChBx2E,KAAM,CAEJjU,KAAM,WAGVihG,IAAK,CACHvV,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WAGVk6E,SAAU,CACRwR,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,YAChBx2E,KAAM,CAEJjU,KAAM,WAGVqgF,SAAU,CACRoK,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,WAGVsgF,SAAU,CACRmK,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,WAGVg3E,WAAY,CACVyT,eAAgB,cAChBx2E,KAAM,CACJjU,KAAM,WAGV2iF,QAAS,CACP+I,YAAa,CACXU,QAAS,IAAIp/E,OAAO,2BAEtBy9E,eAAgB,WAChBx2E,KAAM,CACJjU,KAAM,WAGV4iF,KAAM,CACJ6H,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,WAGV6iF,SAAU,CACR4H,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,WAGVspC,GAAI,CACFmhD,eAAgB,KAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,aAGfnL,QAAS,CACP2H,eAAgB,WAChBx2E,KAAM,CACJjU,KAAM,WAGV81B,QAAS,CACP41D,YAAa,CACXG,iBAAkB,WAClBC,iBAAkB,GAEpBrB,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGViU,KAAM,CACJw2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CACb,UACA,kBACA,mBACA,oBACA,yBACA,uBACA,qBACA,iBACA,kBACA,wBACA,wBACA,mBACA,iBACA,gBACA,kBACA,iBACA,cACA,eACA,iBACA,eACA,mBACA,iBACA,aACA,WACA,oBAQC+T,GAAwC,CACnDjtF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,YACX1D,gBAAiB,CACfnJ,UAAW,CACTqJ,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,aAKdshF,UAAW,CACTmJ,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,gBASPmhG,GAA6C,CACxDltF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,iBACXkE,WAAY,iBACZvC,yBAA0B,CACxBnF,eAAgB,KAChBoF,WAAY,MAEdtF,gBAAiB,CACf6W,GAAI,CACF3W,eAAgB,KAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHqhG,GAA0C,CACrDptF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,cACX1D,gBAAiB,CACft2E,KAAM,CACJoqE,aAAc,QACdwO,YAAY,EACZpC,eAAgB,OAChBx2E,KAAM,CACJjU,KAAM,WAGV4S,MAAO,CACL84E,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHshG,GAAkC,CAC7CrtF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,MACX1D,gBAAiB,CACft2E,KAAM,CACJw2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,QAAS,WAG7Bv6E,MAAO,CACL84E,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHuhG,GAA0C,CACrDttF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,cACX1D,gBAAiB,CACfh7E,IAAK,CACHk7E,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVwhG,WAAY,CACV/W,eAAgB,cAChBx2E,KAAM,CACJjU,KAAM,WAGV8D,GAAI,CACF2mF,eAAgB,KAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHyhG,GAA2C,CACtDxtF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,eACX1D,gBAAiB,CACfzmF,GAAI,CACF2mF,eAAgB,KAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV0hG,UAAW,CACThW,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV2hG,OAAQ,CACNjW,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV4hG,cAAe,CACbnX,eAAgB,iBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV6hG,WAAY,CACVnW,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,cAOHktE,GAAsC,CACjDj5D,KAAM,CACJjU,KAAM,YACNiuF,UAAW,UACX1D,gBAAiB,CACfzmF,GAAI,CACF2mF,eAAgB,KAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV0gG,YAAa,CACXjW,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV2gG,YAAa,CACXlW,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVknF,cAAe,CACbwE,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,iBAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVqhF,gBAAiB,CACfqK,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,mBAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVuhF,gBAAiB,CACfmK,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,mBAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVwhF,eAAgB,CACdkK,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,kBAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGV4gG,YAAa,CACXnW,eAAgB,eAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,cAGfrM,UAAW,CACT6I,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVwD,MAAO,CACLkoF,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVmnF,UAAW,CACTuE,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVyhF,WAAY,CACViK,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVonF,YAAa,CACXsE,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOH8hG,GAA6C,CACxD7tF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,iBACX1D,gBAAiB,CACfzmF,GAAI,CACF2mF,eAAgB,KAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVkgF,QAAS,CACPuK,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV23E,UAAW,CACT+T,YAAa,CACXG,iBAAkB,MAClBC,iBAAkB,GAEpBrB,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV63E,WAAY,CACV6T,YAAa,CACXG,iBAAkB,MAClBC,iBAAkB,GAEpBrB,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV2mF,OAAQ,CACN8D,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,YAGV+hG,YAAa,CACXtX,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,aAKdogF,QAAS,CACPsL,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,cAOHgiG,GAAuC,CAClD/tF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,WACX1D,gBAAiB,CACf0X,SAAU,CACRxX,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHkiG,GAAkC,CAC7CjuF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,MACX1D,gBAAiB,CACfpI,IAAK,CACHsI,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHmiG,GAAuC,CAClDluF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,WACX1D,gBAAiB,CACfvqF,KAAM,CACJyqF,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV6gD,OAAQ,CACN4pC,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVoiG,QAAS,CACP3X,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVqiG,gBAAiB,CACf3W,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,oBAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVsiG,mBAAoB,CAClB7X,eAAgB,uBAChBx2E,KAAM,CACJjU,KAAM,WAGVuiG,kBAAmB,CACjB9X,eAAgB,sBAChBx2E,KAAM,CACJjU,KAAM,WAGVwiG,KAAM,CACJ/X,eAAgB,OAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,UAGfwU,cAAe,CACbhY,eAAgB,iBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV0iG,gBAAiB,CACfjY,eAAgB,mBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV2iG,YAAa,CACXlY,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOH4iG,GAAoC,CAC/C3uF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,QACX1D,gBAAiB,CACft2E,KAAM,CACJw2E,eAAgB,OAChBx2E,KAAM,CACJjU,KAAM,WAGVmU,KAAM,CACJs2E,eAAgB,OAChBx2E,KAAM,CACJjU,KAAM,cAOH6iG,GAA0C,CACrD5uF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,cACX1D,gBAAiB,CACfvU,IAAK,CACHyU,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WAGVo2E,SAAU,CACRqU,eAAgB,WAChBx2E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,oBAKnB9X,IAAK,CACHsU,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,sBAKnB/X,SAAU,CACRmI,cAAc,EACdoM,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,eAOH8iG,GAA4C,CACvD7uF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,gBACX1D,gBAAiB,CACfjU,OAAQ,CACNmU,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV0rD,OAAQ,CACNggC,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,cAOH+iG,GAA8C,CACzD9uF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,kBACX1D,gBAAiB,CACfjhD,GAAI,CACFmhD,eAAgB,KAChBx2E,KAAM,CACJjU,KAAM,WAGVktD,OAAQ,CACNu9B,eAAgB,UAChBx2E,KAAM,CACJjU,KAAM,WAGVgjG,QAAS,CACPvY,eAAgB,WAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,qBAORgV,GAA4C,CACvDhvF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,gBACX1D,gBAAiB,CACf2Y,SAAU,CACRzY,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV8nF,SAAU,CACR2C,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV0rD,OAAQ,CACNggC,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,SAChBx2E,KAAM,CAEJjU,KAAM,WAGVihG,IAAK,CACHvV,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WAGV6nF,OAAQ,CACN4C,eAAgB,SAChBx2E,KAAM,CACJjU,KAAM,WAGVmsC,MAAO,CACLu/C,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,WAGV63E,WAAY,CACV6T,YAAa,CACXG,iBAAkB,MAClBC,iBAAkB,GAEpBrB,eAAgB,cAChBx2E,KAAM,CACJjU,KAAM,WAGV6jB,QAAS,CACP4mE,eAAgB,UAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,yBAORkV,GAAgD,CAC3DlvF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,oBACX1D,gBAAiB,CACfjhD,GAAI,CACFmhD,eAAgB,KAChBx2E,KAAM,CACJjU,KAAM,WAGVktD,OAAQ,CACNu9B,eAAgB,UAChBx2E,KAAM,CACJjU,KAAM,WAGVojG,SAAU,CACR3Y,eAAgB,WAChBx2E,KAAM,CACJjU,KAAM,eAOHqjG,GAA4C,CACvDpvF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,gBACX1D,gBAAiB,CACfhU,QAAS,CACPkU,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,mBAKnB/X,SAAU,CACRuU,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,aACN4S,MAAO,CAAEqB,KAAM,CAAEjU,KAAM,eASxBsjG,GAA2C,CACtDrvF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,eACX1D,gBAAiB,CACft2E,KAAM,CACJw2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVqqB,OAAQ,CACNogE,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVkoE,OAAQ,CACNuiB,eAAgB,SAChBx2E,KAAM,CACJjU,KAAM,WAGVujG,QAAS,CACP9Y,eAAgB,WAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,0BAORuV,GAAiD,CAC5DvvF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,qBACX1D,gBAAiB,CACfjK,SAAU,CACRmK,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV8mF,YAAa,CACX4E,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV0oD,OAAQ,CACNgjC,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVg3E,WAAY,CACVyT,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVk6E,SAAU,CACRwR,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGV+mF,QAAS,CACP2E,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV6Q,IAAK,CACH45E,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,YAKnBjH,YAAa,CACXyD,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVinF,WAAY,CACVwD,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,KAAM,QAAS,eAO5BsW,GAAoC,CAC/CxvF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,QACX1D,gBAAiB,CACfhhC,QAAS,CACPkhC,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV0jG,OAAQ,CACNjZ,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPyzC,YAAa,CACXI,iBAAkB,GAEpB73E,KAAM,CAEJjU,KAAM,aAKdmU,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOH2jG,GAAyC,CACpD1vF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,aACX1D,gBAAiB,CACfqZ,SAAU,CACRnZ,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,aAGf4V,YAAa,CACXpZ,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,gBASP8jG,GAAuC,CAClD7vF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,WACX1D,gBAAiB,CACf3wD,KAAM,CACJ6wD,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV0oD,OAAQ,CACNgjC,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV+jG,SAAU,CACRtZ,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVgkG,YAAa,CACXvZ,eAAgB,gBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV4hF,UAAW,CACT6I,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVikG,MAAO,CACLxZ,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVkkG,YAAa,CACXzZ,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVuoB,MAAO,CACLkiE,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVmZ,OAAQ,CACNuyE,YAAa,CACXG,iBAAkB,WAClBC,iBAAkB,GAEpBrB,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVoH,IAAK,CACHskF,YAAa,CACXO,SAAU,GACVF,SAAU,IAEZtB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPyzC,YAAa,CACXG,iBAAkB,WAClBC,iBAAkB,GAEpB73E,KAAM,CACJjU,KAAM,aAKdmsC,MAAO,CACLu/C,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,WAGV2zE,KAAM,CACJ8W,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,aAGV81B,QAAS,CACP41D,YAAa,CACXG,iBAAkB,WAClBC,iBAAkB,GAEpBrB,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVwyD,KAAM,CACJi4B,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHmkG,GAAqC,CAChDlwF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,SACX1D,gBAAiB,CACf3wD,KAAM,CACJ6wD,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV0oD,OAAQ,CACNgjC,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV+jG,SAAU,CACRtZ,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVgkG,YAAa,CACXvZ,eAAgB,gBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV4hF,UAAW,CACT6I,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVikG,MAAO,CACLxZ,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,WAGVkkG,YAAa,CACXzZ,eAAgB,cAChBx2E,KAAM,CACJjU,KAAM,WAGVuoB,MAAO,CACLkiE,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,WAGVmZ,OAAQ,CACNuyE,YAAa,CACXG,iBAAkB,WAClBC,iBAAkB,GAEpBrB,eAAgB,SAChBx2E,KAAM,CACJjU,KAAM,WAGVoH,IAAK,CACHskF,YAAa,CACXO,SAAU,GACVF,SAAU,IAEZtB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPyzC,YAAa,CACXG,iBAAkB,WAClBC,iBAAkB,GAEpB73E,KAAM,CACJjU,KAAM,aAKdmsC,MAAO,CACLu/C,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,WAGV2zE,KAAM,CACJ8W,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,aAGV81B,QAAS,CACP41D,YAAa,CACXG,iBAAkB,WAClBC,iBAAkB,GAEpBrB,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVwyD,KAAM,CACJi4B,eAAgB,OAChBx2E,KAAM,CACJjU,KAAM,WAGVokG,QAAS,CACP3Z,eAAgB,WAChBx2E,KAAM,CACJjU,KAAM,WAGVqkG,QAAS,CACP5Z,eAAgB,WAChBx2E,KAAM,CACJjU,KAAM,WAGVsvE,UAAW,CACTmb,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,cAOHskG,GAAwC,CACnDrwF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,YACX1D,gBAAiB,CACfga,MAAO,CACL9Z,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV0oD,OAAQ,CACN+hC,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVwgG,UAAW,CACT/V,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVwkG,cAAe,CACb/Z,eAAgB,iBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVykG,WAAY,CACVha,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV0kG,WAAY,CACVja,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV2kG,gBAAiB,CACfla,eAAgB,oBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOH4kG,GAAgD,CAC3D3wF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,oBACX1D,gBAAiB,CACfsa,QAAS,CACPpa,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV8kG,SAAU,CACRra,eAAgB,WAChBx2E,KAAM,CACJjU,KAAM,WAGV+kG,QAAS,CACPta,eAAgB,UAChBx2E,KAAM,CACJjU,KAAM,cAOHglG,GAA2C,CACtD/wF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,eACX1D,gBAAiB,CACf3wD,KAAM,CACJ6wD,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHilG,GAA6C,CACxDhxF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,iBACX1D,gBAAiB,CACf7hC,OAAQ,CACNgjC,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHklG,GAA+C,CAC1DjxF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,mBACX1D,gBAAiB,CACf3wD,KAAM,CACJ6wD,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV0oD,OAAQ,CACNgjC,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVokG,QAAS,CACP3Z,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV+jG,SAAU,CACRtZ,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVgkG,YAAa,CACXvZ,eAAgB,gBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV4hF,UAAW,CACT6I,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVqkG,QAAS,CACP5Z,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVsvE,UAAW,CACTmb,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV2zE,KAAM,CACJ8W,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,aAGV81B,QAAS,CACP41D,YAAa,CACXG,iBAAkB,WAClBC,iBAAkB,GAEpBrB,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHmlG,GAA4C,CACvDlxF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,gBACX1D,gBAAiB,CACf7iE,MAAO,CACLgkE,YAAa,CACXG,iBAAkB,WAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHolG,GAAwC,CACnDnxF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,YACX1D,gBAAiB,CACfzmF,GAAI,CACF2mF,eAAgB,KAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV4wE,MAAO,CACL6Z,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,WAGVi0E,IAAK,CACHyX,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVw3E,SAAU,CACRiT,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,6BASZoX,GAAkD,CAC7DpxF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,sBACX1D,gBAAiB,CACfh7E,IAAK,CACHk7E,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVwhG,WAAY,CACV/W,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV8D,GAAI,CACF2mF,eAAgB,KAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHslG,GAA+C,CAC1DrxF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,mBACX1D,gBAAiB,CACfzmF,GAAI,CACF2mF,eAAgB,KAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVugF,YAAa,CACXkK,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVwgF,eAAgB,CACdiK,eAAgB,kBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV89E,SAAU,CACR4N,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVi0E,IAAK,CACHyX,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV63E,WAAY,CACV6T,YAAa,CACXG,iBAAkB,MAClBC,iBAAkB,GAEpBrB,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHulG,GAA4C,CACvDtxF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,gBACX1D,gBAAiB,CACfib,cAAe,CACb/a,eAAgB,iBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,qBASZ5hB,GAA0C,CACrDp4D,KAAM,CACJjU,KAAM,YACNiuF,UAAW,cACX1D,gBAAiB,CACfzmF,GAAI,CACF2mF,eAAgB,KAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV8wE,SAAU,CACR2Z,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVylG,YAAa,CACX/Z,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV+wE,SAAU,CACR0Z,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV6gF,MAAO,CACL4J,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVq3D,SAAU,CACRozB,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVi0E,IAAK,CACHyX,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVghG,YAAa,CACXvW,eAAgB,eAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,QAGf1R,IAAK,CACHmP,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,cAOH0lG,GAAyC,CACpDzxF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,aACX1D,gBAAiB,CACfob,OAAQ,CACNlb,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOH4lG,GAA4C,CACvD3xF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,gBACX1D,gBAAiB,CACfpQ,YAAa,CACXuR,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,gBAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVo6E,YAAa,CACXsR,YAAa,CACXG,iBAAkB,IAClBC,iBAAkB,GAEpBrB,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV6lG,QAAS,CACPna,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOH8lG,GAAqC,CAChD7xF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,SACX1D,gBAAiB,CACfwb,oBAAqB,CACnBtb,eAAgB,yBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVgmG,UAAW,CACTta,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVimG,WAAY,CACVva,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVkmG,SAAU,CACRxa,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVmmG,QAAS,CACP1b,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,YAGVomG,aAAc,CACZ1a,YAAa,CACXG,iBAAkB,IAClBC,iBAAkB,GAEpBrB,eAAgB,gBAChBx2E,KAAM,CACJjU,KAAM,WAGVqmG,OAAQ,CACN5b,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVsmG,UAAW,CACT7b,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,YAGV2uC,UAAW,CACT87C,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,eAKnBsY,YAAa,CACX9b,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVwmG,aAAc,CACZ/b,eAAgB,gBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVymG,UAAW,CACT/a,YAAa,CACXG,iBAAkB,WAClBC,iBAAkB,GAEpBrB,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV0mG,gBAAiB,CACfjc,eAAgB,mBAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,oBAGf0Y,yBAA0B,CACxBjb,YAAa,CACXG,iBAAkB,WAClBC,iBAAkB,GAEpBrB,eAAgB,6BAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVmzE,UAAW,CACTsX,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV4mG,WAAY,CACVnc,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV6mG,gBAAiB,CACfpc,eAAgB,qBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV8mG,eAAgB,CACdpb,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,mBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOH+mG,GAAuC,CAClD9yF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,WACX1D,gBAAiB,CACfz0D,QAAS,CACP41D,YAAa,CACXG,iBAAkB,WAClBC,iBAAkB,GAEpBrB,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVgnG,kBAAmB,CACjBtb,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,sBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHinG,GAA8C,CACzDhzF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,kBACX1D,gBAAiB,CACf2c,QAAS,CACPxb,YAAa,CACXG,iBAAkB,WAClBC,iBAAkB,GAEpBrB,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVmnG,SAAU,CACRzb,YAAa,CACXG,iBAAkB,WAClBC,iBAAkB,GAEpBrB,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHonG,GAAyC,CACpDnzF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,aACX1D,gBAAiB,CACf8c,SAAU,CACR5c,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVmZ,OAAQ,CACNuyE,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVsnG,MAAO,CACL7c,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVunG,SAAU,CACR7b,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHwnG,GAAwC,CACnDvzF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,YACX1D,gBAAiB,CACfjhD,GAAI,CACFmhD,eAAgB,KAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHynG,GAA6C,CACxDxzF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,iBACX1D,gBAAiB,CACfr9B,OAAQ,CACNu9B,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOH0nG,GAA2C,CACtDzzF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,eACX1D,gBAAiB,CACfod,SAAU,CACRld,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,uBAGf2Z,OAAQ,CACNnd,eAAgB,UAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,aAGf4Z,OAAQ,CACNpd,eAAgB,UAChBx2E,KAAM,CACJjU,KAAM,cAOH8nG,GAAuC,CAClD7zF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,WACX1D,gBAAiB,CACfjK,SAAU,CACRmK,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV0oD,OAAQ,CACNgjC,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVk6E,SAAU,CACRwR,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGV+mF,QAAS,CACP2E,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVgnF,YAAa,CACXyD,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVinF,WAAY,CACVwD,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,KAAM,WAG1B4a,YAAa,CACXtd,eAAgB,eAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,oBAORpM,GAAmD,CAC9D5tE,KAAM,CACJjU,KAAM,YACNiuF,UAAW,uBACX1D,gBAAiB,CACfzI,UAAW,CACT2I,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV+hF,OAAQ,CACN0I,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVgiF,qBAAsB,CACpB0J,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,yBAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGViiF,qBAAsB,CACpByJ,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,yBAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVi0E,IAAK,CACHyX,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WAGVu8E,IAAK,CACHmP,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVmsC,MAAO,CACLu/C,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHkiF,GAAiD,CAC5DjuE,KAAM,CACJjU,KAAM,YACNiuF,UAAW,qBACX1D,gBAAiB,CACfzI,UAAW,CACT2I,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV+hF,OAAQ,CACN0I,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGViuE,QAAS,CACPwc,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVi0E,IAAK,CACHyX,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WAGVu8E,IAAK,CACHmP,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVmsC,MAAO,CACLu/C,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,WAGVmiF,IAAK,CACHsI,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHmhF,GAA8C,CACzDltE,KAAM,CACJjU,KAAM,YACNiuF,UAAW,kBACX1D,gBAAiB,CACfmW,YAAa,CACXjW,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVqhF,gBAAiB,CACfqK,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,mBAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGV2gG,YAAa,CACXlW,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVuhF,gBAAiB,CACfmK,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,mBAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVwhF,eAAgB,CACdkK,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,kBAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVyhF,WAAY,CACViK,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVi0E,IAAK,CACHyX,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WAGVu8E,IAAK,CACHmP,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVmsC,MAAO,CACLu/C,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,WAGV4hF,UAAW,CACT6I,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV4gG,YAAa,CACXnW,eAAgB,eAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,iBAOR5L,GAA+C,CAC1DpuE,KAAM,CACJjU,KAAM,YACNiuF,UAAW,mBACX1D,gBAAiB,CACfzI,UAAW,CACT2I,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV+hF,OAAQ,CACN0I,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV0rD,OAAQ,CACNggC,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVi0E,IAAK,CACHyX,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WAGVu8E,IAAK,CACHmP,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVmsC,MAAO,CACLu/C,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV4hF,UAAW,CACT6I,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVwD,MAAO,CACLkoF,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHw7E,GAAqD,CAChEvnE,KAAM,CACJjU,KAAM,YACNiuF,UAAW,yBACX1D,gBAAiB,CACfzI,UAAW,CACT2I,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV+hF,OAAQ,CACN0I,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGViuE,QAAS,CACPwc,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVwD,MAAO,CACLkoF,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVk5B,OAAQ,CACNuxD,eAAgB,SAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,mBAGfrM,UAAW,CACT6I,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVi0E,IAAK,CACHyX,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WAGVu8E,IAAK,CACHmP,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVmsC,MAAO,CACLu/C,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,WAGV6gG,cAAe,CACbpW,eAAgB,iBAChBx2E,KAAM,CACJjU,KAAM,cAOHgoG,GAAoD,CAC/D/zF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,wBACX1D,gBAAiB,CACfzI,UAAW,CACT2I,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV+hF,OAAQ,CACN0I,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV0hF,qBAAsB,CACpB+I,eAAgB,yBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,aAKd2hF,qBAAsB,CACpB8I,eAAgB,yBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,aAKd4hF,UAAW,CACT6I,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVwD,MAAO,CACLkoF,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGViuE,QAAS,CACPwc,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVi0E,IAAK,CACHyX,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WAGVu8E,IAAK,CACHmP,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVmsC,MAAO,CACLu/C,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,cAOHwiF,GAA8C,CACzDvuE,KAAM,CACJjU,KAAM,YACNiuF,UAAW,kBACX1D,gBAAiB,CACfzI,UAAW,CACT2I,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV+hF,OAAQ,CACN0I,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVgiF,qBAAsB,CACpB0J,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,yBAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGViiF,qBAAsB,CACpByJ,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,yBAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVi0E,IAAK,CACHyX,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WAGVu8E,IAAK,CACHmP,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVmsC,MAAO,CACLu/C,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHoiF,GAA6C,CACxDnuE,KAAM,CACJjU,KAAM,YACNiuF,UAAW,iBACX1D,gBAAiB,CACfzI,UAAW,CACT2I,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV+hF,OAAQ,CACN0I,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGViuE,QAAS,CACPwc,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVi0E,IAAK,CACHyX,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WAGVu8E,IAAK,CACHmP,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVmsC,MAAO,CACLu/C,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,WAGVmiF,IAAK,CACHsI,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOH0iF,GAAoD,CAC/DzuE,KAAM,CACJjU,KAAM,YACNiuF,UAAW,wBACX1D,gBAAiB,CACfzI,UAAW,CACT2I,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV+hF,OAAQ,CACN0I,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGViuE,QAAS,CACPwc,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVi0E,IAAK,CACHyX,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WAGVu8E,IAAK,CACHmP,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVmsC,MAAO,CACLu/C,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,cAOHsiF,GAAgD,CAC3DruE,KAAM,CACJjU,KAAM,YACNiuF,UAAW,oBACX1D,gBAAiB,CACfzI,UAAW,CACT2I,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVuiF,KAAM,CACJkI,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV0rD,OAAQ,CACNggC,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVi0E,IAAK,CACHyX,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WAGVu8E,IAAK,CACHmP,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVmsC,MAAO,CACLu/C,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV4hF,UAAW,CACT6I,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVwD,MAAO,CACLkoF,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHioG,GAAoD,CAC/Dh0F,KAAM,CACJjU,KAAM,YACNiuF,UAAW,wBACX1D,gBAAiB,CACf9yB,OAAQ,CACNgzB,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHkoG,GAA2C,CACtDj0F,KAAM,CACJjU,KAAM,YACNiuF,UAAW,eACX1D,gBAAiB,CACf5K,aAAc,CACZ8K,eAAgB,gBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOH24E,GAA6C,CACxD1kE,KAAM,CACJjU,KAAM,YACNiuF,UAAW,iBACX1D,gBAAiB,CACfjK,SAAU,CACRmK,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVmsC,MAAO,CACLu/C,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,WAGVg3E,WAAY,CACVyT,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV63E,WAAY,CACV6T,YAAa,CACXG,iBAAkB,MAClBC,iBAAkB,GAEpBrB,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVu8E,IAAK,CACHmP,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVi0E,IAAK,CACHyX,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WAGV0rD,OAAQ,CACNggC,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVihG,IAAK,CACHvV,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVk6E,SAAU,CACRwR,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVqgF,SAAU,CACRoK,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOH07E,GAA+C,CAC1DznE,KAAM,CACJjU,KAAM,YACNiuF,UAAW,mBACX1D,gBAAiB,CACfrK,QAAS,CACPuK,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVmsC,MAAO,CACLu/C,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,WAGV5C,KAAM,CACJqtF,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV23E,UAAW,CACT+T,YAAa,CACXG,iBAAkB,MAClBC,iBAAkB,GAEpBrB,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV63E,WAAY,CACV6T,YAAa,CACXG,iBAAkB,MAClBC,iBAAkB,GAEpBrB,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVogF,QAAS,CACPsL,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGV0rD,OAAQ,CACNggC,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVihG,IAAK,CACHvV,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVk6E,SAAU,CACRwR,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVu8E,IAAK,CACHmP,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVi0E,IAAK,CACHyX,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WAGVqgF,SAAU,CACRoK,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHmoG,GAAyC,CACpDl0F,KAAM,CACJjU,KAAM,YACNiuF,UAAW,aACX1D,gBAAiB,CACfjhD,GAAI,CACFmhD,eAAgB,KAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHooG,GAAyC,CACpDn0F,KAAM,CACJjU,KAAM,YACNiuF,UAAW,aACX1D,gBAAiB,CACfrK,QAAS,CACPuK,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVmsC,MAAO,CACLu/C,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,WAGV5C,KAAM,CACJqtF,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV23E,UAAW,CACT+T,YAAa,CACXG,iBAAkB,MAClBC,iBAAkB,GAEpBrB,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV63E,WAAY,CACV6T,YAAa,CACXG,iBAAkB,MAClBC,iBAAkB,GAEpBrB,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVihG,IAAK,CACHvV,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVk6E,SAAU,CACRwR,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVu8E,IAAK,CACHmP,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVi0E,IAAK,CACHyX,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WAGVqgF,SAAU,CACRoK,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV2iF,QAAS,CACP+I,YAAa,CACXU,QAAS,IAAIp/E,OAAO,2BAEtBy9E,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHqoG,GAAuC,CAClDp0F,KAAM,CACJjU,KAAM,YACNiuF,UAAW,WACX1D,gBAAiB,CACf3H,KAAM,CACJ6H,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV63E,WAAY,CACV6T,YAAa,CACXG,iBAAkB,MAClBC,iBAAkB,GAEpBrB,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVihG,IAAK,CACHvV,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVk6E,SAAU,CACRwR,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVu8E,IAAK,CACHmP,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVi0E,IAAK,CACHyX,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WAGV6iF,SAAU,CACR4H,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVspC,GAAI,CACFmhD,eAAgB,KAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,gBAORrO,GAA0C,CACrD3rE,KAAM,CACJjU,KAAM,YACNiuF,UAAW,cACX1D,gBAAiB,CACfvqF,KAAM,CACJyqF,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV6/E,SAAU,CACR6L,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV2pD,QAAS,CACP+hC,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,WAChBx2E,KAAM,CAEJjU,KAAM,WAGVu8E,IAAK,CACHmP,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVi0E,IAAK,CACHyX,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WAGV0/E,UAAW,CACT+K,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVmsC,MAAO,CACLu/C,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,cAOHsoG,GAAuC,CAClDr0F,KAAM,CACJjU,KAAM,YACNiuF,UAAW,WACX1D,gBAAiB,CACfxK,OAAQ,CACN0K,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHy/E,GAA6C,CACxDxrE,KAAM,CACJjU,KAAM,YACNiuF,UAAW,iBACX1D,gBAAiB,CACf5K,aAAc,CACZ8K,eAAgB,gBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVu8E,IAAK,CACHmP,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVi0E,IAAK,CACHyX,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WAGV0/E,UAAW,CACT+K,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVmsC,MAAO,CACLu/C,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,cAOHigF,GAA2C,CACtDhsE,KAAM,CACJjU,KAAM,YACNiuF,UAAW,eACX1D,gBAAiB,CACfxK,OAAQ,CACN0K,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVu8E,IAAK,CACHmP,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVi0E,IAAK,CACHyX,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WAGV0/E,UAAW,CACT+K,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVmsC,MAAO,CACLu/C,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,cAOHggF,GAA6C,CACxD/rE,KAAM,CACJjU,KAAM,YACNiuF,UAAW,iBACX1D,gBAAiB,CACfxK,OAAQ,CACN0K,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVu/E,YAAa,CACXkL,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVu8E,IAAK,CACHmP,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVi0E,IAAK,CACHyX,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WAGV0/E,UAAW,CACT+K,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVmsC,MAAO,CACLu/C,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,cAOH8/E,GAA2C,CACtD7rE,KAAM,CACJjU,KAAM,YACNiuF,UAAW,eACX1D,gBAAiB,CACfxK,OAAQ,CACN0K,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVg/E,QAAS,CACP0M,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVw3E,SAAU,CACRiT,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,kBAKnBlP,UAAW,CACT2M,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVu8E,IAAK,CACHmP,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVi0E,IAAK,CACHyX,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WAGV0/E,UAAW,CACT+K,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVmsC,MAAO,CACLu/C,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,cAOHuoG,GAA0C,CACrDt0F,KAAM,CACJjU,KAAM,YACNiuF,UAAW,cACX1D,gBAAiB,CACf5Y,KAAM,CACJ8Y,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVyxE,KAAM,CACJia,YAAa,CACXG,iBAAkB,WAClBC,iBAAkB,GAEpBrB,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVwoG,UAAW,CACT9c,YAAa,CACXG,iBAAkB,WAClBC,iBAAkB,GAEpBrB,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVyoG,SAAU,CACR/c,YAAa,CACXG,iBAAkB,WAClBC,iBAAkB,GAEpBrB,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV0oG,YAAa,CACXje,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV2oG,QAAS,CACPle,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV4oG,cAAe,CACbld,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,iBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVmzE,UAAW,CACTsX,eAAgB,aAChBx2E,KAAM,CACJjU,KAAM,WAGVumG,YAAa,CACX9b,eAAgB,eAChBx2E,KAAM,CACJjU,KAAM,WAGVwmG,aAAc,CACZ/b,eAAgB,gBAChBx2E,KAAM,CACJjU,KAAM,WAGV6oG,WAAY,CACVpe,eAAgB,cAChBx2E,KAAM,CACJjU,KAAM,WAGV8oG,OAAQ,CACNre,eAAgB,UAChBx2E,KAAM,CACJjU,KAAM,cAOH26E,GAA6C,CACxD1mE,KAAM,CACJjU,KAAM,YACNiuF,UAAW,iBACX1D,gBAAiB,CACfhO,IAAK,CACHmP,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGV8gG,UAAW,CACTrW,eAAgB,aAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,gBAGfld,SAAU,CACR0Z,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVmsC,MAAO,CACLu/C,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,WAGVi0E,IAAK,CACHyX,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,cAOH46E,GAA4C,CACvD3mE,KAAM,CACJjU,KAAM,YACNiuF,UAAW,gBACX1D,gBAAiB,CACfxZ,SAAU,CACR0Z,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV6gF,MAAO,CACL4J,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV89E,SAAU,CACR4N,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGV+gG,SAAU,CACRtW,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,QAGf+S,YAAa,CACXvW,eAAgB,eAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,gBAGf1R,IAAK,CACHmP,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVi0E,IAAK,CACHyX,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WAGV8wE,SAAU,CACR2Z,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVmsC,MAAO,CACLu/C,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,cAOH06E,GAA+C,CAC1DzmE,KAAM,CACJjU,KAAM,YACNiuF,UAAW,mBACX1D,gBAAiB,CACfhK,YAAa,CACXkK,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVwgF,eAAgB,CACdiK,eAAgB,kBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV89E,SAAU,CACR4N,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGV8gG,UAAW,CACTrW,eAAgB,aAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,QAGfvO,UAAW,CACT+K,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVmsC,MAAO,CACLu/C,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,WAGVu8E,IAAK,CACHmP,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVi0E,IAAK,CACHyX,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WAGV63E,WAAY,CACV6T,YAAa,CACXG,iBAAkB,MAClBC,iBAAkB,GAEpBrB,eAAgB,cAChBx2E,KAAM,CACJjU,KAAM,cAOH66E,GAA8C,CACzD5mE,KAAM,CACJjU,KAAM,YACNiuF,UAAW,kBACX1D,gBAAiB,CACfrJ,QAAS,CACPuJ,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVq3D,SAAU,CACRozB,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVghG,YAAa,CACXvW,eAAgB,eAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,gBAGf1R,IAAK,CACHmP,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVi0E,IAAK,CACHyX,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WAGV+wE,SAAU,CACR0Z,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVmsC,MAAO,CACLu/C,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,cAOHo7E,GAA0C,CACrDnnE,KAAM,CACJjU,KAAM,YACNiuF,UAAW,cACX1D,gBAAiB,CACfzH,QAAS,CACP2H,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVu8E,IAAK,CACHmP,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVmsC,MAAO,CACLu/C,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,WAGVspC,GAAI,CACFmhD,eAAgB,KAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,gBAOR8a,GAAwC,CACnD90F,KAAM,CACJjU,KAAM,YACNiuF,UAAW,YACX1D,gBAAiB,CACfye,UAAW,CACTve,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,uBAGfgb,UAAW,CACTxe,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,uBAGfib,QAAS,CACPxd,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHmpG,GAAiD,CAC5Dl1F,KAAM,CACJjU,KAAM,YACNiuF,UAAW,qBACX1D,gBAAiB,CACf2c,QAAS,CACPxb,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,UAChBx2E,KAAM,CACJjU,KAAM,WAGVmnG,SAAU,CACRzb,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,WAChBx2E,KAAM,CACJjU,KAAM,cAOHopG,GAAiD,CAC5Dn1F,KAAM,CACJjU,KAAM,YACNiuF,UAAW,qBACX1D,gBAAiB,CACf8e,SAAU,CACR3d,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,WAChBx2E,KAAM,CACJjU,KAAM,WAGVspG,WAAY,CACV5d,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,aAChBx2E,KAAM,CACJjU,KAAM,cAOHupG,GAAoC,CAC/Ct1F,KAAM,CACJjU,KAAM,YACNiuF,UAAW,QACX1D,gBAAiB,CACfif,MAAO,CACL/e,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,aAKdkpG,QAAS,CACPze,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,gBASPypG,GAAqC,CAChDx1F,KAAM,CACJjU,KAAM,YACNiuF,UAAW,SACX1D,gBAAiB,CACfjU,OAAQ,CACNmU,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHs/E,GAAsC,CACjDrrE,KAAM,CACJjU,KAAM,YACNiuF,UAAW,UACX1D,gBAAiB,CACfhL,YAAa,CACXkL,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV0rD,OAAQ,CACNggC,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVu8E,IAAK,CACHmP,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVi0E,IAAK,CACHyX,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WAGV8wE,SAAU,CACR2Z,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVmsC,MAAO,CACLu/C,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,WAGViuE,QAAS,CACPwc,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOH0pG,GAA0C,CACrDz1F,KAAM,CACJjU,KAAM,YACNiuF,UAAW,cACX1D,gBAAiB,CACfnU,SAAU,CACRsV,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,WAChBx2E,KAAM,CACJjU,KAAM,WAGVmoF,UAAW,CACTuD,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,WAGV2pG,gBAAiB,CACfje,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,mBAChBx2E,KAAM,CACJjU,KAAM,WAGV4pG,OAAQ,CACNle,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,SAChBx2E,KAAM,CACJjU,KAAM,WAGVooF,QAAS,CACPsD,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,UAChBx2E,KAAM,CACJjU,KAAM,WAGVwlG,cAAe,CACb9Z,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,iBAChBx2E,KAAM,CACJjU,KAAM,WAGV6pG,eAAgB,CACdne,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,kBAChBx2E,KAAM,CACJjU,KAAM,WAGVg7D,MAAO,CACL0wB,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,cAOH8pG,GAAmD,CAC9Drf,eAAgB,uBAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,uBACXkE,WAAY,iBACZvC,yBAA0BuR,GAAeltF,KAAK27E,yBAC9CrF,gBAAiB,IACZ4W,GAAeltF,KAAKs2E,gBACvB1C,OAAQ,CACN4C,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV8nF,SAAU,CACR2C,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV63E,WAAY,CACV6T,YAAa,CACXG,iBAAkB,MAClBC,iBAAkB,GAEpBrB,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV0rD,OAAQ,CACNggC,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVihG,IAAK,CACHvV,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVk6E,SAAU,CACRwR,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVqgF,SAAU,CACRoK,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOH+pG,GAA8C,CACzDtf,eAAgB,kBAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,kBACXkE,WAAY,iBACZvC,yBAA0BuR,GAAeltF,KAAK27E,yBAC9CrF,gBAAiB,IACZ4W,GAAeltF,KAAKs2E,gBACvB53E,KAAM,CACJ83E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV0rD,OAAQ,CACNggC,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,cAOHgqG,GAAkD,CAC7Dvf,eAAgB,sBAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,sBACXkE,WAAY,iBACZvC,yBAA0BuR,GAAeltF,KAAK27E,yBAC9CrF,gBAAiB,IACZ4W,GAAeltF,KAAKs2E,gBACvB3Z,MAAO,CACL6Z,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV23E,UAAW,CACT+T,YAAa,CACXG,iBAAkB,MAClBC,iBAAkB,GAEpBrB,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV63E,WAAY,CACV6T,YAAa,CACXG,iBAAkB,MAClBC,iBAAkB,GAEpBrB,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV5C,KAAM,CACJqtF,eAAgB,OAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,aAGf7N,QAAS,CACPsL,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVqgF,SAAU,CACRoK,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHiqG,GAA+C,CAC1Dxf,eAAgB,mBAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,mBACXkE,WAAY,iBACZvC,yBAA0BuR,GAAeltF,KAAK27E,yBAC9CrF,gBAAiB,IACZ4W,GAAeltF,KAAKs2E,gBACvB53E,KAAM,CACJ83E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVwnF,GAAI,CACFiD,eAAgB,KAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV0rD,OAAQ,CACNggC,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,cAOHkqG,GAAiD,CAC5Dzf,eAAgB,qBAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,qBACXkE,WAAY,iBACZvC,yBAA0BuR,GAAeltF,KAAK27E,yBAC9CrF,gBAAiB,IACZ4W,GAAeltF,KAAKs2E,gBACvB/C,GAAI,CACFiD,eAAgB,KAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV0rD,OAAQ,CACNggC,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,cAOHmqG,GAAuD,CAClEl2F,KAAM,CACJjU,KAAM,YACNiuF,UAAW,2BACX1D,gBAAiB,IACZ4d,GAAWl0F,KAAKs2E,gBACnBvT,WAAY,CACVyT,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOT,IAAIqyF,GAAiB,CAC1B8O,eAAgBA,GAChB,sCAAuC2I,GACvC,iCAAkCC,GAClC,qCAAsCC,GACtC,kCAAmCC,GACnC,oCAAqCC,ICl7KhC,MAAME,GAA6B,CACxCnX,cAAe,SACf5H,OAAQ,CACNhN,aAAc,mBACdwO,YAAY,EACZpC,eAAgB,SAChBx2E,KAAM,CACJjU,KAAM,YAKCqqG,GAA+B,CAC1CpX,cAAe,QACf5H,OAAQ,CACNZ,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV26F,cAAc,GAGHgL,GAAgC,CAC3C1S,cAAe,SACf5H,OAAQ,CACNZ,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,YAKC45B,GAA8B,CACzCq5D,cAAe,OACf5H,OAAQ,CACNZ,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,YAKC0oD,GAAgC,CAC3CuqC,cAAe,SACf5H,OAAQ,CACNK,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,YAiBCA,GAA8B,CACzCizF,cAAe,OACf5H,OAAQ,CACNZ,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,YAKC06D,GAAkC,CAC7Cu4B,cAAe,CAAC,UAAW,eAC3B5H,OAAQ,CACNhN,aAAc,mBACdwO,YAAY,EACZpC,eAAgB,eAChBx2E,KAAM,CACJjU,KAAM,YAKC43D,GAA2B,CACtCq7B,cAAe,OACf5H,OAAQif,IA4EGC,GAA4B,CACvCtX,cAAe,OACf5H,OAAQmf,IC9FH,MAAMC,WAAaC,GAQxBppG,WAAAA,CAAY+oG,EAAet4E,GAA8B,IAAA4gD,EAAAg4B,EACvD,QAAc52F,IAAVs2F,EACF,MAAM,IAAIhtG,MAAM,0BAIb00B,IACHA,EAAU,CAAC,GAEb,MAIM64E,EAAiB,6BACjBroC,EACJxwC,EAAQ0wC,kBAAoB1wC,EAAQ0wC,iBAAiBF,gBACjD,GAAGxwC,EAAQ0wC,iBAAiBF,mBAAmBqoC,IAC/C,GAAGA,IAUT5rF,MAR4B,CAT1B49E,mBAAoB,qCAWjB7qE,EACH0wC,iBAAkB,CAChBF,mBAEFu6B,SAA6C,QAArCnqB,EAAkB,QAAlBg4B,EAAE54E,EAAQ+qE,gBAAQ,IAAA6N,EAAAA,EAAI54E,EAAQsoE,eAAO,IAAA1nB,EAAAA,EAAI,YAInDzvE,KAAKmnG,MAAQA,CACf,CAOA31B,kBAAAA,CACEixB,EACA5zE,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAEuI,SAAQ5zE,WACV84E,GAEJ,CASAp2B,yBAAAA,CACEkxB,EACA/rE,EACA7H,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAEuI,SAAQ/rE,OAAM7H,WAChB+4E,GAEJ,CAQAt2B,2BAAAA,CACEmxB,EACAj9C,EACA32B,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAEuI,SAAQj9C,SAAQ32B,WAClBg5E,GAEJ,CAQA1tB,mBAAAA,CACEsoB,EACA5zE,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAEuI,SAAQ5zE,WACVi5E,GAEJ,CAOAC,qCAAAA,CACEtF,EACA5zE,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAEuI,SAAQ5zE,WACVm5E,GAEJ,CAOAC,qBAAAA,CACEnrG,EACA+xB,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAEp9F,OAAM+xB,WACRq5E,GAEJ,CAOAC,kBAAAA,CACE1F,EACA5zE,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAEuI,SAAQ5zE,WACVu5E,GAEJ,CAOAp0B,WAAAA,CACEyuB,EACA5zE,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAEuI,SAAQ5zE,WACVw5E,GAEJ,CAOAt0B,eAAAA,CACE0uB,EACA5zE,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAEuI,SAAQ5zE,WACVy5E,GAEJ,CAOAC,cAAAA,CACE9F,EACA5zE,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAEuI,SAAQ5zE,WACV25E,GAEJ,CAMAC,WAAAA,CACE55E,GAEA,OAAO7uB,KAAKk6F,qBAAqB,CAAErrE,WAAW65E,GAChD,CAUA31B,kBAAAA,CACEre,EACA7lC,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAExlC,OAAM7lC,WACR85E,GAEJ,CAMA92B,oBAAAA,CACEhjD,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAErrE,WACF+5E,GAEJ,CAOA32B,mBAAAA,CACEv7C,EACA7H,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAExjE,OAAM7H,WACRg6E,GAEJ,CAOA72B,qBAAAA,CACExsB,EACA32B,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAE10C,SAAQ32B,WACVi6E,GAEJ,CAMAC,YAAAA,CACEl6E,GAEA,OAAO7uB,KAAKk6F,qBAAqB,CAAErrE,WAAWm6E,GAChD,CAQAC,YAAAA,CACEp6E,GAEA,OAAO7uB,KAAKk6F,qBAAqB,CAAErrE,WAAWq6E,GAChD,CAMAC,4BAAAA,CACEt6E,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAErrE,WACFu6E,GAEJ,CAMAC,kBAAAA,CACEx6E,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAErrE,WACFy6E,GAEJ,CAMAC,sBAAAA,CACE16E,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAErrE,WACF26E,GAEJ,CAMA94B,wBAAAA,CACE7hD,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAErrE,WACF46E,GAEJ,CAOAl3B,iBAAAA,CACE77C,EACA7H,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAExjE,OAAM7H,WACR66E,GAEJ,CAOAp3B,mBAAAA,CACE9sB,EACA32B,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAE10C,SAAQ32B,WACV86E,GAEJ,CAMAC,kBAAAA,CACE/6E,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAErrE,WACFg7E,GAEJ,CAOAp3B,yBAAAA,CACE/7C,EACA7H,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAExjE,OAAM7H,WACRi7E,GAEJ,CAOA33B,+BAAAA,CACEz7C,EACA7H,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAExjE,OAAM7H,WACRk7E,GAEJ,CAOAC,oCAAAA,CACEtzE,EACA7H,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAExjE,OAAM7H,WACRo7E,GAEJ,CAQAC,sCAAAA,CACExzE,EACAxQ,EACA2I,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAExjE,OAAMxQ,QAAO2I,WACfs7E,GAEJ,CAOAj2B,kBAAAA,CACEp3E,EACA+xB,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAEp9F,OAAM+xB,WACRu7E,GAEJ,CAOAC,sBAAAA,CACEC,EACAz7E,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAEoQ,WAAUz7E,WACZ07E,GAEJ,CAOA5vB,iBAAAA,CACE8nB,EACA5zE,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAEuI,SAAQ5zE,WACV27E,GAEJ,CAOAC,wBAAAA,CACEhI,EACA5zE,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAEuI,SAAQ5zE,WACV67E,GAEJ,CAQAC,gCAAAA,CACElI,EACAzkB,EACAnvD,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAEuI,SAAQzkB,UAASnvD,WACnB+7E,GAEJ,CAMAC,aAAAA,CACEh8E,GAEA,OAAO7uB,KAAKk6F,qBAAqB,CAAErrE,WAAWi8E,GAChD,CAMA3zB,kBAAAA,CACEtoD,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAErrE,WACFk8E,GAEJ,CAMAC,SAAAA,CAAUn8E,GACR,OAAO7uB,KAAKk6F,qBAAqB,CAAErrE,WAAWo8E,GAChD,CAMAC,YAAAA,CACEr8E,GAEA,OAAO7uB,KAAKk6F,qBAAqB,CAAErrE,WAAWs8E,GAChD,CAMAC,aAAAA,CACEv8E,GAEA,OAAO7uB,KAAKk6F,qBAAqB,CAAErrE,WAAWw8E,GAChD,CAOAC,eAAAA,CACE52C,EACA7lC,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAExlC,OAAM7lC,WACR08E,GAEJ,CAOA16B,oBAAAA,CACEn6C,EACA7H,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAExjE,OAAM7H,WACR28E,GAEJ,CAMAC,wBAAAA,CACE/0E,EACA7H,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAExjE,OAAM7H,WACR68E,GAEJ,EAGF,MAAM9gB,GAAa8D,GAAiBid,GAAqB,GAEnDhE,GAA4D,CAChEj7D,KAAM,wBACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,GAEX,IAAK,CACHw1B,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,GAAkBA,IAClC5Y,iBAAkB,CAAC4Y,IACnBhhB,eAEIgd,GAAmE,CACvEl7D,KAAM,oCACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,GAEX,IAAK,CACHw1B,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,GAAkBA,GAAmBA,IACrD5Y,iBAAkB,CAAC4Y,IACnBhhB,eAEIid,GAAqE,CACzEn7D,KAAM,wCACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,GAEX,IAAK,CACHw1B,WAAY2kB,GACZn6C,SAAS,GAEX,IAAK,CACHw1B,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,GAAkBA,GAAmBA,IACrD5Y,iBAAkB,CAAC4Y,IACnBhhB,eAEIkd,GAA6D,CACjEp7D,KAAM,mCACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,GAEX,IAAK,CACHw1B,WAAY2kB,GACZn6C,SAAS,IAGb6mC,gBAAiB,CDltB8B,CAC/CtI,cAAe,CAAC,UAAW,YAC3B5H,OAAQ,CACNhN,aAAc,MACdoM,eAAgB,WAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,MAAO,kBC4sB3BoN,cAAe,CAACuU,GAAkBA,IAClC5Y,iBAAkB,CAAC4Y,IACnBhhB,eAEIod,GACJ,CACEt7D,KAAM,6CACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,GAEX,IAAK,CACHw1B,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,GAAkBA,IAClC5Y,iBAAkB,CAAC4Y,IACnBhhB,eAEEsd,GAA+D,CACnEx7D,KAAM,sBACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,GAEX,IAAK,CACHw1B,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,GAAkBA,IAClC5Y,iBAAkB,CAAC4Y,IACnBhhB,eAEIwd,GAA4D,CAChE17D,KAAM,wBACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,GAEX,IAAK,CACHw1B,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,GAAkBA,IAClC5Y,iBAAkB,CAAC4Y,IACnBhhB,eAEIyd,GAAqD,CACzD37D,KAAM,yBACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,GAEX,IAAK,CACHw1B,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,GAAkBA,IAClC5Y,iBAAkB,CAAC4Y,IACnBhhB,eAEI0d,GAAyD,CAC7D57D,KAAM,8BACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,GAEX,IAAK,CACHw1B,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,GAAkBA,IAClC5Y,iBAAkB,CAAC4Y,IACnBhhB,eAEI4d,GAAwD,CAC5D97D,KAAM,6BACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,GAEX,IAAK,CACHw1B,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,GAAkBA,IAClC5Y,iBAAkB,CAAC4Y,IACnBhhB,eAEI8d,GAAqD,CACzDh8D,KAAM,eACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,KAGhBtU,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,IACnBhhB,eAEI+d,GAA4D,CAChEj8D,KAAM,cACN6pD,WAAY,OACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,GAEX,IAAK,CACHw1B,WAAY2kB,GACZn6C,SAAS,IAGb6Q,YAAaupC,GACbvU,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,GAAmBA,IACtC9X,UAAW,OACXlJ,eAEIge,GAA8D,CAClEl8D,KAAM,0BACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,IACnBhhB,eAEIie,GAA6D,CACjEn8D,KAAM,8BACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,GAEX,IAAK,CACHw1B,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,GAAkBA,IAClC5Y,iBAAkB,CAAC4Y,IACnBhhB,eAEIke,GAA+D,CACnEp8D,KAAM,kCACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,GAAkBA,IAClC5Y,iBAAkB,CAAC4Y,IACnBhhB,eAEIoe,GAAsD,CAC1Dt8D,KAAM,kBACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,IACnBhhB,eAEIse,GAAsD,CAC1Dx8D,KAAM,wBACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,IACnBhhB,eAEIwe,GAAsE,CAC1E18D,KAAM,2BACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,IACnBhhB,eAEI0e,GAA4D,CAChE58D,KAAM,yBACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,IACnBhhB,eAEI4e,GAAgE,CACpE98D,KAAM,8BACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,IACnBhhB,eAEI6e,GAAkE,CACtE/8D,KAAM,gCACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,IACnBhhB,eAEI8e,GAA2D,CAC/Dh9D,KAAM,6BACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,GAEX,IAAK,CACHw1B,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,GAAkBA,IAClC5Y,iBAAkB,CAAC4Y,IACnBhhB,eAEI+e,GAA6D,CACjEj9D,KAAM,iCACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,GAAkBA,IAClC5Y,iBAAkB,CAAC4Y,IACnBhhB,eAEIif,GAA4D,CAChEn9D,KAAM,yBACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,GAEX,IAAK,CACHw1B,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,IACnBhhB,eAEIkf,GAAmE,CACvEp9D,KAAM,sCACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,GAEX,IAAK,CACHw1B,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,GAAkBA,IAClC5Y,iBAAkB,CAAC4Y,IACnBhhB,eAEImf,GAAyE,CAC7Er9D,KAAM,4CACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,GAEX,IAAK,CACHw1B,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,GAAkBA,IAClC5Y,iBAAkB,CAAC4Y,IACnBhhB,eAEIqf,GACJ,CACEv9D,KAAM,kDACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,GAEX,IAAK,CACHw1B,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,GAAkBA,IAClC5Y,iBAAkB,CAAC4Y,IACnBhhB,eAEEuf,GACJ,CACEz9D,KAAM,0DACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,GAEX,IAAK,CACHw1B,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,GAAkBA,GDpmCM,CAC1C7b,cAAe,QACf5H,OAAQ,CACNK,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,aC4lCRk2F,iBAAkB,CAAC4Y,IACnBhhB,eAEEwf,GAA4D,CAChE19D,KAAM,mBACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,GAEX,IAAK,CACHw1B,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,GAAkBA,IAClC5Y,iBAAkB,CAAC4Y,IACnBhhB,eAEI2f,GAAgE,CACpE79D,KAAM,6BACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,GAEX,IAAK,CACHw1B,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,GD9nC6B,CAC7C7b,cAAe,WACf5H,OAAQ,CACNZ,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,aCynCVk2F,iBAAkB,CAAC4Y,IACnBhhB,eAEI4f,GAA2D,CAC/D99D,KAAM,uBACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,GAEX,IAAK,CACHw1B,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,GAAkBA,IAClC5Y,iBAAkB,CAAC4Y,IACnBhhB,eAEI8f,GAAkE,CACtEh+D,KAAM,+BACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,GAEX,IAAK,CACHw1B,WAAY2kB,GACZn6C,SAAS,IAGb6mC,gBAAiB,CD3pC+B,CAChDtI,cAAe,CAAC,UAAW,QAC3B5H,OAAQ,CACNZ,eAAgB,OAChBx2E,KAAM,CACJjU,KAAM,YAKkC,CAC5CizF,cAAe,CAAC,UAAW,SAC3B5H,OAAQ,CACNhN,aAAc,GACdqN,YAAa,CACXG,iBAAkB,IAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,YAKsC,CAChDizF,cAAe,CAAC,UAAW,QAC3B5H,OAAQ,CACNhN,aAAc,MACdoM,eAAgB,OAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,OAAQ,SAAU,WCgoCtCoN,cAAe,CAACuU,GAAkBA,IAClC5Y,iBAAkB,CAAC4Y,IACnBhhB,eAEIggB,GACJ,CACEl+D,KAAM,0CACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,GAEX,IAAK,CACHw1B,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,GAAkBA,GDhpCQ,CAC5C7b,cAAe,UACf5H,OAAQ,CACNZ,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,aC2oCRk2F,iBAAkB,CAAC4Y,IACnBhhB,eAEEkgB,GAAuD,CAC3Dp+D,KAAM,mBACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,KAGhBtU,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,IACnBhhB,eAEImgB,GAA4D,CAChEr+D,KAAM,wBACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY,CACVj2E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CAAEhkC,KAAM,CAAEjU,KAAM,YAAaiuF,UAAW,qBAIvD,IAAK,CACH/D,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,IACnBhhB,eAEIqgB,GAAmD,CACvDv+D,KAAM,aACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,KAGhBtU,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,IACnBhhB,eAEIugB,GAAsD,CAC1Dz+D,KAAM,wBACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY,CACVj2E,KAAM,CAAEjU,KAAM,WAAYi4C,QAAS,CAAEhkC,KAAM,CAAEjU,KAAM,eAIzDu6F,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,IACnBhhB,eAEIygB,GAAuD,CAC3D3+D,KAAM,kBACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,IACnBhhB,eAEI2gB,GAAyD,CAC7D7+D,KAAM,mBACN6pD,WAAY,OACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6Q,YAAaupC,GACbvU,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,GAAmBA,IACtC9X,UAAW,OACXlJ,eAEI4gB,GAA8D,CAClE9+D,KAAM,0BACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,GAEX,IAAK,CACHw1B,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,GAAkBA,IAClC5Y,iBAAkB,CAAC4Y,IACnBhhB,eAEI8gB,GAAkE,CACtEh/D,KAAM,+BACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,GAEX,IAAK,CACHw1B,WAAY2kB,GACZn6C,SAAS,GAEX,IAAK,CACHw1B,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,GAAkBA,IAClC5Y,iBAAkB,CAAC4Y,IACnBhhB,e,uYC37CmE,IAAAihB,GAAA,IAAA3hF,QAAA4hF,GAAA,IAAA5hF,QAAA6hF,GAAA,IAAA7hF,QAYtD,MAAMq9E,WAAayE,GAWhC5tG,WAAAA,CACEw1D,GACA,cACEyoC,GAAgB,EAAK,WACrB1iC,EAAa,EAAC,kBACd4iC,EAAoB,OACjB1tE,GAKD,CAAC,GAKL/S,MAAM83C,EAAK,CACT6N,yBAAyB,EACzBw4B,mBAAoB,CAClBkC,GAAsB,QANP9nC,gBACVr0D,KAAKisG,iBAAiBpX,IAAOwO,aAKQ,QAAS,QAAShH,GAC5Db,KACAI,KACAU,GAAwB3iC,EAAY4iC,GACpCL,IAAyBxnC,GACvB,CAAC,IAAKA,EAAKsQ,OAA0B,MAAlBtQ,EAAKyoC,UAAoB,GAAK,KAAKzoC,EAAKyoC,cAAcpjG,KAAK,UAG/E80B,IArCP4yD,GAAA,KAASoqB,QAAc,GA+CvBpqB,GAAA,KAAAqqB,QAAoB,GAoBpBrqB,GAAA,KAAAsqB,QAAoB,GA5BlBrqB,GAAKmqB,GAAL7rG,KAAsBq8F,GACtBr8F,KAAK6sD,SAASb,UAAUsvC,GAAmB,CAAEpvC,MAAO,gBACpDlsD,KAAK6sD,SAAST,aAAa,CAAEtvD,KAAMu5D,KACnCr2D,KAAK6sD,SAAST,aAAa,CAAEtvD,KAAMi/D,KAEnC/7D,KAAK6sD,SAAST,aAAa,CAAEtvD,KAAM,sBACrC,CAIA,sBAAMmvG,CAAiBp9E,GACrB,OAAiC,MAA7B0yD,GAAKuqB,GAAL9rG,MAA0CuhF,GAAKuqB,GAAL9rG,MACvCA,KAAKgrG,UAAUn8E,EACxB,CAEA,eAAem8E,IACVhqG,GAEH,MAAMkrG,EAAUpwF,MAAMkvF,aAAahqG,GAOnC,OANAkrG,EAAQ/Z,MACN,KACEzQ,GAAKoqB,GAAL9rG,KAA4BksG,EAAH,IAE3B,SAEKA,CACT,CAIA,mBAAM/7B,GACJ,OAAiC,MAA7BoR,GAAKwqB,GAAL/rG,OACJ0hF,GAAKqqB,GAAL/rG,KAA4BA,KAAKmpG,6BAA6B,CAC5D/V,eAAgB,CAAED,cAAe,CAAE,aAAc,WAChDhB,MACD,KAAM,IACLl9E,IACC,GAAsB,mDAAlBA,EAAMiH,QAA8D,MAAMjH,EAC9E,OAAO,CAAK,KAP8BssE,GAAKwqB,GAAL/rG,KAWhD,CAMA,kBAAMkwE,GACJ,aAAclwE,KAAKisG,oBAAoBh8B,SACzC,CAEA,iBAAMmF,GACJ,MAAM,YACJiuB,EACApzB,UAAWk8B,EAAa,UACxB1gE,EAAS,eACTm4D,SACQ5jG,KAAKgrG,YAET91B,EAA2BzpC,EAC9B+C,QAAO,EAAGs1D,uBAAwBF,GAAkBE,IACpDllF,QAAO,CAACm8E,EAAKz4F,IAAOA,EAAEwhG,kBAAoB/I,EAAI+I,kBAAoBxhG,EAAIy4F,GAAM,CAC3E+I,mBAAoB,EACpBlxE,QAAS,IACRA,QACL,GAA0D,MAAtDy6C,GAAyB6H,GAAmC,CAC9D,MAAMtiD,EAAUsiD,EAAyB72E,WACnCw0B,EAAW1jB,OAAOiqC,OAAOi0B,IAC5B7+B,QAAQjB,GAAqB,iBAAPA,IACtB1hC,KAAK0hC,IAAQA,IACVwY,EAAYnrD,KAAKgC,OAAOi2B,GAAUx0B,WAClC2nD,GAAaprD,KAAKiC,OAAOg2B,GAAY,GAAGx0B,WACxC4W,EAAQ,IAAI4wC,GAChB,qBACAjzB,EACAmzB,EACAC,GAEF,IAAIu7B,GAAKsqB,GAAL7rG,MACC,MAAMiV,EADcvH,QAAQ+W,KAAKxP,EAAMiH,QAE9C,CAEA,MAAO,CACL03C,IAAK5zD,KAAKmnG,MACVgF,gBACAv5E,QAASywE,EACTnuB,2BAEJ,EChJa,SAASk3B,GACtB/jD,GAEA,MAAMse,EAASmR,GAASzvB,GACxB,OAAQse,EAAOz6B,KACb,KAAKshC,GAAIkO,SACP,OAAO0wB,GAA4Br0B,GAAQpR,EAAOwR,YACpD,KAAK3K,GAAIkI,SACP,OAAO/O,EAAO+Y,KAIlB,MAAMz2C,EAAQ42C,GAAUlZ,EAAOz6B,IAAKy6B,EAAO/zC,SAAS+b,MAAK,EAAE7xC,KAAmB,UAATA,MAAoB,GACzF,GAAa,MAATmsC,EACF,MAAM,IAAIwb,EAAiB,mCAAmC+oB,GAAI7G,EAAOz6B,QAC3E,KAAM,cAAejD,GAAQ,MAAM,IAAIkd,GAEvC,OADgBwgB,EAAO19B,EAAMixC,WACd/5E,QAAQ,OAAQ,MACjC,CCRe,MAAeksG,ICpB9B,MAAMC,WAAyBnyG,MAC3B,WAAAiE,CAAY8d,GACRJ,MAAMI,GACNlc,KAAKlD,KAAO,kBAChB,EAGJ,UCPA,MAoBMyvG,GAAiB/+F,IACZ,CAAC1Q,KAAM,QAAS0Q,SAuBrBg/F,GAAwB,CAACC,EAAcC,KAClC,CACH5vG,KAAM,gBACN2vG,eACAC,eAIFC,GAA6B,CAACF,EAAcC,KACvC,CACH5vG,KAAM,kBACN2vG,eACAC,eAQFE,GAAgBC,IACX,CACH/vG,KAAM,OACN+vG,eAIFC,GAAgB,CAACC,EAAa,MACzB,CACHjwG,KAAM,QACNiwG,eAIFC,GAAiB,CAACjuF,EAAMguF,KACnB,CACHjwG,KAAM,SACNiiB,OACAguF,eAIFE,GAAeJ,IACV,CACH/vG,KAAM,MACN+vG,eAIFK,GAAc,CAACC,EAAS7hB,KACnB,CACHxuF,KAAM,MACNqwG,UACA7hB,cAIF8hB,GAAmBC,IACd,CACHvwG,KAAM,UACNuwG,aAoBFC,GAAmB,IAMdF,GALU,CACb,CAACjP,YAAa,CAzHX,CAACrhG,KAAM,SA0HV,CAACywG,SAAU,CA1HR,CAACzwG,KAAM,WA6KZ0wG,GAAsB,IAQjBJ,GAPU,CACb,CAAC,iBAAkB,CAnJhB,CAACtwG,KAAM,oBAoJV,CAAC,gBAAiB,CApJf,CAACA,KAAM,oBAqJV,CAAC,kBAAmB,CArJjB,CAACA,KAAM,oBAsJV,CAAC,iBAAkB,CAtJhB,CAACA,KAAM,sBA4JZ2wG,GAAwB,KAC1B,MAAMJ,EAAW,CACb,CAAC,mBAAoB,CA9JlB,CAACvwG,KAAM,oBA+JV,CAAC,kBAAmB,CA/JjB,CAACA,KAAM,oBAgKV,CAAC,oBAAqB,CAhKnB,CAACA,KAAM,oBAiKV,CAAC,mBAAoB,CAjKlB,CAACA,KAAM,oBAkKV,CAAC,gBAAiB,CAACyvG,QAGvB,OAAOa,GAAgBC,EAAQ,EAuD7BK,GAAe9sG,IACV,CACH9D,KAAM,OACN8D,OC9BR,OA7LA,MACI,YAAA+sG,GACI,OAAO,CACX,CAEA,cAAAC,CAAe78F,EAAMg8F,GACjB,MAAO,CAACh8F,EAAMg8F,EAClB,CAEA,iBAAAc,CAAkBd,EAAYe,GAC1B,OAAK7zG,MAAM+W,QAAQ+7F,GAIZA,EAAWlhG,KAAIjM,IAClB,MAAMmuG,EAAMnuG,EAAE2C,eAAe,QAAU3C,EAAEmR,KAAOnR,EAC1CsI,EAAI4lG,EAAKvrG,eAAewrG,GAAOD,EAAKC,GAAOA,EAEjD,OAAO/tG,KAAKguG,YAAY9lG,EAAG4lG,EAAI,IAPxB,EASf,CAEA,WAAAE,CAAYj9F,EAAM+8F,EAAO,CAAC,GACtB,IAAIzhG,EAAM0E,EACNg8F,EAAa,GACbkB,EAAgB,GA7BX,IAACv+F,EAmCV,IAnCUA,EA+BGqB,IA9BgB,iBAAVrB,GAAsBA,EAAMtR,cAAgB+Q,WA+BzD9C,EAAK0gG,IAAe59F,OAAOgqC,QAAQpoC,IAGrC/Q,KAAK2tG,aAAathG,GAAM,CACxB,MAAO6hG,EAASC,GAAYnuG,KAAK4tG,eAAevhG,EAAK0gG,GAErD,OAAO/sG,KAAKguG,YAAYE,EAASC,EACrC,CAOA,GAJY,YAAR9hG,IACA4hG,EAAgBjuG,KAAK6tG,kBAAkBd,EAAYe,IAG3C,SAARzhG,EACA,MD/ED,CAACvP,KAAM,QCkFV,GAAY,SAARuP,EACA,OAAOygG,GAAc,IAGzB,GAAY,QAARzgG,EACA,MDnFD,CAACvP,KAAM,OCsFV,GAAY,SAARuP,EACA,MDnFD,CAACvP,KAAM,QCsFV,GAAY,WAARuP,EACA,MDnFD,CAACvP,KAAM,UCsFV,GAAY,SAARuP,EACA,MDnFD,CAACvP,KAAM,QCsFV,GAAY,SAARuP,EACA,MD/ED,CAACvP,KAAM,QCkFV,GAAY,cAARuP,EACA,MD/ED,CAACvP,KAAM,aCkFV,GAAY,YAARuP,EACA,MD/ED,CAACvP,KAAM,kBCkFV,GAAY,oBAARuP,EACA,MD/ED,CAACvP,KAAM,mBCkFV,GAAY,cAARuP,EACA,OAAOihG,KAGX,GAAY,qBAARjhG,EACA,ODcD+gG,GAJU,CACb,CAAC,iBAAkB,CAtGhB,CAACtwG,KAAM,kBA5BP,CAACA,KAAM,WC0HV,GAAY,wBAARuP,EACA,ODkBD+gG,GAJU,CACb,CAAC,oBAAqB,CA9GnB,CAACtwG,KAAM,kBA5BP,CAACA,KAAM,WC8HV,GAAY,kBAARuP,EACA,OD2CD+gG,GAzBU,CACb,CAAC,gBAAiB,CAtHf,CAACtwG,KAAM,kBA5BP,CAACA,KAAM,OAQP,CAACA,KAAM,YA2IV,CAAC,yBAA0B,IAC3B,CAAC,sBAAuB,IACxB,CAAC,yBAA0B,IAC3B,CAAC,uBAAwB,IACzB,CAAC,uBAAwB,IACzB,CAAC,oBAAqB,CAhJnB,CAACA,KAAM,YAiJV,CAAC,qBAAsB,CArIpB,CAACA,KAAM,UAsIV,CAAC,qBAAsB,CAtIpB,CAACA,KAAM,UAuIV,CAAC,uBAAwB,CA/HtB,CAACA,KAAM,kBARP,CAACA,KAAM,UAwIV,CAAC,wBAAyB,CAhIvB,CAACA,KAAM,oBAiIV,CAAC,yBAA0B,CAjIxB,CAACA,KAAM,kBA5BP,CAACA,KAAM,SA8JV,CAAC,0BAA2B,CAlIzB,CAACA,KAAM,kBA5BP,CAACA,KAAM,SA+JV,CAAC,+BAAgC,CAnI9B,CAACA,KAAM,oBAoIV,CAAC,6BAA8B,CApI5B,CAACA,KAAM,oBAqIV,CAAC,2BAA4B,CArI1B,CAACA,KAAM,oBAsIV,CAAC,uBAAwB,CAtItB,CAACA,KAAM,oBAuIV,CAAC,wBAAyB,CAvIvB,CAACA,KAAM,oBAwIV,CAAC,8BAA+B,CAxI7B,CAACA,KAAM,oBAyIV,CAAC,yBAA0B,CAzIxB,CAACA,KAAM,oBA0IV,CAAC,uBAAwB,CA1ItB,CAACA,KAAM,kBA5BP,CAACA,KAAM,SAuKV,CAAC,mBAAoB,MCrCrB,GAAY,iBAARuP,EACA,OAAOmhG,KAGX,GAAY,mBAARnhG,EACA,OAAOohG,KAGX,GAAY,cAARphG,EACA,MDyDa,MACrB,MAAMghG,EAAW,CAAC,CACd,YAAa,CA1KV,CAACvwG,KAAM,kBA4KNwwG,KACAJ,GAjMD,CAACpwG,KAAM,UAiMwB0wG,SAItC,OAAOJ,GAAgBC,EAAQ,EClEhBe,GAGX,GAAY,gBAAR/hG,EACA,MDiEe,MACvB,MAAMghG,EAAW,CAAC,CACd,cAAe,CAtLZ,CAACvwG,KAAM,kBAwLNwwG,KACAJ,GA7MD,CAACpwG,KAAM,UA6MwB2wG,SAItC,OAAOL,GAAgBC,EAAQ,EC1EhBgB,GAGX,GAAY,YAARhiG,EACA,OAAO4gG,MAAegB,GAG1B,GAAY,qBAAR5hG,EACA,MD8ED,CAACvP,KAAM,gBC3EV,GAAY,qBAARuP,EACA,MD8ED,CAACvP,KAAM,gBC3EV,GAAY,UAARuP,EACA,OAAOkgG,GAA6B,QAAfQ,OAAuBl8F,EAAYk8F,GAG5D,GAAY,SAAR1gG,EACA,OAAOugG,MAAgBqB,GAG3B,GAAY,QAAR5hG,EACA,OAAO6gG,MAAee,GAM1B,IAAa,UAAR5hG,GAA2B,WAARA,IAA8C,IAAzB4hG,EAAc10G,OACvD,OAAO00G,EAAc,GAGzB,GAAY,UAAR5hG,EACA,OAAOygG,GAAcmB,GAGzB,GAAY,WAAR5hG,EAAkB,CAClB,MAAM0S,EAAOguF,EAAWlhG,KAAIpP,GAAKA,EAAEK,OAEnC,OAAOkwG,GAAejuF,EAAMkvF,EAChC,CAEA,GAAY,YAAR5hG,EACA,OAAOrM,KAAKsuG,eAAevB,EAAYe,GAG3C,GAAY,WAARzhG,EACA,MDlFW,CAAC0gG,GAMbK,GALU,CACb,CAAEmB,KAAM,IACR,CAAEC,KAAMzB,KC+EG0B,CAAeR,GAG1B,GAAY,WAAR5hG,EACA,OAAOmgG,MAAyByB,GAGpC,GAAY,iBAAR5hG,EACA,OAAOsgG,MAA8BsB,GAGzC,MAAM,IAAI,GAAiB,wBAA0BvvF,KAAKC,UAAU5N,GACxE,CAEA,cAAAu9F,CAAevB,EAAYe,GACvB,MAAMT,EAAWN,EAAWlhG,KAAIpP,IAC5B,OAAQiyG,EAAS1tG,IAASmO,OAAOgqC,QAAQ18C,GACnCkyG,EAAe3tG,EAAK6K,KAAIjM,IAC1B,MAAMsI,EAAI4lG,EAAKvrG,eAAe3C,GAAKkuG,EAAKluG,GAAKA,EAC7C,OAAOI,KAAKguG,YAAY9lG,EAAG4lG,EAAI,IAGnC,MAAO,CAAC,CAACY,GAAUC,EAAY,IAGnC,OAAOvB,GAAgBC,EAC3B,GClMJ,GA3BA,MACI,WAAAjvG,GACI4B,KAAK4uG,kBAAoB,IAAI,EACjC,CAmBA,WAAAZ,CAAYj9F,EAAM+8F,EAAO,CAAC,GACtB,OAAO9tG,KAAK4uG,kBAAkBZ,YAAYj9F,EAAM+8F,EACpD,GC1BJ,MAAM,WAAsB3zG,MACxB,WAAAiE,CAAY8d,GACRJ,MAAMI,GACNlc,KAAKlD,KAAO,eAChB,EAGJ,UCCA,GANe,CAAC+xG,EAAW3yF,KACvB,IAAK2yF,EACD,MAAM,IAAI,GAAc3yF,EAC5B,ECDJ,GAAe/M,OAAO2/F,OAAO,CACzBC,UAAsB,EAEtBC,YAAe,EACfC,aAAqB,EAErBC,WAAmB,EAOnBC,aAAe,EACfC,aAAe,GACfC,UAAe,GACfC,WAAe,GACfC,YAAe,GACfC,UAAe,GACfC,SAAe,IACfC,YAAe,IACfC,aAAe,IACfC,WAAe,IACfC,wBAAyB,IAIzBC,SAAe,IACfC,SAAe,IAEfC,WAAe,GACfC,YAAmB,GAEnBC,UAAe,GACfC,IAAe,GACfC,YAAe,GACfC,SAAe,GACfC,aAAe,GACfC,YAAe,IACfC,MAAe,IACfC,mBAAoB,IACpBC,OAAe,IACfC,QAAe,IACfC,OAAe,IACfC,SAAe,IACfC,UAAe,IACfC,YAAe,IACfC,KAAe,IAGfC,cAAsB,EACtBC,YAAsB,EACtBC,eAAsB,EACtBC,aAAsB,EACtBC,mBAAsB,EACtBC,cAAsB,IC3D1B,MAAMC,WAAwBp3G,MAC1B,WAAAiE,CAAYc,GACR4c,MAAM,0BAA4B5c,EAAOb,SAAS,GAAGm2B,SAAS,EAAG,MAEjEx0B,KAAKlD,KAAO,kBACZkD,KAAKd,OAASA,CAClB,EAGJ,UCaA,MAAMsyG,GAAe,CACjB,CAACC,GAAQR,ePUF,CAACn0G,KAAM,kBOTd,CAAC20G,GAAQP,aAAc3E,KACvB,CAACkF,GAAQN,gBPYF,CAACr0G,KAAM,mBOXd,CAAC20G,GAAQL,cAAe5E,KACxB,CAACiF,GAAQJ,oBAAqB1E,KAC9B,CAAC8E,GAAQH,ePaF,CAACx0G,KAAM,YOmElB,OA7EA,MACI,UAAA40G,CAAWzgG,GACP,MAAMi7B,EAAMj7B,EAAK,GAEjB,GAAIi7B,IAAQulE,GAAQT,MAAQ9kE,IAAQulE,GAAQjB,MACxC,MP3BD,CAAC1zG,KAAM,QO8BV,IAAW,EAANovC,KAAgBulE,GAAQ1C,WACtB7iE,IAAQulE,GAAQlB,aAChBrkE,IAAQulE,GAAQV,YAEnB,MPtCD,CAACj0G,KAAM,OOyCV,IAAW,EAANovC,KAAgBulE,GAAQxC,cACtB/iE,IAAQulE,GAAQzC,aAChB9iE,IAAQulE,GAAQnB,aAEnB,MPrCD,CAACxzG,KAAM,UOwCV,IAAW,GAANovC,KAAgBulE,GAAQvC,YAAchjE,IAAQulE,GAAQvB,UACvD,OAAOtD,KAGX,IAAW,GAAN1gE,KAAgBulE,GAAQxB,aACtB/jE,IAAQulE,GAAQzB,YAChB9jE,IAAQulE,GAAQrB,YAEnB,OAAOtD,KAGX,GAAI5gE,IAAQulE,GAAQtB,KAAOjkE,IAAQulE,GAAQX,UACvC,OAAO5D,KAGX,GAAIhhE,IAAQulE,GAAQpB,UAAYnkE,IAAQulE,GAAQZ,SAC5C,MPpDD,CAAC/zG,KAAM,QOuDV,GAAIovC,IAAQulE,GAAQd,QAChB,OAAOvD,KAGX,GAAIlhE,IAAQulE,GAAQf,OAAQ,CACxB,MAAMruG,EAAM4O,EAAK,GAGjB,OAFA,GAAOugG,GAAajvG,eAAeF,GAAM,4BAA4BA,MAE9DmvG,GAAanvG,EACxB,CAEA,GAAI6pC,IAAQulE,GAAQhB,mBAChB,MPsKD,CAAC3zG,KAAM,sBOnKV,GAAIovC,IAAQulE,GAAQtC,cACbjjE,IAAQulE,GAAQrC,cAChBljE,IAAQulE,GAAQpC,WAChBnjE,IAAQulE,GAAQnC,YAChBpjE,IAAQulE,GAAQlC,aAChBrjE,IAAQulE,GAAQjC,WAChBtjE,IAAQulE,GAAQhC,UAChBvjE,IAAQulE,GAAQ/B,aAChBxjE,IAAQulE,GAAQ9B,cAChBzjE,IAAQulE,GAAQ7B,YAChB1jE,IAAQulE,GAAQ5B,yBAChB3jE,IAAQulE,GAAQ3B,UAChB5jE,IAAQulE,GAAQ1B,SAEnB,MPQD,CACHjzG,KAAM,OACNiU,KAHcA,WOJd,MAAM,IAAI,GAAgBm7B,EAC9B,GCzFJ,GAdA,MACI,WAAA9tC,CAAYtB,GACRkD,KAAKlD,KAAOA,CAChB,CAEA,OAAAwB,GACI,MAAM,IAAI,GAAc,mBAC5B,CAEA,MAAA4oG,CAAOyK,GACH,OAAOA,EAAQC,UAAU5xG,KAC7B,GCbJ,MAAM6xG,WAAwB13G,MAC1B,WAAAiE,CAAY8d,GACRJ,MAAMI,GACNlc,KAAKlD,KAAO,iBAChB,EAGJ,UCeA,GApBA,MACI,WAAAsB,CAAY0zG,GACR9xG,KAAK8xG,iBAAmBA,CAC5B,CAEA,SAAAtzF,CAAUuzF,GACN,MAAM,IAAI,GAAgB,mBAC9B,CAEA,WAAA18B,CAAYpkE,EAAM+gG,GACd,MAAOtiG,EAAOuiG,GAASjyG,KAAKkyG,kBAAkBjhG,EAAM+gG,GAEpD,OAAOtiG,CACX,CAEA,iBAAAwiG,CAAkBH,EAAOI,GACrB,MAAM,IAAI,GAAgB,mBAC9B,GCnBJ,MAAMC,GAAiB1iG,IACnB,MAAM2iG,EAASv7F,OAAOpH,GAEtB,OAAI2iG,EAAS,KACF,IAAIr4G,WAAW,CAAC+Y,OAAOs/F,KAG3B,IAAIr4G,WAAW,IACfo4G,GAAcC,GAAU,IAC3Bt/F,OAAgB,MAATs/F,IACV,EAGCC,GAAuBrhG,GAClB,IAAIA,GAAMpF,KAAI3P,GAAKA,EAAEmC,SAAS,IAAIm2B,SAAS,EAAG,OAGnD+9E,GAAiBthG,IACnB,GAAoB,IAAhBA,EAAK1X,OACL,OAAO,GAGX,MAAMu2B,EAAMwiF,GAAoBrhG,GAEhC,OAAO6F,OAAO,KAAOgZ,EAAI/1B,KAAK,IAAG,EAS/By4G,GAAiBvhG,GACZqhG,GAAoBrhG,GAAMlX,KAAK,IClC1C,MAAM04G,WAAoBt4G,MACtB,WAAAiE,CAAY8d,GACRJ,MAAMI,GACNlc,KAAKlD,KAAO,aAChB,EAGJ,UCPA,MAAM41G,WAAsBv4G,MACxB,WAAAiE,CAAY2S,EAAMmL,GACdJ,MAAMI,GACNlc,KAAKlD,KAAO,gBACZkD,KAAK+Q,KAAOA,CAChB,EAGJ,UC2DA,GAjCA,cAAwB,GACpB,WAAA3S,CAAYsR,EAAOlC,EAAM1Q,EAAO,SAK5B,GAJAgf,MAAMhf,GAENkD,KAAK+4E,OAhCO,EAACrpE,EAAOlC,EAAO,KAC/B,GAAIvT,MAAM+W,QAAQtB,IAAUO,YAAYC,OAAOR,GAC3C,OAAO,IAAI1V,WAAW0V,GAG1B,GAAqB,iBAAVA,EACP,MCPqB,CAACxS,IAC1B,MAAMmuB,EAAQnuB,EAAImuB,MAAM,uBACxB,IAAKA,EACD,MAAM,IAAI,GAAY,uBAAuBnuB,KAGjD,OAAO,IAAIlD,WAAWqxB,EAAM,GACvB/hB,MAAM,YACNklC,QAAOjB,GAAMA,IACb1hC,KAAI0hC,GAAMp6B,SAASo6B,EAAI,MAAI,EDFrB,CAAqB79B,GAGhC,GAAqB,iBAAVA,IAAuBqD,OAAOhM,UAAU2I,GAC/C,MAAM,IAAI,GACN,aACA,yEAAyEA,aAIjF,MAAMrC,EAAQ+kG,GAAc1iG,GAC5B,GAAIrC,EAAM9T,QAAUiU,EAChB,OAAOH,EAIX,MAAMslG,EAAY,IAAI34G,WAAWwT,GAGjC,OAFAmlG,EAAUvwG,IAAIiL,EAAOG,EAAOH,EAAM9T,QAE3Bo5G,GAOWh6G,CAAY+W,EAAOlC,GAE7BA,GAAQxN,KAAK+4E,OAAO1gF,aAAemV,EACnC,MAAM,IAAI,GACN1Q,EACA,uBAAuBkD,KAAK+4E,OAAO1gF,+BAA+BmV,WAI1ExN,KAAK4yG,MAAQplG,CACjB,CAEA,SAAIkC,GACA,OAAO1P,KAAK+4E,MAChB,CAEA,QAAIvrE,GACA,OAAOxN,KAAK4yG,KAChB,CAEA,QAAI7hG,GACA,OAAOw7F,GAAcvsG,KAAK4yG,MAC9B,CAEA,OAAAt0G,GACI,OAAO0B,KAAK+4E,MAChB,GE9CJ,GAhBA,cAA0B,GACtB,WAAA36E,CAAYsR,EAAO5S,EAAMoC,GACrB4c,MAAMpM,EAAO,GAAI5S,GAEjBkD,KAAK6yG,QAAU3zG,CACnB,CAEA,UAAIA,GACA,OAAOc,KAAK6yG,OAChB,CAEA,MAAA3L,CAAOyK,GACH,OAAOA,EAAQmB,aAAa9yG,KAChC,GCFJ,GAVA,cAAiC,GAC7B,WAAA5B,CAAYsR,GACRoM,MAAMpM,EAAO,iBAAkB,KACnC,CAEA,QAAIqB,GACA,MjBwBG,CAACjU,KAAM,iBiBvBd,GCeJ,GApBA,cAAgC,GAC5B,SAAA0hB,CAAUvN,GACN,MAAO,CACHwgG,GAAQf,OACRe,GAAQR,iBACL,UAAWhgG,EAAKvB,OAE3B,CAEA,iBAAAwiG,CAAkBjhG,GACd,MAAMX,EAAS,IAAItW,WAAWiX,GACxB8iB,EAAU,UAAWzjB,EAAOtU,MAAM,IAAI,GAE5C,MAAO,CACH,IAAI,GAAmB+3B,EAAQ9iB,MAC/B,IAAIjX,WAAW+5B,EAAQE,WAE/B,GCnBG,SAAS,GAAOvkB,GACnB,OAAO,IAAI1V,WAAW,UAAWo4G,GAAc1iG,IACnD,CAEO,SAAS,GAAOY,GACnB,MAAMyjB,EAAU,UAAWzjB,GAAQ,GACnC,MAAO,CAACiiG,GAAcx+E,EAAQ9iB,MAAO8iB,EAAQE,UACjD,CCaA,OApBA,cAAuB,GACnB,WAAA71B,CAAYsR,GACRoM,MAAM,QAEN9b,KAAK+4E,OAASjiE,OAAOpH,EACzB,CAEA,QAAIqB,GACA,MpBMG,CAACjU,KAAM,OoBLd,CAEA,SAAI4S,GACA,OAAO1P,KAAK+4E,MAChB,CAEA,OAAAz6E,GACI,OAAO0B,KAAK+4E,MAChB,GChBJ,GAJa9rE,GACFA,EAAM,EAAIA,GAAa,GAAPA,EC2B3B,GAtBA,cAA6B,GACzB,SAAAuR,CAAUvN,GAGN,MAAO,CAFQA,EAAKvB,OAAS,EAAI+hG,GAAQpB,SAAWoB,GAAQZ,YAIrD,GAAc,GAAI5/F,EAAKvB,QAElC,CAEA,iBAAAwiG,CAAkBjhG,GACd,MAAMX,EAAS,IAAItW,WAAWiX,GACxBjN,EAAOsM,EAAO,KAAOmhG,GAAQpB,SAAW,IAAM,IAC7Cx3G,EAAGo7B,GAAa,GAAc3jB,EAAOtU,MAAM,IAElD,MAAO,CACH,IAAI,GAASnD,EAAImL,GACjB,IAAIhK,WAAWi6B,GAEvB,GCFJ,GApBA,cAAuB,GACnB,WAAA71B,CAAYsR,GACRoM,MAAM,QAEN9b,KAAK+4E,SAAWrpE,CACpB,CAEA,SAAIA,GACA,OAAO1P,KAAK+4E,MAChB,CAEA,QAAIhoE,GACA,MvBNG,CAACjU,KAAM,OuBOd,CAEA,OAAAwB,GACI,OAAO0B,KAAK+4E,MAChB,GCOJ,GAtBA,cAA6B,GACzB,SAAAv6D,CAAUvN,GACN,OAA2B,IAAnBA,EAAK3S,UAAsB,CAACmzG,GAAQT,MAAQ,CAACS,GAAQjB,MACjE,CAEA,iBAAA0B,CAAkBjhG,GACd,MAAMX,EAAS,IAAItW,WAAWiX,GACxB/R,EAASoR,EAAO,GAChByiG,EAAOziG,EAAOtU,MAAM,GAE1B,GAAIkD,IAAWuyG,GAAQT,KACnB,MAAO,CAAC,IAAI,IAAS,GAAO+B,GAGhC,GAAI7zG,IAAWuyG,GAAQjB,MACnB,MAAO,CAAC,IAAI,IAAS,GAAQuC,GAGjC,MAAM,IAAI,GAAgB7zG,EAC9B,GCDJ,GApBA,cAA4B,GACxB,WAAAd,CAAYsR,EAAQ,IAChBoM,MAAM,cAEN9b,KAAK+4E,OAAS,IAAI/+E,WAAW0V,EACjC,CAEA,UAAInW,GACA,OAAOyG,KAAK+4E,OAAOx/E,MACvB,CAEA,QAAIwX,GACA,MzB8CG,CAACjU,KAAM,ayB7Cd,CAEA,OAAAwB,GACI,OAAO0B,KAAK+4E,MAChB,GCGJ,GApBA,cAAsB,GAClB,WAAA36E,CAAYsR,GACRoM,MAAM,OAEN9b,KAAK+4E,OAASjiE,OAAOpH,EACzB,CAEA,SAAIA,GACA,OAAO1P,KAAK+4E,MAChB,CAEA,QAAIhoE,GACA,M1BVG,CAACjU,KAAM,M0BWd,CAEA,OAAAwB,GACI,OAAO0B,KAAK+4E,MAChB,GCyDJ,GApEA,cAA4B,GACxB,SAAAv6D,CAAUvN,GACN,MAAM+hG,EAAY/hG,aAAgB,GAAWA,EAAKvB,MAAQoH,OAAO7F,GAC3DgiG,EAAS,GAAID,GAGnB,GAAIC,EAAS,GAAI,CACb,MAAMC,EAAQngG,OAAOkgG,GACrB,OAAID,GAAY,EACL,CAAEE,GAAS,GAIf,CAAgBA,GAAS,EAAM,IAA7B,IACb,CAGA,OAAIF,EAAW,EACJ,CACHvB,GAAQV,eACL,GAAckC,EAAS,MAK3B,CACHxB,GAAQlB,eACL,GAAc0C,EAAS,KAElC,CAEA,iBAAAf,CAAkBp+E,GACd,MAAM7iB,EAAO,IAAIjX,WAAW85B,GACtB50B,EAAS+R,EAAK,GAGpB,KAtCe,EAsCV/R,GAED,OAAc,IAATA,EAUE,CACH,IAAI,MAHY,IAATA,IAAwB,IAI/B+R,EAAKjV,MAAM,IAXJ,CACH,IAAI,GAAQkD,GAAU,GACtB+R,EAAKjV,MAAM,IAavB,GAAIkD,IAAWuyG,GAAQlB,aAAerxG,IAAWuyG,GAAQV,YAAa,CAClE,MAAM/sG,EAAO9E,IAAWuyG,GAAQlB,YAAc,IAAM,IAC7C13G,EAAGo7B,GAAa,GAAchjB,EAAKjV,MAAM,IAEhD,MAAO,CACH,IAAI,IAASnD,EAAI,KAAOmL,GACxB,IAAIhK,WAAWi6B,GAEvB,CAEA,MAAM,IAAI,GAAgB/0B,EAC9B,GCrEJ,MAAMi0G,GAAgB,IAAI,GAuD1B,OArDA,cAAkC,GAC9B,SAAA30F,CAAUvN,GACN,OAAoB,IAAhBA,EAAK1X,OACE,CAACk4G,GAAQnB,cAGhBr/F,EAAK1X,OAAS,GAGP,CAFS0X,EAAK1X,QAAU,EAAKk4G,GAAQxC,gBAIrCh+F,EAAK3S,WAIT,CACHmzG,GAAQzC,eACLmE,GAAc30F,UAAUvN,EAAK1X,OAAS,OACtC0X,EAAK3S,UAEhB,CAEA,iBAAA4zG,CAAkBp+E,GACd,MAAM7iB,EAAO,IAAIjX,WAAW85B,GACtB50B,EAAS+R,EAAK,GAEpB,GAAI/R,IAAWuyG,GAAQnB,aACnB,MAAO,CACH,IAAI,GACJr/F,EAAKjV,MAAM,IAInB,GAAIkD,IAAWuyG,GAAQzC,YAAa,CAChC,MAAOoE,EAASL,GAAQI,GAAcjB,kBAAkBjhG,EAAKjV,MAAM,IAC7D9C,EAAM6Z,OAAOqgG,EAAQ90G,WAAa,GAExC,MAAO,CACH,IAAI,GAAcy0G,EAAK/2G,MAAM,EAAG9C,IAChC65G,EAAK/2G,MAAM9C,GAEnB,CAGA,MAAM4Z,EAAyB,GAAf5T,GAAU,GAE1B,MAAO,CACH,IAAI,GAAc+R,EAAKjV,MAAM,EAAG8W,IAChC7B,EAAKjV,MAAM8W,GAEnB,GCpDJ,MAAMugG,GAAsB,IAAI,GAsBhC,OApBA,cAA8B,GAC1B,SAAA70F,CAAUnR,GACN,MAAO,CACHokG,GAAQf,OACRe,GAAQP,eACLmC,GAAoB70F,UAAUnR,EAAMqC,OAE/C,CAEA,iBAAAwiG,CAAkBjhG,GACd,MAAMX,EAAS,IAAItW,WAAWiX,IACvB5D,EAAO0lG,GAAQM,GAAoBnB,kBAAkB5hG,EAAOtU,MAAM,IAEzE,MAAO,CACH,IAAI,GAAUqR,EAAM/O,WACpBy0G,EAER,GCXJ,GAVA,cAAiC,GAC7B,WAAA30G,CAAYsR,GACRoM,MAAMpM,EAAO,UAAW,KAC5B,CAEA,QAAIqB,GACA,M9BgCG,CAACjU,KAAM,U8B/Bd,GCeJ,GApBA,cAAgC,GAC5B,SAAA0hB,CAAUvN,GACN,MAAO,CACHwgG,GAAQf,OACRe,GAAQH,iBACL,UAAWrgG,EAAKvB,OAE3B,CAEA,iBAAAwiG,CAAkBjhG,GACd,MAAMX,EAAS,IAAItW,WAAWiX,GACxB8iB,EAAU,UAAWzjB,EAAOtU,MAAM,IAAI,GAE5C,MAAO,CACH,IAAI,GAAmB+3B,EAAQ9iB,MAC/B,IAAIjX,WAAW+5B,EAAQE,WAE/B,GCTJ,GAVA,cAAkC,GAC9B,WAAA71B,CAAYsR,GACRoM,MAAMpM,EAAO,kBAAmB,KACpC,CAEA,QAAIqB,GACA,MhC4BG,CAACjU,KAAM,kBgC3Bd,GCeJ,GApBA,cAAiC,GAC7B,SAAA0hB,CAAUvN,GACN,MAAO,CACHwgG,GAAQf,OACRe,GAAQN,kBACL,UAAWlgG,EAAKvB,OAE3B,CAEA,iBAAAwiG,CAAkBjhG,GACd,MAAMX,EAAS,IAAItW,WAAWiX,GACxB8iB,EAAU,UAAWzjB,EAAOtU,MAAM,IAAI,GAE5C,MAAO,CACH,IAAI,GAAoB+3B,EAAQ9iB,MAChC,IAAIjX,WAAW+5B,EAAQE,WAE/B,GCCJ,GApBA,cAAuB,GACnB,WAAA71B,GACI0d,MAAM,QAEN9b,KAAK+4E,YAASloE,CAClB,CAEA,SAAInB,GACA,OAAO1P,KAAK+4E,MAChB,CAEA,QAAIhoE,GACA,MlCdG,CAACjU,KAAM,OkCed,CAEA,OAAAwB,GACI,OAAO0B,KAAK+4E,MAChB,GCHJ,GAdA,cAA6B,GACzB,SAAAv6D,GACI,MAAO,EACX,CAEA,WAAA62D,GACI,OAAO,IAAI,EACf,CAEA,iBAAA68B,CAAkBjhG,GACd,MAAO,CAAC,IAAI,GAAYA,EAC5B,GCkBJ,GA7BA,cAAuB,GACnB,WAAA7S,CAAYk1G,EAAWr9B,EAAQ,IAC3Bn6D,MAAM,QAEN9b,KAAKuzG,WAAaD,EAClBtzG,KAAKi2E,MAAQh8E,MAAMwV,KAAKwmE,EAC5B,CAEA,aAAIq9B,GACA,OAAOtzG,KAAKuzG,UAChB,CAEA,QAAIxiG,GACA,OAAO67F,GAAa5sG,KAAKszG,UAC7B,CAEA,UAAI/5G,GACA,OAAOyG,KAAKi2E,MAAM18E,MACtB,CAEA,OAAA+E,GACI,OAAO0B,KAAKi2E,MAAMpqE,KAAIpP,GAAKA,EAAE6B,WACjC,CAEA,MAAA4oG,CAAOyK,GACH,OAAOA,EAAQ6B,UAAUxzG,KAC7B,GC4CJ,GApEA,cAA6B,GACzB,SAAAwe,CAAUhJ,GACN,MAAMi+F,EAAqBj+F,EAAKygE,MAAMpqE,KAAIpP,GAC/BuD,KAAK8xG,iBAAiBtzF,UAAU/hB,KACxCi3G,KAAK/2F,KAEFzjB,EAAMsc,EAAKygE,MAAM18E,OAEvB,OAAIL,EAAM,GAGC,CAFSA,GAAO,EAAKu4G,GAAQvC,cAI7BuE,GAIJ,CACHhC,GAAQvB,aACL,GAAch3G,EAAM,OACpBu6G,EAEX,CAEA,iBAAAvB,CAAkBjhG,EAAM+gG,GACpB,MAAM1hG,EAAS,IAAItW,WAAWiX,GACxB/R,EAASoR,EAAO,GACtB,IAYIgjG,EAMA/lE,EAlBAr0C,EAAM,GACN65G,EAAOziG,EAAOtU,MAAM,GAEpBkD,IAAWuyG,GAAQvB,aAClBh3G,EAAK65G,GAAQ,GAAcziG,EAAOtU,MAAM,IACzC9C,GAAO,MAGG,GAATgG,KAAmBuyG,GAAQvC,aAC5Bh2G,EAAM4d,QAAiB,IAAT5X,IAAkB,SAKZ,IAAb8yG,IACPsB,EAAYtB,EAASnF,YAIzB,MAAM8G,EAAW,GAEjB,IAAK,IAAI96G,EAAI,GAAIA,EAAIK,EAAKL,KACrB00C,EAAIwlE,GAAQ/yG,KAAK8xG,iBAAiBI,kBAAkBa,EAAMO,GAC3DK,EAAS/5G,KAAK2zC,GAGlB,OAAY,KAARr0C,EACO,CAAC,IAAI,GAAY65G,SAGJ,IAAbf,IACPsB,EAAYK,EAAS,GAAG5iG,MAGrB,CACH,IAAI,GAASuiG,EAAWK,GACxBZ,GAER,GCnEJ,MAAMa,GAAevsC,IACjB,MAAOh7D,EAAKqD,GAAS23D,EACrB,MAAO,CAACh7D,MAAKqD,QAAK,EAuDtB,OApDA,cAAsB,GAClB,WAAAtR,CAAY+uG,EAAS7hB,EAAWrV,EAAQ,IACpCn6D,MAAM,OAEN9b,KAAK6zG,SAAW1G,EAChBntG,KAAK8zG,WAAaxoB,EAClBtrF,KAAK+zG,MAAQ7G,GAAYC,EAAS7hB,GAClCtrF,KAAK+4E,OAAS,IAAInvD,IAAIqsD,EAC1B,CAEA,SAAIA,GACA,MAAO,IAAIj2E,KAAK+4E,OAAO5/B,WAAWttC,IAAI+nG,GAC1C,CAEA,WAAIzG,GACA,OAAOntG,KAAK6zG,QAChB,CAEA,aAAIvoB,GACA,OAAOtrF,KAAK8zG,UAChB,CAEA,QAAI/iG,GACA,OAAO/Q,KAAK+zG,KAChB,CAEA,UAAIx6G,GACA,OAAOyG,KAAK+4E,OAAOvrE,IACvB,CAEA,YAAI+Y,GACA,OAAOvmB,KAAK+4E,OAAOrqE,OAAO6X,WAC9B,CAEA,QAAIxH,GACA,OAAO/e,KAAK+4E,OAAOh6D,MACvB,CAEA,OAAAzgB,GACI,MAAMuN,EAAM,IAAI+d,IAChB,IAAK,MAAOvd,EAAKqD,KAAU1P,KAAKumB,SAC5B1a,EAAIzJ,IAAIiK,EAAI/N,UAAWoR,EAAMpR,WAGjC,OAAOuN,CACX,CAEA,MAAAq7F,CAAOyK,GACH,OAAOA,EAAQqC,SAASh0G,KAC5B,GCDJ,GA5CA,cAAwB,GACpB,WAAA5B,CAAY2uG,EAAa,GAAI92B,EAAQ,IACjCn6D,MAAM,SAEN9b,KAAKi0G,YAAelH,EAAWxqG,eAAe,cAAiBwqG,EAAWA,WAAaA,EACvF/sG,KAAK+zG,MAAQ95G,MAAM+W,QAAQ+7F,GAAcD,GAAcC,GAAcA,EACrE/sG,KAAKk0G,OAASj6G,MAAMwV,KAAKwmE,EAC7B,CAEA,cAAI82B,GACA,OAAO/sG,KAAKi0G,WAChB,CAEA,QAAIljG,GACA,OAAO/Q,KAAK+zG,KAChB,CAEA,QAAIvmG,GACA,OAAOxN,KAAKk0G,OAAO36G,MACvB,CAEA,SAAI08E,GACA,OAAOj2E,KAAKk0G,MAChB,CAEA,OAAA51G,GACI,OAAO0B,KAAKm0G,cAAa13G,GAAKA,EAAE6B,WACpC,CAEA,YAAA61G,CAAaz2C,GACT,MAAMuY,EAAQj2E,KAAKk0G,OAAOroG,IAAI6xD,GAE9B,MAAwB,WAApB19D,KAAK+zG,MAAMj3G,MAzCJiiB,EA0CU/e,KAAK+zG,MAAMh1F,KA1Cfq6B,EA0CqB68B,EApCnCl3D,EAAKH,QALI,CAACm8E,EAAKv+F,EAAG3D,KACrBkiG,EAAIv+F,GAAK48C,EAAOvgD,GACTkiG,IAGiB,CAAC,IAuClB9kB,EA7CG,IAACl3D,EAAMq6B,CA8CrB,CAEA,MAAA8tD,CAAOyK,GACH,OAAOA,EAAQyC,WAAWp0G,KAC9B,GCjBJ,GAjCA,cAAsB,GAClB,WAAA5B,CAAYk1G,EAAWr9B,EAAQ,IAC3Bn6D,MAAM,OAEN9b,KAAKuzG,WAAaD,EAClBtzG,KAAKk0G,OAAS,IAAInqF,IAAIksD,EAC1B,CAEA,SAAIA,GACA,OAAOh8E,MAAMwV,KAAKzP,KAAKk0G,OAAO96D,SAClC,CAEA,aAAIk6D,GACA,OAAOtzG,KAAKuzG,UAChB,CAEA,QAAIxiG,GACA,OAAOk8F,GAAYjtG,KAAKszG,UAC5B,CAEA,UAAI/5G,GACA,OAAOyG,KAAKk0G,OAAO1mG,IACvB,CAEA,OAAAlP,GACI,OAAO,IAAIyrB,IAAI/pB,KAAKi2E,MAAMpqE,KAAIpP,GAAKA,EAAE6B,YACzC,CAEA,MAAA4oG,CAAOyK,GACH,OAAOA,EAAQ0C,SAASr0G,KAC5B,GCAJ,GApBA,cAA4B,GACxB,SAAAwe,CAAUpc,GACN,OAAOpC,KAAK8xG,iBAAiBtzF,UAAU,IAAI,GACvCpc,EAAIkxG,UACJxG,KACA1qG,EAAI6zE,MAAMpqE,KAAIhT,GAAK,CAACA,EAAG,IAAI,OAEnC,CAEA,iBAAAq5G,CAAkBjhG,EAAM+gG,GACpB,MAAMsC,EAAUpH,GAAY8E,EAASnF,WAAYC,OAC1CjhG,EAAKknG,GAAQ/yG,KAAK8xG,iBAAiBI,kBAAkBjhG,EAAMqjG,GAElE,MAAO,CACH,IAAI,GAAQtC,EAASnF,WAAYhhG,EAAIkT,MACrCg0F,EAER,GCtBJ,MAAMwB,GAAiB,CAAC54G,EAAGS,KACvB,GAAiB,IAAbT,EAAEpC,OACF,OAAQ,EAGZ,GAAiB,IAAb6C,EAAE7C,OACF,OAAO,EAGX,MAAMwL,EAAMyvG,GAAe74G,EAAE23G,WAC7B,IAAK,IAAIz6G,EAAI,EAAGA,EAAI8C,EAAEpC,OAAQV,IAAK,CAE/B,QAA0B,IAAfuD,EAAE65E,MAAMp9E,GACf,OAAO,EAIX,MAAMsgE,EAAOp0D,EAAIpJ,EAAEs6E,MAAMp9E,GAAIuD,EAAE65E,MAAMp9E,IACrC,GAAa,IAATsgE,EACA,OAAOA,CAEf,CAMA,OAAIx9D,EAAEpC,SAAW6C,EAAE7C,OACR,GAIH,GA0DNk7G,GAAqB1jG,IACvB,MAAM2jG,EAAgBF,GAAezjG,GACrC,MAAO,CAACpV,EAAGS,IAAMs4G,EAAc/4G,EAAE0Q,IAAKjQ,EAAEiQ,IAAG,EA0CzCsoG,GAAkB,CAACh5G,EAAGS,KACxB,MAAMw4G,EAAQ,IAAI,G1C1IX,CAAC93G,KAAM,O0C0I4BnB,EAAE2C,WACtCu2G,EAAQ,IAAI,G1C3IX,CAAC/3G,KAAM,O0C2I4BV,EAAEkC,WAE5C,OAAOi2G,GAAeK,EAAOC,EAAK,EAgBhCC,GAAgB,CAACn5G,EAAGS,IAAM2W,OAAO+D,OAAOnb,GAAKmb,OAAO1a,IAMpD24G,GAAc,CAChB,IAAOD,GACP,KAPmB,CAACn5G,EAAGS,IAAMT,EAAIS,EAQjC,OAtBqB,CAACT,EAAGS,KACzB,MAAMsvE,EAAU,IAAIv+D,YAEd6nG,EAAKr5G,EAAE0C,WACP42G,EAAK74G,EAAEiC,WAEb,OAAI22G,EAAGz7G,SAAW07G,EAAG17G,OACVo7G,GAAgBjpC,EAAQt+D,OAAOzR,GAAI+vE,EAAQt+D,OAAOhR,IAGtD44G,EAAGz7G,OAAS07G,EAAG17G,QAatB,KARmB,CAACoC,EAAGS,IACfT,EAAI,GAAKS,EAAI,GAAM04G,GAAcn5G,EAAGS,GAAK04G,GAAcn5G,EAAGS,GASlE,KAAQm4G,GACR,MApIoB,CAAC54G,EAAGS,KACxB,GAAe,IAAXT,EAAE6R,KACF,OAAQ,EAGZ,MAAM0nG,EAAWv5G,EAAE6R,KAAOpR,EAAEoR,KAC5B,GAAiB,IAAb0nG,EACA,OAAOA,EAIX,IAAK,IAAIr8G,EAAI,EAAGA,EAAI8C,EAAE6R,KAAM3U,IAAK,CAC7B,MAAMs8G,EAAWx5G,EAAEoxG,WAAWl0G,GAIxBsgE,EAAOq7C,GAAeW,EAAfX,CAAyB74G,EAAEs6E,MAAMp9E,GAAIuD,EAAE65E,MAAMp9E,IAC1D,GAAa,IAATsgE,EACA,OAAOA,CAEf,CAGA,OAAO,GA8GP,QA3GsB,CAACx9D,EAAGS,KAC1B,MAAMg5G,EAAQz5G,EAAE05G,QAAQ97G,OAAS6C,EAAEi5G,QAAQ97G,OAC3C,GAAc,IAAV67G,EACA,OAAOA,EAGX,MAAMR,EAAQ,IAAI,GAASj5G,EAAE25G,YAAa35G,EAAE05G,SACtCR,EAAQ,IAAI,GAASz4G,EAAEk5G,YAAal5G,EAAEi5G,SAGtCE,EAFcf,GAAeI,EAErBY,CAAYZ,EAAOC,GACjC,GAAc,IAAVU,EACA,OAAOA,EAGX,MAAME,EAAQ95G,EAAEuwC,IAAM9vC,EAAE8vC,IACxB,OAAc,IAAVupE,EACOA,EAIgBjB,GAAe1H,KAEnC4I,CACH,IAAI,GAAU/5G,EAAEoxG,WAAYpxG,EAAE+T,OAC9B,IAAI,GAAUtT,EAAE2wG,WAAY3wG,EAAEsT,OAClC,EAkFA,IA1EkB,CAAC/T,EAAGS,KACtB,MAAMu5G,EAAS,IAAIh6G,EAAEs6E,OACf2/B,EAAS,IAAIx5G,EAAE65E,OAErB0/B,EAAO32F,KAAKy1F,GAAkB94G,EAAEwxG,UAChCyI,EAAO52F,KAAKy1F,GAAkBr4G,EAAE+wG,UAEhC,MAAMuH,EAAgBF,GAAe74G,EAAEwxG,SACjC0I,EAAkBrB,GAAe74G,EAAE2vF,WAEzC,IAAK,IAAIzyF,EAAI,EAAGA,EAAI88G,EAAOp8G,OAAQV,IAAK,CAEpC,QAAyB,IAAd+8G,EAAO/8G,GACd,OAAO,EAGX,MAAMi9G,EAAQH,EAAO98G,GACfk9G,EAAQH,EAAO/8G,GAEfm9G,EAAQtB,EAAcoB,EAAMzpG,IAAK0pG,EAAM1pG,KAC7C,GAAc,IAAV2pG,EACA,OAAOA,EAGX,MAAMC,EAAQJ,EAAgBC,EAAMpmG,MAAOqmG,EAAMrmG,OACjD,GAAc,IAAVumG,EACA,OAAOA,CAEf,CAGA,OAAIN,EAAOp8G,SAAWq8G,EAAOr8G,OAClB,GAIH,GAwCR,MAASo7G,GACT,eAAkBA,GAClB,QAAWA,GACX,gBAAmBA,GACnB,gBAAmBA,GACnB,cAAiBA,IAGfH,GAAkBzjG,IACpB,GAAOA,EAAKxO,eAAe,QAAS,iCAAiCmc,KAAKC,UAAU5N,MACpF,GAAOgkG,GAAYxyG,eAAewO,EAAKjU,MAAO,8BAA8BiU,EAAKjU,QAE1Ei4G,GAAYhkG,EAAKjU,OAG5B,UCpHA,GAvEA,cAA4B,GACxB,SAAA0hB,CAAU3S,GACN,MAAM3S,EAAM2S,EAAItS,OACVwL,EAAM,GAAe8G,EAAIshG,SAEzB+I,EAAc,IAAIrqG,EAAIoqE,OAC5BigC,EAAYl3F,MAAK,CAACm3F,EAAKC,IAAQrxG,EAAIoxG,EAAI9pG,IAAK+pG,EAAI/pG,OAEhD,MAAMgqG,EAAkBH,EAAYrqG,KAAIhT,GAC7B,CACHmH,KAAK8xG,iBAAiBtzF,UAAU3lB,EAAEwT,KAClCrM,KAAK8xG,iBAAiBtzF,UAAU3lB,EAAE6W,UAI1C,MAAO,CACH+hG,GAAQtB,OACL,GAAcj3G,MACdm9G,EAAgB3C,KAAK/2F,KAEhC,CAEA,iBAAAu1F,CAAkBjhG,EAAM+gG,GACpB,MAAM1hG,EAAS,IAAItW,WAAWiX,GACxB/R,EAASoR,EAAO,GAEtB,GAAIpR,IAAWuyG,GAAQtB,IACnB,MAAM,IAAI,GAAgBjxG,GAG9B,MAAOhG,EAAK+6B,GAAa,GAAc3jB,EAAOtU,MAAM,IACpD,IAMImxG,EACA7hB,EAPAynB,EAAO9+E,EAEX,GAAY,KAAR/6B,EACA,MAAO,CAAC,IAAI,GAAW65G,QAMH,IAAbf,KACL7E,UAAS7hB,aAAa0mB,GAG5B,MAAM2B,EAAW,GACjB,IAAK,IAAI96G,EAAI,GAAIA,EAAIK,EAAKL,IAAK,CAC3B,MAAOwT,EAAKiqG,GAAWt2G,KAAK8xG,iBAAiBI,kBAAkBa,EAAM5F,IAC9Dz9F,EAAO6mG,GAAav2G,KAAK8xG,iBAAiBI,kBAAkBoE,EAAShrB,GAE5EqoB,EAAS/5G,KAAK,CAACyS,EAAKqD,IACpBqjG,EAAOwD,CACX,CAEA,MAAMC,EAAU7C,EAAS,GAOzB,YALwB,IAAb3B,IACP7E,EAAUqJ,EAAQ,GAAGzlG,KACrBu6E,EAAYkrB,EAAQ,GAAGzlG,MAGpB,CACH,IAAI,GACAo8F,EACA7hB,EACAqoB,GAEJZ,EAER,GC9DJ,GAVA,cAAqC,GACjC,WAAA30G,CAAYsR,GACRoM,MAAMpM,EAAO,kBAAmB,KACpC,CAEA,QAAIqB,GACA,OAAO47F,IACX,GCeJ,GApBA,cAAoC,GAChC,SAAAnuF,CAAUvN,GACN,MAAO,CACHwgG,GAAQf,OACRe,GAAQJ,sBACL,UAAWpgG,EAAKvB,OAE3B,CAEA,iBAAAwiG,CAAkBjhG,GACd,MAAMX,EAAS,IAAItW,WAAWiX,GACxB8iB,EAAU,UAAWzjB,EAAOtU,MAAM,IAAI,GAE5C,MAAO,CACH,IAAI,GAAuB+3B,EAAQ9iB,MACnC,IAAIjX,WAAW+5B,EAAQE,WAE/B,GCTJ,GAVA,cAAgC,GAC5B,WAAA71B,CAAYsR,GACRoM,MAAMpM,EAAO,gBAAiB,KAClC,CAEA,QAAIqB,GACA,OAAOy7F,IACX,GCeJ,GApBA,cAA+B,GAC3B,SAAAhuF,CAAUvN,GACN,MAAO,CACHwgG,GAAQf,OACRe,GAAQL,gBACL,UAAWngG,EAAKvB,OAE3B,CAEA,iBAAAwiG,CAAkBjhG,GACd,MAAMX,EAAS,IAAItW,WAAWiX,GACxB8iB,EAAU,UAAWzjB,EAAOtU,MAAM,IAAI,GAE5C,MAAO,CACH,IAAI,GAAkB+3B,EAAQ9iB,MAC9B,IAAIjX,WAAW+5B,EAAQE,WAE/B,GClBJ,MAAM,GAAYhjB,GACVA,aAAgBjX,YACA,IAAIy8G,aACL5iF,OAAO5iB,GAGnBA,EAAK5S,WAGV,GAAW4S,GACO,iBAATA,GACS,IAAI9D,aACLC,OAAO6D,GAGnBA,EAoCX,OA5BA,cAAyB,GACrB,WAAA7S,CAAYsR,GACRoM,MAAM,UAEN9b,KAAK+4E,OAAS,GAAQrpE,EAC1B,CAEA,QAAIqB,GACA,MhDtBG,CAACjU,KAAM,SgDuBd,CAEA,QAAAuB,GACI,OAAO,GAAS2B,KAAK+4E,OACzB,CAEA,OAAA1lD,GACI,OAAOrzB,KAAK+4E,MAChB,CAEA,OAAAz6E,GACI,MAzBgB,CAAC2S,IACrB,MAAM5D,EAAQ,GAAQ,GAAS4D,IAC/B,OAAOshG,GAActhG,KAAUshG,GAAcllG,EAAK,EAuB1CqpG,CAAgB12G,KAAK+4E,QACd/4E,KAAK3B,WAGT2B,KAAK+4E,MAChB,GC9CJ,MAAM,GAAsB,IAAI,GAkChC,OAhCA,cAA+B,GAC3B,SAAAv6D,CAAU9O,GACN,IAAIinG,EAAgBjnG,EAAMpR,UAO1B,MAL6B,iBAAlBq4G,IAEPA,GADgB,IAAIxpG,aACIC,OAAOupG,IAG5B,GAAoBn4F,UAAUm4F,EACzC,CAEA,iBAAAzE,CAAkBjhG,GACd,MAAMX,EAAS,IAAItW,WAAWiX,GACxB/R,EAASoR,EAAO,GAEtB,IACc,EAATpR,KAAmBuyG,GAAQxC,eACxB,CAACwC,GAAQnB,aAAcmB,GAAQzC,aAAa14F,SAASpX,GAEzD,MAAM,IAAI,GAAgBA,GAG9B,MAAOmO,EAAO0lG,GAAQ,GAAoBb,kBAAkB5hG,GAE5D,MAAO,CACH,IAAI,GAAWjD,EAAM/O,WACrBy0G,EAER,GCsCJ,GAtEA,cAA8B,GAC1B,SAAAv0F,CAAUo4F,GACN,MAAM19G,EAAM09G,EAAMppG,KAClB,GAAY,IAARtU,EACA,MAAO,CAACu4G,GAAQrB,aAGpB,MAAMuD,EAAWiD,EAAM3gC,MAClBpqE,KAAIpP,GAAKuD,KAAK8xG,iBAAiBtzF,UAAU/hB,KACzCi3G,KAAK/2F,KAEV,OAAIzjB,EAAM,GAGC,CAFSA,GAAO,EAAKu4G,GAAQxB,eAI7B0D,GAIJ,CACHlC,GAAQzB,cACL,GAAc92G,EAAM,OACpBy6G,EAEX,CAEA,iBAAAzB,CAAkBjhG,EAAM+gG,GACpB,MAAM1hG,EAAS,IAAItW,WAAWiX,GACxB/R,EAASoR,EAAO,GACtB,IAAIpX,EAAM,GACN65G,EAAOziG,EAAOtU,MAAM,GAExB,GAAIkD,IAAWuyG,GAAQrB,YACnB,MAAO,CAAC,IAAI,GAAa2C,IAGf,GAAT7zG,KAAmBuyG,GAAQxB,cAC5B/2G,GAAgB,IAATgG,IAAkB,GAGzBA,IAAWuyG,GAAQzB,cAClB92G,EAAK65G,GAAQ,GAAcziG,EAAOtU,MAAM,IACzC9C,GAAO,KAGX,IAAI6zG,EAAa,QACO,IAAbiF,IACPjF,EAAaiF,EAASjF,YAG1B,MAAM4G,EAAW,GACjB,IAAIpmE,EAAK,KACT,IAAK,IAAI10C,EAAI,GAAIA,EAAIK,EAAKL,KACrB00C,EAAIwlE,GAAQ/yG,KAAK8xG,iBAAiBI,kBAAkBa,EAAMhG,EAAWl0G,IACtE86G,EAAS/5G,KAAK2zC,GAGlB,IAAIx8B,EAAOihG,EAKX,YAJwB,IAAbA,IACPjhG,EAAO4iG,EAAS9nG,KAAIpP,GAAKA,EAAEsU,QAGxB,CACH,IAAI,GAAUA,EAAM4iG,GACpBZ,EAER,GCDJ,GApEA,cAA0B,GACtB,WAAA30G,CAAYi3G,EAASnpE,EAAKx8B,EAAQ,GAAIq9F,EAAa,GAAIM,EAAW,IAC9DvxF,MAAM,WAEN9b,KAAKq1G,QAAUp7G,MAAMwV,KAAK4lG,GAC1Br1G,KAAKkhF,KAAOh1C,EAEZlsC,KAAK+4E,OAASrpE,EACd1P,KAAKi0G,YAAclH,EAEnB/sG,KAAK+zG,MAAQ3G,GAAgBC,EACjC,CAEA,cAAIN,GACA,OAAO/sG,KAAKi0G,WAChB,CAEA,QAAIljG,GACA,OAAO/Q,KAAK+zG,KAChB,CAEA,OAAI7nE,GACA,OAAOlsC,KAAKkhF,IAChB,CAEA,SAAIxxE,GACA,OAAO1P,KAAK+4E,MAChB,CAEA,eAAIu8B,GACA,MnD5BG,CAACx4G,KAAM,MmD6Bd,CAEA,eAAI+5G,GACA,OAAO/J,GAAc9sG,KAAKi0G,YAC9B,CAEA,YAAI5G,GACA,OAAOrtG,KAAK+zG,MAAM1G,QACtB,CAEA,eAAIyJ,GACA,GAA6B,IAAzB92G,KAAKqtG,SAAS9zG,OACd,OAAOyG,KAAKksC,IAGhB,MAAMwiE,EAAU1uG,KAAKqtG,SAASrtG,KAAKksC,KAEnC,OAAO/8B,OAAO4P,KAAK2vF,GAAS,EAChC,CAEA,OAAApwG,GACI,GAA6B,IAAzB0B,KAAKqtG,SAAS9zG,OACd,OAAOyG,KAGX,MAAM0P,EAAQ1P,KAAK+4E,OAAOltE,KAAIpP,GAAKA,EAAE6B,YAErC,MAAO,CACH,CAAC0B,KAAK82G,aAAcpnG,EAE5B,CAEA,MAAAw3F,CAAOyK,GACH,OAAOA,EAAQoF,aAAa/2G,KAChC,GC1BJ,GAnCA,cAAgC,GAC5B,SAAAwe,CAAUkwF,GACN,MAAMsI,EAAa,IAAI,GAAUtI,EAAQ3B,WAAY2B,EAAQh/F,OAE7D,MAAO,CACH+hG,GAAQd,WACL,UAAW,IAAI32G,WAAW00G,EAAQ2G,UACrC3G,EAAQxiE,OACLlsC,KAAK8xG,iBAAiBtzF,UAAUw4F,GAE3C,CAEA,iBAAA9E,CAAkBp+E,EAAQk+E,GACtB,MAAM1hG,EAAS,IAAItW,WAAW85B,GACxBC,EAAU,UAAWzjB,EAAOtU,MAAM,IAAI,GACtCq5G,EAAU,IAAIthF,EAAQ9iB,MACtBi7B,EAAMnY,EAAQE,UAAU,GACxBhjB,EAAO8iB,EAAQE,UAAUj4B,MAAM,GACrC,IACIsvF,EADA+hB,EAAW,QAGS,IAAb2E,QAAyD,IAAtBA,EAAS3E,WACnDA,EAAW2E,EAAS3E,SACpB/hB,EAAYwhB,GAAc39F,OAAOiqC,OAAOi0D,EAASnhE,IAAM,KAG3D,MAAO+qE,EAAKlE,GAAQ/yG,KAAK8xG,iBAAiBI,kBAAkBjhG,EAAMq6E,GAElE,MAAO,CACH,IAAI,GAAY+pB,EAASnpE,EAAK+qE,EAAIhhC,MAAOghC,EAAIlK,WAAYM,GACzD0F,EAER,GCCJ,GArCA,cAAgC,GAC5B,WAAA30G,CAAYsR,EAAOlC,EAAM1Q,GAGrB,GAFAgf,MAAMhf,IAED7C,MAAM+W,QAAQtB,KAAWO,YAAYC,OAAOR,GAC7C,MAAM,IAAI,GACN5S,EACA,+CAA+C4S,aAIvD,MAAMwnG,EAAO,IAAIl9G,WAAW0V,GAE5B,GAAIwnG,EAAK7+G,aAAemV,EACpB,MAAM,IAAI,GACN1Q,EACA,uBAAuBo6G,EAAK7+G,+BAA+BmV,WAInExN,KAAK+4E,OAASm+B,EACdl3G,KAAK4yG,MAAQplG,CACjB,CAEA,SAAIkC,GACA,OAAO1P,KAAK+4E,MAChB,CAEA,QAAIvrE,GACA,OAAOxN,KAAK4yG,KAChB,CAEA,OAAAt0G,GACI,OAAO0B,KAAK+4E,MAChB,GCjBJ,GAdA,cAA6B,GACzB,WAAA36E,CAAYsR,GACRoM,MAAMpM,EALD,GACA,eAKT,CAEA,QAAIqB,GACA,MtD8NG,CAACjU,KAAM,esD7Nd,CAEA,MAAAoqG,CAAOyK,GACH,OAAOA,EAAQwF,gBAAgBn3G,KACnC,GCGJ,GAdA,cAA6B,GACzB,WAAA5B,CAAYsR,GACRoM,MAAMpM,EALD,GACA,eAKT,CAEA,QAAIqB,GACA,MvDkOG,CAACjU,KAAM,euDjOd,CAEA,MAAAoqG,CAAOyK,GACH,OAAOA,EAAQyF,gBAAgBp3G,KACnC,GCZJ,MAAMq3G,GAAkB,IAAI,GAEtBt/G,GAAU,CAACgZ,EAAME,KACnB,OAAQF,EAAKjU,MACb,IAAK,eACD,OAAO,IAAI,GAAemU,GAC9B,IAAK,eACD,OAAO,IAAI,GAAeA,GAC9B,QACI,MAAM,IAAI9W,MAAM,qBAAqB4W,EAAKjU,SAC9C,EAkBJ,OAfA,cAAsC,GAClC,SAAA0hB,CAAUnR,GACN,OAAOgqG,GAAgB74F,UAAUnR,EACrC,CAEA,iBAAA6kG,CAAkBjhG,EAAM+gG,GACpB,MAAO3kG,EAAO0lG,GAAQsE,GAAgBnF,kBAAkBjhG,GAExD,MAAO,CACHlZ,GAAQi6G,EAAU3kG,EAAM/O,WACxBy0G,EAER,GCKJ,GAjCA,cAA2B,GACvB,WAAA30G,CAAYk5G,EAAYC,EAAUC,GAC9B17F,MAAM,YAEN9b,KAAKy3G,YAAc,IAAIz9G,WAAWs9G,GAClCt3G,KAAK03G,UAAYH,EACjBv3G,KAAK23G,MAAQH,CACjB,CAEA,cAAIF,GACA,OAAOt3G,KAAKy3G,WAChB,CAEA,YAAIF,GACA,OAAOv3G,KAAK03G,SAChB,CAEA,QAAI12G,GACA,OAAOhB,KAAK23G,KAChB,CAEA,OAAAr5G,GACI,MAAO,CACHg5G,WAAYt3G,KAAKy3G,YACjBz2G,KAAMhB,KAAK23G,MAEnB,CAEA,MAAAzQ,CAAOyK,GACH,OAAOA,EAAQiG,cAAc53G,KACjC,GCAJ,GA1BA,cAAiC,GAC7B,SAAAwe,CAAUwhF,GACN,MAAM6X,EAAY,IAAI,GAAc7X,EAASsX,YACvCQ,EAAY,IAAI,GAAU9X,EAASuX,SAAUvX,EAASh/F,MAEtD+2G,EAAgB,IAAI,GACtB,CAACF,EAAU9mG,KAAM+mG,EAAU/mG,MAC3B,CAAC8mG,EAAWC,IAGhB,OAAO93G,KAAK8xG,iBAAiBtzF,UAAUu5F,EAC3C,CAEA,WAAA1iC,CAAYpkE,EAAM+gG,GACd,MAAMgG,EAAelL,GAAc,C1DyChC,CAAChwG,KAAM,c0DvCNgwG,GAAckF,EAASiG,kBAGpBF,GAAkB/3G,KAAK8xG,iBAAiBI,kBAAkBjhG,EAAM+mG,IAChEV,EAAYQ,GAAaC,EAAc9hC,MAE9C,OAAO,IAAI,GAAaqhC,EAAWh5G,UAAWw5G,EAAU/K,WAAY+K,EAAU7hC,MAClF,GCLJ,MAAMiiC,GAAc,CAChB,CAACzG,GAAQtC,c3DpBF,CAACryG,KAAM,O2DqBd,CAAC20G,GAAQrC,c3DjBF,CAACtyG,KAAM,Q2DkBd,CAAC20G,GAAQjC,W3DVF,CAAC1yG,KAAM,Q2DWd,CAAC20G,GAAQ/B,a3DfF,CAAC5yG,KAAM,U2DgBd,CAAC20G,GAAQ1B,U3DwOF,CAACjzG,KAAM,Q2DrOZ,GAAe,CACjB,CAAC20G,GAAQR,e3DAF,CAACn0G,KAAM,kB2DCd,CAAC20G,GAAQN,gB3DGF,CAACr0G,KAAM,mB2DFd,CAAC20G,GAAQL,cAAe5E,KACxB,CAACiF,GAAQJ,oBAAqB1E,KAC9B,CAAC8E,GAAQH,e3DIF,CAACx0G,KAAM,Y2DyIlB,OA1IA,cAA6B,GACzB,WAAAsB,CAAY0zG,GACRh2F,MAAMg2F,GAEN9xG,KAAKm4G,eAAiB,IAAI,EAC9B,CAEA,SAAA35F,CAAUzN,GACN,MAAMqnG,EAAejpG,OAAOgqC,QAAQ++D,IAC/BvpE,MAAK,EAAE2zC,GAAQxlF,WAAYA,IAASiU,EAAKjU,SAAQ,GACtD,GAAoB,MAAhBs7G,EACA,OAAO,IAAIp+G,WAAW,CAACo+G,IAG3B,MAAMC,EAAgBlpG,OAAOgqC,QAAQ,IAChCxK,MAAK,EAAE2zC,GAAQxlF,WAAYA,IAASiU,EAAKjU,SAAQ,GACtD,GAAqB,MAAjBu7G,EACA,OAAO,IAAIr+G,WAAW,CAACy3G,GAAQlC,YAAa8I,IAGhD,GAAkB,SAAdtnG,EAAKjU,KACL,OAAO,IAAI9C,WAAW,CAACy3G,GAAQ3B,SAAU/+F,EAAKnQ,KAGlD,GAAkB,UAAdmQ,EAAKjU,KACL,OAAO,IAAI9C,WAAW,CAClBy3G,GAAQ7B,cACL5vG,KAAKm4G,eAAe35F,UAAUzN,EAAKvD,QAI9C,GAAkB,SAAduD,EAAKjU,KACL,OAAO,IAAI9C,WAAW,CAClBy3G,GAAQpC,aACLrvG,KAAKwe,UAAUzN,EAAK87F,cAI/B,GAAkB,QAAd97F,EAAKjU,KACL,OAAO,IAAI9C,WAAW,CAClBy3G,GAAQhC,YACLzvG,KAAKwe,UAAUzN,EAAKo8F,YACpBntG,KAAKwe,UAAUzN,EAAKu6E,aAI/B,GAAkB,UAAdv6E,EAAKjU,KACL,OAAO,IAAI9C,WAAW,CAClBy3G,GAAQnC,WACRv+F,EAAKg8F,WAAWxzG,UACbwX,EAAKg8F,WAAWlhG,KAAK3D,GAAM,IAAIlI,KAAKwe,UAAUtW,MAAKwrG,SAI9D,GAAkB,YAAd3iG,EAAKjU,KACL,OAAO,IAAI9C,WAAW,CAClBy3G,GAAQ9B,aACR5+F,EAAKs8F,SAAS9zG,UACXwX,EAAKs8F,SAASxhG,KAAK3D,GAAM,IAAIlI,KAAKwe,UAAUtW,MAAKwrG,SAI5D,MAAM,IAAI,GAAc3iG,EAAKjU,KAAM,qBAAqBiU,EAAKjU,OACjE,CAEA,iBAAAo1G,CAAkBjhG,GACd,MAAMX,EAAS,IAAItW,WAAWiX,GACxB/R,EAASoR,EAAO,GAEtB,GAAI4nG,GAAY31G,eAAerD,GAC3B,MAAO,CAACg5G,GAAYh5G,GAASoR,EAAOtU,MAAM,IAG9C,GAAIkD,IAAWuyG,GAAQlC,YAAa,CAChC,MAAMltG,EAAMiO,EAAO,GAEnB,IAAK,GAAa/N,eAAeF,GAC7B,MAAM,IAAI,GAAgBA,EAAK,2BAGnC,MAAO,CAAC,GAAaA,GAAMiO,EAAOtU,MAAM,GAC5C,CAEA,GAAIkD,IAAWuyG,GAAQ3B,SACnB,MAAO,CAACpC,GAAYp9F,EAAO,IAAKA,EAAOtU,MAAM,IAGjD,GAAIkD,IAAWuyG,GAAQ7B,WAAY,CAC/B,MAAOpiG,EAAMulG,GAAQ/yG,KAAKm4G,eAAejG,kBAAkB5hG,EAAOtU,MAAM,IAExE,MAAO,CAACuwG,GAAc/+F,EAAKlP,WAAYy0G,EAC3C,CAEA,GAAI7zG,IAAWuyG,GAAQpC,UAAW,CAC9B,MAAOiJ,EAAcvF,GAAQ/yG,KAAKkyG,kBAAkB5hG,EAAOtU,MAAM,IAEjE,MAAO,CAAC4wG,GAAa0L,GAAevF,EACxC,CAEA,GAAI7zG,IAAWuyG,GAAQhC,SAAU,CAC7B,MAAOtC,EAAS4F,GAAQ/yG,KAAKkyG,kBAAkB5hG,EAAOtU,MAAM,KACrDsvF,EAAWitB,GAASv4G,KAAKkyG,kBAAkBa,GAElD,MAAO,CAAC7F,GAAYC,EAAS7hB,GAAYitB,EAC7C,CAEA,GAAIr5G,IAAWuyG,GAAQnC,WAAY,CAC/B,MAAM9hG,EAAO8C,EAAO,GACdkoG,EAAe,GACrB,IACIjrE,EADAwlE,EAAOziG,EAAOtU,MAAM,GAGxB,IAAK,IAAInD,EAAI,EAAGA,EAAI2U,EAAM3U,KACrB00C,EAAIwlE,GAAQ/yG,KAAKkyG,kBAAkBa,GACpCyF,EAAa5+G,KAAK2zC,GAGtB,MAAO,CAACu/D,GAAc0L,GAAezF,EACzC,CAEA,GAAI7zG,IAAWuyG,GAAQ9B,aAAc,CACjC,MAAMniG,EAAO8C,EAAO,GACd+8F,EAAW,GACjB,IACI9/D,EADAwlE,EAAOziG,EAAOtU,MAAM,GAGxB,IAAK,IAAInD,EAAI,EAAGA,EAAI2U,EAAM3U,KACrB00C,EAAIwlE,GAAQ/yG,KAAKkyG,kBAAkBa,GACpC1F,EAASzzG,KAAK2zC,GAGlB,MAAO,CAAC6/D,GAAgBC,GAAW0F,EACvC,CAEA,MAAM,IAAI,GAAgB7zG,EAC9B,GC/KJ,GAAeiQ,OAAO2/F,OAAO,CACzB,EAAM,CAAC2J,SAAU,SAAUz3G,KAAM,EAAG1G,KAAK,GACzC,EAAM,CAACm+G,SAAU,UAAWz3G,KAAM,EAAG1G,KAAK,GAC1C,EAAM,CAACm+G,SAAU,OAAQz3G,KAAM,EAAG1G,KAAK,GACvC,EAAM,CAACm+G,SAAU,SAAUz3G,KAAM,EAAG1G,KAAK,GACzC,EAAM,CAACm+G,SAAU,SAAUz3G,KAAM,EAAG1G,KAAK,GACzC,EAAM,CAACm+G,SAAU,UAAWz3G,KAAM,EAAG1G,KAAK,GAC1C,EAAM,CAACm+G,SAAU,OAAQz3G,KAAM,EAAG1G,KAAK,GACvC,EAAM,CAACm+G,SAAU,SAAUz3G,KAAM,EAAG1G,KAAK,GACzC,EAAM,CAACm+G,SAAU,YAAaz3G,KAAM,EAAG1G,KAAK,GAC5C,EAAM,CAACm+G,SAAU,YAAaz3G,KAAM,EAAG1G,KAAK,GAC5C,GAAM,CAACm+G,SAAU,YAAaz3G,KAAM,EAAG1G,KAAK,GAC5C,GAAM,CAACm+G,SAAU,aAAcz3G,KAAM,EAAG1G,KAAK,GAC7C,GAAM,CAACm+G,SAAU,OAAQz3G,KAAM,EAAG1G,KAAK,GACvC,GAAM,CAACm+G,SAAU,OAAQz3G,KAAM,EAAG1G,KAAK,GACvC,GAAM,CAACm+G,SAAU,MAAOz3G,KAAM,EAAG1G,KAAK,GACtC,GAAM,CAACm+G,SAAU,MAAOz3G,KAAM,EAAG1G,KAAK,GACtC,GAAM,CAACm+G,SAAU,OAAQz3G,KAAM,EAAG1G,KAAK,GACvC,GAAM,CAACm+G,SAAU,MAAOz3G,KAAM,EAAG1G,KAAK,GACtC,GAAM,CAACm+G,SAAU,OAAQz3G,KAAM,EAAG1G,KAAK,GACvC,GAAM,CAACm+G,SAAU,MAAOz3G,KAAM,EAAG1G,KAAK,GACtC,GAAM,CAACm+G,SAAU,MAAOz3G,KAAM,EAAG1G,KAAK,GACtC,GAAM,CAACm+G,SAAU,MAAOz3G,KAAM,EAAG1G,KAAK,GACtC,GAAM,CAACm+G,SAAU,MAAOz3G,KAAM,EAAG1G,KAAK,GACtC,GAAM,CAACm+G,SAAU,MAAOz3G,KAAM,EAAG1G,KAAK,GACtC,GAAM,CAACm+G,SAAU,MAAOz3G,KAAM,EAAG1G,KAAK,GACtC,GAAM,CAACm+G,SAAU,MAAOz3G,KAAM,EAAG1G,KAAK,GACtC,GAAM,CAACm+G,SAAU,QAASz3G,KAAM,EAAG1G,KAAK,GACxC,GAAM,CAACm+G,SAAU,OAAQz3G,KAAM,EAAG1G,KAAK,GACvC,GAAM,CAACm+G,SAAU,SAAUz3G,KAAM,EAAG1G,KAAK,GACzC,GAAM,CAACm+G,SAAU,UAAWz3G,KAAM,EAAG1G,KAAK,GAC1C,GAAM,CAACm+G,SAAU,KAAMz3G,KAAM,EAAG1G,KAAK,GACrC,GAAM,CAACm+G,SAAU,KAAMz3G,KAAM,EAAG1G,KAAK,GACrC,GAAM,CAACm+G,SAAU,KAAMz3G,KAAM,EAAG1G,KAAK,GACrC,GAAM,CAACm+G,SAAU,MAAOz3G,KAAM,EAAG1G,KAAK,GACtC,GAAM,CAACm+G,SAAU,MAAOz3G,KAAM,EAAG1G,KAAK,GACtC,GAAM,CAACm+G,SAAU,MAAOz3G,KAAM,EAAG1G,KAAK,GACtC,GAAM,CAACm+G,SAAU,MAAOz3G,KAAM,EAAG1G,KAAK,GACtC,GAAM,CAACm+G,SAAU,KAAMz3G,KAAM,EAAG1G,KAAK,GACrC,GAAM,CAACm+G,SAAU,MAAOz3G,KAAM,EAAG1G,KAAK,GACtC,GAAM,CAACm+G,SAAU,QAASz3G,KAAM,EAAG1G,KAAK,GACxC,GAAM,CAACm+G,SAAU,UAAWz3G,KAAM,EAAG1G,KAAK,GAC1C,GAAM,CAACm+G,SAAU,aAAcz3G,KAAM,EAAG1G,KAAK,GAC7C,GAAM,CAACm+G,SAAU,YAAaz3G,KAAM,EAAG1G,KAAK,GAC5C,GAAM,CAACm+G,SAAU,aAAcz3G,KAAM,EAAG1G,KAAK,GAC7C,GAAM,CAACm+G,SAAU,cAAez3G,KAAM,EAAG1G,KAAK,GAC9C,GAAM,CAACm+G,SAAU,aAAcz3G,KAAM,EAAG1G,KAAK,GAC7C,GAAM,CAACm+G,SAAU,aAAcz3G,KAAM,EAAG1G,KAAK,GAC7C,GAAM,CAACm+G,SAAU,aAAcz3G,KAAM,EAAG1G,KAAK,GAC7C,GAAM,CAACm+G,SAAU,gBAAiBz3G,KAAM,EAAG1G,KAAK,GAChD,GAAM,CAACm+G,SAAU,WAAYz3G,KAAM,EAAG1G,KAAK,GAC3C,GAAM,CAACm+G,SAAU,cAAez3G,KAAM,EAAG1G,KAAK,GAC9C,GAAM,CAACm+G,SAAU,SAAUz3G,KAAM,EAAG1G,KAAK,GACzC,GAAM,CAACm+G,SAAU,OAAQz3G,KAAM,EAAG1G,KAAK,GACvC,GAAM,CAACm+G,SAAU,KAAMz3G,KAAM,EAAG1G,KAAK,GACrC,GAAM,CAACm+G,SAAU,KAAMz3G,KAAM,EAAG1G,KAAK,GACrC,GAAM,CAACm+G,SAAU,SAAUz3G,KAAM,EAAG1G,KAAK,GACzC,GAAM,CAACm+G,SAAU,MAAOz3G,KAAM,EAAG1G,KAAK,GACtC,GAAM,CAACm+G,SAAU,SAAUz3G,KAAM,EAAG1G,KAAK,GACzC,GAAM,CAACm+G,SAAU,WAAYz3G,KAAM,EAAG1G,KAAK,GAC3C,GAAM,CAACm+G,SAAU,aAAcz3G,KAAM,EAAG1G,KAAK,GAC7C,GAAM,CAACm+G,SAAU,cAAez3G,KAAM,EAAG1G,KAAK,GAC9C,GAAM,CAACm+G,SAAU,cAAez3G,KAAM,EAAG1G,KAAK,GAC9C,GAAM,CAACm+G,SAAU,aAAcz3G,KAAM,EAAG1G,KAAK,GAC7C,GAAM,CAACm+G,SAAU,eAAgBz3G,KAAM,EAAG1G,KAAK,GAC/C,GAAM,CAACm+G,SAAU,eAAgBz3G,KAAM,EAAG1G,KAAK,GAC/C,GAAM,CAACm+G,SAAU,eAAgBz3G,KAAM,EAAG1G,KAAK,GAC/C,GAAM,CAACm+G,SAAU,cAAez3G,KAAM,EAAG1G,KAAK,GAC9C,GAAM,CAACm+G,SAAU,cAAez3G,KAAM,EAAG1G,KAAK,GAC9C,GAAM,CAACm+G,SAAU,UAAWz3G,KAAM,EAAG1G,KAAK,GAC1C,GAAM,CAACm+G,SAAU,eAAgBz3G,KAAM,EAAG1G,KAAK,GAC/C,GAAM,CAACm+G,SAAU,kBAAmBz3G,KAAM,EAAG1G,KAAK,GAClD,GAAM,CAACm+G,SAAU,aAAcz3G,KAAM,EAAG1G,KAAK,GAC7C,GAAM,CAACm+G,SAAU,YAAaz3G,KAAM,EAAG1G,KAAK,GAC5C,GAAM,CAACm+G,SAAU,YAAaz3G,KAAM,EAAG1G,KAAK,GAC5C,GAAM,CAACm+G,SAAU,WAAYz3G,KAAM,EAAG1G,KAAK,GAC3C,GAAM,CAACm+G,SAAU,aAAcz3G,KAAM,EAAG1G,KAAK,GAC7C,GAAM,CAACm+G,SAAU,WAAYz3G,KAAM,EAAG1G,KAAK,GAC3C,GAAM,CAACm+G,SAAU,aAAcz3G,KAAM,EAAG1G,KAAK,GAC7C,GAAM,CAACm+G,SAAU,YAAaz3G,KAAM,EAAG1G,KAAK,GAC5C,GAAM,CAACm+G,SAAU,WAAYz3G,KAAM,EAAG1G,KAAK,GAC3C,GAAM,CAACm+G,SAAU,UAAWz3G,KAAM,EAAG1G,KAAK,GAC1C,GAAM,CAACm+G,SAAU,WAAYz3G,KAAM,EAAG1G,KAAK,GAC3C,GAAM,CAACm+G,SAAU,YAAaz3G,KAAM,EAAG1G,KAAK,GAC5C,GAAM,CAACm+G,SAAU,UAAWz3G,KAAM,EAAG1G,KAAK,GAC1C,GAAM,CAACm+G,SAAU,SAAUz3G,KAAM,EAAG1G,KAAK,GACzC,GAAM,CAACm+G,SAAU,SAAUz3G,KAAM,EAAG1G,KAAK,GACzC,GAAM,CAACm+G,SAAU,YAAaz3G,KAAM,EAAG1G,KAAK,GAC5C,GAAM,CAACm+G,SAAU,cAAez3G,KAAM,EAAG1G,KAAK,GAC9C,GAAM,CAACm+G,SAAU,YAAaz3G,KAAM,EAAG1G,KAAK,GAC5C,GAAM,CAACm+G,SAAU,aAAcz3G,KAAM,EAAG1G,KAAK,GAC7C,GAAM,CAACm+G,SAAU,aAAcz3G,KAAM,EAAG1G,KAAK,GAC7C,GAAM,CAACm+G,SAAU,aAAcz3G,KAAM,EAAG1G,KAAK,GAC7C,GAAM,CAACm+G,SAAU,WAAYz3G,KAAM,EAAG1G,KAAK,GAC3C,GAAM,CAACm+G,SAAU,MAAOz3G,KAAM,EAAG1G,KAAK,GACtC,GAAM,CAACm+G,SAAU,UAAWz3G,KAAM,EAAG1G,KAAK,GAC1C,GAAM,CAACm+G,SAAU,WAAYz3G,KAAM,EAAG1G,KAAK,GAC3C,GAAM,CAACm+G,SAAU,OAAQz3G,KAAM,EAAG1G,KAAK,GACvC,GAAM,CAACm+G,SAAU,OAAQz3G,KAAM,EAAG1G,KAAK,GACvC,GAAM,CAACm+G,SAAU,OAAQz3G,KAAM,EAAG1G,KAAK,GACvC,GAAM,CAACm+G,SAAU,OAAQz3G,KAAM,EAAG1G,KAAK,GACvC,IAAM,CAACm+G,SAAU,OAAQz3G,KAAM,EAAG1G,KAAK,GACvC,IAAM,CAACm+G,SAAU,QAASz3G,KAAM,EAAG1G,KAAK,GACxC,IAAM,CAACm+G,SAAU,kBAAmBz3G,KAAM,EAAG1G,KAAK,GAClD,IAAM,CAACm+G,SAAU,eAAgBz3G,KAAM,EAAG1G,KAAK,GAC/C,IAAM,CAACm+G,SAAU,iBAAkBz3G,KAAM,EAAG1G,KAAK,GACjD,IAAM,CAACm+G,SAAU,gBAAiBz3G,KAAM,EAAG1G,KAAK,GAChD,IAAM,CAACm+G,SAAU,oBAAqBz3G,KAAM,EAAG1G,KAAK,GACpD,IAAM,CAACm+G,SAAU,sBAAuBz3G,KAAM,EAAG1G,KAAK,GACtD,IAAM,CAACm+G,SAAU,mBAAoBz3G,KAAM,EAAG1G,KAAK,GACnD,IAAM,CAACm+G,SAAU,eAAgBz3G,KAAM,EAAG1G,KAAK,GAC/C,IAAM,CAACm+G,SAAU,gBAAiBz3G,KAAM,EAAG1G,KAAK,GAChD,IAAM,CAACm+G,SAAU,aAAcz3G,KAAM,EAAG1G,KAAK,GAC7C,IAAM,CAACm+G,SAAU,cAAez3G,KAAM,EAAG1G,KAAK,GAC9C,IAAM,CAACm+G,SAAU,gBAAiBz3G,KAAM,EAAG1G,KAAK,GAChD,IAAM,CAACm+G,SAAU,cAAez3G,KAAM,EAAG1G,KAAK,GAC9C,IAAM,CAACm+G,SAAU,gBAAiBz3G,KAAM,EAAG1G,KAAK,GAChD,IAAM,CAACm+G,SAAU,aAAcz3G,KAAM,EAAG1G,KAAK,GAC7C,IAAM,CAACm+G,SAAU,uBAAwBz3G,KAAM,EAAG1G,KAAK,GACvD,IAAM,CAACm+G,SAAU,sBAAuBz3G,KAAM,EAAG1G,KAAK,GACtD,IAAM,CAACm+G,SAAU,eAAgBz3G,KAAM,EAAG1G,KAAK,GAC/C,IAAM,CAACm+G,SAAU,eAAgBz3G,KAAM,EAAG1G,KAAK,GAC/C,IAAM,CAACm+G,SAAU,qBAAsBz3G,KAAM,EAAG1G,KAAK,GACrD,IAAM,CAACm+G,SAAU,YAAaz3G,KAAM,EAAG1G,KAAK,GAC5C,IAAM,CAACm+G,SAAU,cAAez3G,KAAM,EAAG1G,KAAK,GAC9C,IAAM,CAACm+G,SAAU,aAAcz3G,KAAM,EAAG1G,KAAK,GAC7C,IAAM,CAACm+G,SAAU,UAAWz3G,KAAM,EAAG1G,KAAK,GAC1C,IAAM,CAACm+G,SAAU,qBAAsBz3G,KAAM,EAAG1G,KAAK,GACrD,IAAM,CAACm+G,SAAU,sBAAuBz3G,KAAM,EAAG1G,KAAK,GACtD,IAAM,CAACm+G,SAAU,sBAAuBz3G,KAAM,EAAG1G,KAAK,GACtD,IAAM,CAACm+G,SAAU,mBAAoBz3G,KAAM,EAAG1G,KAAK,GACnD,IAAM,CAACm+G,SAAU,oBAAqBz3G,KAAM,EAAG1G,KAAK,GACpD,IAAM,CAACm+G,SAAU,qBAAsBz3G,KAAM,EAAG1G,KAAK,GACrD,IAAM,CAACm+G,SAAU,uBAAwBz3G,KAAM,EAAG1G,KAAK,GACvD,IAAM,CAACm+G,SAAU,mBAAoBz3G,KAAM,EAAG1G,KAAK,GACnD,IAAM,CAACm+G,SAAU,mBAAoBz3G,KAAM,EAAG1G,KAAK,GACnD,IAAM,CAACm+G,SAAU,mBAAoBz3G,KAAM,EAAG1G,KAAK,GACnD,IAAM,CAACm+G,SAAU,oBAAqBz3G,KAAM,EAAG1G,KAAK,GACpD,IAAM,CAACm+G,SAAU,qBAAsBz3G,KAAM,EAAG1G,KAAK,GACrD,IAAM,CAACm+G,SAAU,uBAAwBz3G,KAAM,EAAG1G,KAAK,GACvD,IAAM,CAACm+G,SAAU,mBAAoBz3G,KAAM,EAAG1G,KAAK,GACnD,IAAM,CAACm+G,SAAU,mBAAoBz3G,KAAM,EAAG1G,KAAK,GACnD,IAAM,CAACm+G,SAAU,mBAAoBz3G,KAAM,EAAG1G,KAAK,GACnD,IAAM,CAACm+G,SAAU,mBAAoBz3G,KAAM,EAAG1G,KAAK,GACnD,IAAM,CAACm+G,SAAU,mBAAoBz3G,KAAM,EAAG1G,KAAK,GACnD,IAAM,CAACm+G,SAAU,mBAAoBz3G,KAAM,EAAG1G,KAAK,GACnD,IAAM,CAACm+G,SAAU,sBAAuBz3G,KAAM,EAAG1G,KAAK,GACtD,IAAM,CAACm+G,SAAU,oBAAqBz3G,KAAM,EAAG1G,KAAK,GACpD,IAAM,CAACm+G,SAAU,wBAAyBz3G,KAAM,EAAG1G,KAAK,GACxD,IAAM,CAACm+G,SAAU,sBAAuBz3G,KAAM,EAAG1G,KAAK,GACtD,IAAM,CAACm+G,SAAU,sBAAuBz3G,KAAM,EAAG1G,KAAK,GACtD,IAAM,CAACm+G,SAAU,sBAAuBz3G,KAAM,EAAG1G,KAAK,GACtD,IAAM,CAACm+G,SAAU,sBAAuBz3G,KAAM,EAAG1G,KAAK,GACtD,IAAM,CAACm+G,SAAU,sBAAuBz3G,KAAM,EAAG1G,KAAK,GACtD,IAAM,CAACm+G,SAAU,cAAez3G,KAAM,EAAG1G,KAAK,GAC9C,IAAM,CAACm+G,SAAU,gBAAiBz3G,KAAM,EAAG1G,KAAK,GAChD,IAAM,CAACm+G,SAAU,UAAWz3G,KAAM,EAAG1G,KAAK,GAC1C,IAAM,CAACm+G,SAAU,cAAez3G,KAAM,EAAG1G,KAAK,GAC9C,IAAM,CAACm+G,SAAU,gBAAiBz3G,KAAM,EAAG1G,KAAK,GAChD,IAAM,CAACm+G,SAAU,eAAgBz3G,KAAM,EAAG1G,KAAK,GAC/C,IAAM,CAACm+G,SAAU,eAAgBz3G,KAAM,EAAG1G,KAAK,GAC/C,IAAM,CAACm+G,SAAU,cAAez3G,KAAM,EAAG1G,KAAK,GAC9C,IAAM,CAACm+G,SAAU,gBAAiBz3G,KAAM,EAAG1G,KAAK,GAChD,IAAM,CAACm+G,SAAU,WAAYz3G,KAAM,EAAG1G,KAAK,GAC3C,IAAM,CAACm+G,SAAU,SAAUz3G,KAAM,EAAG1G,KAAK,GACzC,IAAM,CAACm+G,SAAU,QAASz3G,KAAM,EAAG1G,KAAK,GACxC,IAAM,CAACm+G,SAAU,UAAWz3G,KAAM,EAAG1G,KAAK,GAC1C,IAAM,CAACm+G,SAAU,gBAAiBz3G,KAAM,EAAG1G,KAAK,GAChD,IAAM,CAACm+G,SAAU,MAAOz3G,KAAM,EAAG1G,KAAK,GACtC,IAAM,CAACm+G,SAAU,mBAAoBz3G,KAAM,EAAG1G,KAAK,GACnD,IAAM,CAACm+G,SAAU,WAAYz3G,KAAM,EAAG1G,KAAK,GAC3C,IAAM,CAACm+G,SAAU,SAAUz3G,KAAM,EAAG1G,KAAK,GACzC,IAAM,CAACm+G,SAAU,OAAQz3G,KAAM,EAAG1G,KAAK,GACvC,IAAM,CAACm+G,SAAU,MAAOz3G,KAAM,EAAG1G,KAAK,GACtC,IAAM,CAACm+G,SAAU,OAAQz3G,KAAM,EAAG1G,KAAK,GACvC,IAAM,CAACm+G,SAAU,OAAQz3G,KAAM,EAAG1G,KAAK,GACvC,IAAM,CAACm+G,SAAU,MAAOz3G,KAAM,EAAG1G,KAAK,GACtC,IAAM,CAACm+G,SAAU,MAAOz3G,KAAM,EAAG1G,KAAK,GACtC,IAAM,CAACm+G,SAAU,aAAcz3G,KAAM,EAAG1G,KAAK,GAC7C,IAAM,CAACm+G,SAAU,QAASz3G,KAAM,EAAG1G,KAAK,GACxC,IAAM,CAACm+G,SAAU,OAAQz3G,KAAM,EAAG1G,KAAK,GACvC,IAAM,CAACm+G,SAAU,MAAOz3G,KAAM,EAAG1G,KAAK,GACtC,IAAM,CAACm+G,SAAU,WAAYz3G,KAAM,EAAG1G,KAAK,GAC3C,IAAM,CAACm+G,SAAU,SAAUz3G,KAAM,EAAG1G,KAAK,KC5K7C,MAAMo+G,GAAY,CACd,EAAM,YACN,EAAM,MACN,EAAM,MACN,EAAM,SAmMV,OAhLA,cAAiC,GAC7B,WAAAt6G,CAAY0zG,GACRh2F,MAAMg2F,GAEN9xG,KAAK24G,gBAAkB,IAAI,EAC/B,CAEA,WAAAtjC,CAAYpkE,GACR,MAAM2nG,EAAU,UAAW3nG,GAAM,GAC3B4nG,EAAa,UAAWD,EAAQ3kF,WAAW,GAC3C6kF,EAAiB,UAAWD,EAAW5kF,WAEvC8kF,EAAU/4G,KAAKg5G,mBAAmBH,EAAW5nG,MAInD,MAAO,CAACgoG,UAHUj5G,KAAKk5G,qBAAqBN,EAAQ3nG,KAAM8nG,GAGvCA,UAASI,YAFRn5G,KAAKo5G,uBAAuBN,GAGpD,CAEA,oBAAAI,CAAqBjoG,EAAM8nG,GACvB,IAAIvnF,EAAM,CAAC,EACPuhF,EAAO9hG,EACX,MAAMgoG,EAAY,GAElB,KAAOlG,EAAKx5G,SACPi4B,EAAKuhF,GAAQ/yG,KAAKq5G,oBAAoBtG,EAAMgG,GAC7CE,EAAUr/G,KAAK43B,GAGnB,OAAOynF,CACX,CAEA,mBAAAI,CAAoBpoG,EAAM8nG,GACtB,MAAM75G,EAAS+R,EAAK,GACdrQ,EAAK4xG,GAAcvhG,EAAKjV,MAAM,EAAG,IAEvC,GAAe,MAAXkD,EACA,MAAM,IAAI/E,MAAM,8CAA8C8W,EAAK,GAAG5S,SAAS,OAGnF,MAAMvB,EAAOi8G,EAAQn4G,IACd04G,EAAYf,GAASv4G,KAAKu5G,sBAAsBtoG,EAAKjV,MAAM,KAC3DgF,EAAM+iF,EAAYy1B,GAASx5G,KAAKy5G,qBAAqBlB,IACrDmB,EAAcC,GAAS35G,KAAK45G,wBAAwBJ,GAE3D,MAAO,CACH,CACI54G,KACA9D,OACAw8G,aACAt4G,OACA+iF,aACA21B,gBAEJC,EAER,CAEA,uBAAAC,CAAwB3oG,GACpB,IAAI4oG,EAAc,CAAC,EACf9G,EAAO9hG,EACX,MAAMyoG,EAAe,GAErB,IAAIxjF,EAAQ,EACR57B,GAAM,EAEV,KAAOy4G,EAAKx5G,QAAsB,MAAZw5G,EAAK,SACKliG,IAAxB6oG,EAAaxjF,KACbwjF,EAAaxjF,GAAS,KAGzB2jF,EAAa9G,EAAMz4G,GAAO0F,KAAK85G,uBAAuB/G,GACvD2G,EAAaxjF,GAAOt8B,KAAKigH,GAErBv/G,GACA47B,IAIR,MAAO,CAACwjF,EAAc3G,EAC1B,CAEA,sBAAA+G,CAAuB7oG,GACnB,MAAM8oG,EAAS9oG,EAAK,GACd8hG,EAAO9hG,EAAKjV,MAAM,GAExB,IAAK,GAAQuG,eAAew3G,GACxB,MAAM,IAAI5/G,MAAM,yBAAyB4/G,EAAO17G,SAAS,OAG7D,MAAM27G,EAAQ,GAAQD,IAChB,SAACtB,EAAQ,IAAEn+G,GAAO0/G,EAExB,GAAmB,IAAfA,EAAMh5G,KACN,MAAO,CAAC,CAACy3G,WAAUz3G,KAAM,IAAK+xG,EAAMz4G,GAGxC,MAAO0G,EAAMu3G,GAASv4G,KAAKi6G,qBAAqBlH,EAAMiH,EAAMh5G,MAE5D,MAAO,CAAC,CAACy3G,WAAUz3G,QAAOu3G,EAAOj+G,EACrC,CAEA,oBAAA2/G,CAAqBhpG,EAAMxV,GACvB,MAAMy+G,EAAYz+G,GAAK,EAAK,EAAI,EAC1B0+G,EAAWlpG,EAAKqG,SAAS,EAAG4iG,GAC5BnH,EAAO9hG,EAAKjV,MAAMk+G,GAElB9+C,EA3HI,EAACnqD,EAAMxV,EAAI,KACzB,MAAMuF,EAAO,GACb,IAAIu1B,EAAOxjB,OAAOw/F,GAActhG,IAEhC,IAAK,IAAIpY,EAAI,EAAGA,EAAQ,EAAJ4C,EAAO5C,GAAK,EAC5BmI,EAAKpH,KAAY,EAAP28B,GACVA,IAAS,EAGb,GAAa,IAATA,EACA,MAAM,IAAIp8B,MAAM,yDAAyDo8B,EAAKl4B,SAAS,MAG3F,OAAO2C,GA8Geo5G,CAAUD,EAAU1+G,GAChCuF,EAAO,GACb,IACIqO,EADAkpG,EAAQxF,EAQZ,OALA33C,EAAU7qC,SAAQvpB,KACbqI,EAAKkpG,GAASv4G,KAAKq6G,oBAAoBrzG,EAAKuxG,GAC7Cv3G,EAAKpH,KAAKyV,EAAG,IAGV,CAACrO,EAAMu3G,EAClB,CAEA,mBAAA8B,CAAoB9jF,EAAMzC,GACtB,MAAM9sB,EAAM0xG,GAAUniF,GAEtB,GAAY,UAARvvB,EACA,MAAO,CAAC,CAACA,MAAKqI,IAAK,GAAIykB,GAG3B,MAAOzkB,EAAK0jG,GAAQ/yG,KAAK8xG,iBAAiBI,kBAAkBp+E,GAE5D,MAAO,CAAC,CAAC9sB,MAAKqI,IAAKA,EAAI/Q,WAAYy0G,EACvC,CAEA,oBAAA0G,CAAqBxoG,GACjB,MAAOjQ,EAAM+xG,GAAQ/yG,KAAK24G,gBAAgBzG,kBAAkBjhG,IACrD8yE,EAAYw0B,GAASv4G,KAAK24G,gBAAgBzG,kBAAkBa,GAEnE,MAAO,CAAC/xG,EAAM+iF,EAAYw0B,EAC9B,CAEA,qBAAAgB,CAAsBtoG,GAClB,MAAOqpG,EAAevH,GAAQ/yG,KAAK8xG,iBAAiBI,kBAAkBjhG,GAChEspG,EAAiBxnG,OAAOunG,EAAch8G,WACtCg7G,EAAa,GAUnB,OARqB,EAAjBiB,GACAjB,EAAW1/G,KAAK,WAGC,EAAjB2gH,GACAjB,EAAW1/G,KAAK,WAGb,CAAC0/G,EAAYvG,EACxB,CAEA,kBAAAiG,CAAmB/nG,GAEf,MAAMF,EAAOm8F,G7DlIV,CAACpwG,KAAM,cAhDP,CAACA,KAAM,W6DmLJi8G,EAAU/4G,KAAK8xG,iBAAiB0I,oBAAoBvpG,EAAMF,GAAMzS,UAChEm8G,EAAa,CAAC,EAOpB,OALA1B,EAAQxoF,SAAQ,CAACtjB,EAAKZ,KAClB,MAAMyjB,EAAM0iF,GAAcnmG,GAC1BouG,EAAW3qF,GAAO7iB,KAGfwtG,CACX,CAEA,sBAAArB,CAAuBnoG,GAGnB,OAFoBjR,KAAK8xG,iBAAiBz8B,YAAYpkE,GAAM3S,SAGhE,GC7KJ,GA5BA,cAAyC,GACrC,WAAAF,CAAY0zG,GACRh2F,QACA9b,KAAK06G,oBAAsB,IAAI,GAAmB5I,GAClD9xG,KAAKm4G,eAAiB,IAAI,EAC9B,CAEA,iBAAAjG,CAAkBjhG,GACd,MAAMX,EAAS,IAAItW,WAAWiX,IACvB0pG,EAAS1mF,GAAaj0B,KAAKm4G,eAAejG,kBAAkB5hG,EAAOtU,MAAM,IAC1E4+G,EAAc7nG,OAAO4nG,GACrB5mF,EAAU,UAAWE,EAAUj4B,MAAM,EAAG4+G,IACxCC,EAAgB,IAAIpE,YAC1B,MAAO,CACH,CACIvqE,IAAKqmE,GAAcx+E,EAAQ,IAC3B+mF,IAAKvI,GAAcx+E,EAAQ,IAC3BgnF,WAAYvI,GAAcz+E,EAAQ,IAClCinF,aAAcjnF,EAAQ,GACtBgrE,SAAU/+F,KAAK06G,oBAAoBrlC,YAAYthD,EAAQ,IACvDknF,gBAAiBJ,EAAchnF,OAAOE,EAAQ,IAC9CkpE,QAASn0E,QAAQiL,EAAQ,GAAG,KAEhCE,EAAUj4B,MAAM4+G,GAExB,GCsFJ,GA3FA,cAAyB,GACrB,WAAAx8G,GACI0d,QAEA9b,KAAKk7G,YAAc,IAAI,GACvBl7G,KAAKm7G,aAAe,CAChB,KAAQ,IAAI,GACZ,KAAQ,IAAI,GACZ,IAAO,IAAI,GACX,MAAS,IAAI,GAAgBn7G,MAC7B,OAAU,IAAI,GAAgBA,MAC9B,KAAQ,IAAI,GAAeA,MAC3B,IAAO,IAAI,GAAcA,MACzB,IAAO,IAAI,GAAcA,MACzB,WAAc,IAAI,GAClB,OAAU,IAAI,GACd,KAAQ,IAAI,GACZ,UAAa,IAAI,GACjB,KAAQ,IAAI,GACZ,QAAW,IAAI,GAAkBA,MACjC,MAAS,IAAI,GACb,eAAkB,IAAI,GACtB,gBAAmB,IAAI,GACvB,cAAiB,IAAI,GACrB,gBAAmB,IAAI,GACvB,QAAW,IAAI,GACf,eAAgB,IAAI,GACpB,eAAgB,IAAI,GACpB,SAAY,IAAI,GAAmBA,MACnC,mBAAsB,IAAI,GAA2BA,MACrD,KAAQ,IAAI,GAEpB,CAEA,cAAAo7G,CAAerqG,GACX,IAAKA,EAAKxO,eAAe,QACrB,MAAM,IAAI,GAAgB,qBAAuBmc,KAAKC,UAAU5N,IAGpE,MAAM84E,EAAW94E,EAAKjU,KACtB,IAAKkD,KAAKm7G,aAAa54G,eAAesnF,GAClC,MAAM,IAAI,GAAgB,qBAAuBnrE,KAAKC,UAAUkrE,IAGpE,OAAO7pF,KAAKm7G,aAAatxB,EAC7B,CAEA,SAAArrE,CAAUvN,GACN,GAAoB,iBAATA,EACP,MAAM,IAAI,GAAgB,gDAAkDyN,KAAKC,UAAU1N,IAG/F,KAAMA,aAAgB,IAClB,MAAM,IAAI,GAAgB,4CAG9B,OAAOjR,KAAKo7G,eAAenqG,GAAMuN,UAAUvN,EAC/C,CAEA,mBAAAupG,CAAoBvpG,EAAMF,GACtB,KAAME,aAAgBjX,YAClB,MAAM,IAAI,GAAgB,8CAG9B,OAAOgG,KAAKo7G,eAAerqG,GAAMskE,YAAYpkE,EAAMF,EACvD,CAEA,WAAAskE,CAAYpkE,GACR,KAAMA,aAAgBjX,YAClB,MAAM,IAAI,GAAgB,8CAG9B,MAAM+W,EAAO/Q,KAAKk7G,YAAYxJ,WAAWzgG,GAEzC,OAAOjR,KAAKw6G,oBAAoBvpG,EAAMF,EAC1C,CAEA,iBAAAmhG,CAAkBjhG,EAAM+gG,GACpB,KAAM/gG,aAAgBjX,YAClB,MAAM,IAAI,GAAgB,8CAG9B,IAAI+W,EAAOihG,EAKX,YAJwB,IAAbA,IACPjhG,EAAO/Q,KAAKk7G,YAAYxJ,WAAWzgG,IAGhCjR,KAAKo7G,eAAerqG,GAAMmhG,kBAAkBjhG,EAAM+gG,EAC7D,G,WC9GJ,MAAM,GAActlG,IACT,IAAI,IAASspB,OAAOtpB,GAAO4pB,SAGhC+kF,GAActwC,GACT,GAAW,GAAWA,IAAU/uE,MAAM,EAAG,GAG9C,GAAe+uE,IACjB,MAAMz6D,EAAS,GAAA3B,OAAOc,KAAKs7D,GACrBuwC,EAAWD,GAAWtwC,GAC5B,OAAO,GAAAp8D,OAAOxK,OAAO,CAACmM,EAAQgrG,GAAWhrG,EAAO/W,OAAS,EAAC,EAGxD,GAAcgiH,IAChB,MAAMC,EAAsB,GAAA7sG,OAAOc,KAAK8rG,GAClCxwC,EAAUywC,EAAoBx/G,MAAM,GAAI,GACxCs/G,EAAWE,EAAoBx/G,OAAO,GACtCy/G,EAAcJ,GAAWtwC,GAE/B,IAAKuwC,EAASxlG,OAAO2lG,GACjB,MAAM,IAAI,GAAY,oBAG1B,OAAO,IAAIzhH,WAAW+wE,EAAO,EAQ3B,GAAUr+D,GACL,GAAYA,GAAOrO,SAAS,UAQjC,GAAUnB,IACZ,MAAM+T,EAAO,GAAAtC,OAAOc,KAAKvS,EAAK,UAE9B,OAAO,GAAW+T,EAAI,ECxCpB,GAAUvE,GACL,GAAKU,OAAO,GAAYV,IAQ7B,GAAUxP,GACL,GAAW,GAAK22B,OAAO32B,ICb5Bw+G,GAAQ,CACVC,eAAgB,CAACzvE,IAAK,KAAM1+B,KAAM,GAAIk+D,QAAS,GAC/CkwC,iBAAkB,CAAC1vE,IAAK,KAAM1+B,KAAM,GAAIk+D,QAAS,GACjDmwC,eAAgB,CAAC3vE,IAAK,KAAM1+B,KAAM,GAAIk+D,QAAS,GAC/CowC,cAAe,CAAC5vE,IAAK,KAAM1+B,KAAM,GAAIk+D,QAAS,GAC9CqwC,iBAAkB,CAAC7vE,IAAK,KAAM1+B,KAAM,GAAIk+D,QAAS,GACjDswC,mBAAoB,CAAC9vE,IAAK,KAAM1+B,KAAM,EAAGk+D,QAAS,GAClDuwC,gBAAiB,CAAC/vE,IAAK,KAAM1+B,KAAM,GAAIk+D,QAAS,GAChDwwC,eAAgB,CAAChwE,IAAK,KAAM1+B,KAAM,GAAIk+D,QAAS,GAC/CywC,eAAgB,CAACjwE,IAAK,KAAM1+B,KAAM,GAAIk+D,QAAS,GAC/C0wC,QAAS,CAAClwE,IAAK,KAAM1+B,KAAM,GAAIk+D,QAAS,GACxC2wC,cAAe,CAACnwE,IAAK,KAAM1+B,KAAM,GAAIk+D,QAAS,GAC9C4wC,gBAAiB,CAACpwE,IAAK,KAAM1+B,KAAM,GAAIk+D,QAAS,GAChD6wC,YAAa,CAACrwE,IAAK,KAAM1+B,KAAM,GAAIk+D,QAAS,GAC5C5uE,KAAM,CAACovC,IAAK,KAAM1+B,KAAM,EAAGk+D,QAAS,GACpC8wC,QAAS,CAACtwE,IAAK,KAAM1+B,KAAM,GAAIk+D,QAAS,GACxCU,UAAW,CAAClgC,IAAK,KAAM1+B,KAAM,GAAIk+D,QAAS,GAC1C+wC,WAAY,CAACvwE,IAAK,KAAM1+B,KAAM,GAAIk+D,QAAS,GAC3CgxC,UAAW,CAACxwE,IAAK,KAAM1+B,KAAM,EAAGk+D,QAAS,IAGvCixC,GAAW,CACbC,GAAI,iBACJC,GAAI,mBACJC,GAAI,iBACJC,GAAI,gBACJ9H,GAAI,mBACJ+H,GAAI,qBACJC,GAAI,kBACJC,GAAI,iBACJv2E,GAAI,iBACJlX,GAAI,UACJ0tF,GAAI,gBACJC,GAAI,kBACJC,GAAI,cACJC,GAAI,OACJ14E,GAAI,UACJ24E,GAAI,YACJC,GAAI,aACJC,GAAI,aAyER,OAtEA,MACI,MAAArwG,CAAOy8E,EAAU9e,GACb,IAAK2wC,GAAMn5G,eAAesnF,GACtB,MAAM,IAAI,GAAcA,EAAU,wBAAwBA,KAG9D,MAAM94E,EAAO2qG,GAAM7xB,GAEnB,GAAI94E,EAAKvD,KAAO,GAAKu9D,EAAQxxE,SAAWwX,EAAKvD,KACzC,MAAM,IAAI,GACNq8E,EACA,kCAAkC94E,EAAKvD,iBAAiBu9D,EAAQxxE,UAIxE,MAAM+iF,EAAUvrE,EAAK26D,QAAQt+D,OAAO29D,GAEpC,MAAO,GAAGh6D,EAAKm7B,OAAOowC,GAC1B,CAEA,MAAAzoD,CAAO5iB,GACH,MAAMi7B,EAAMj7B,EAAK5Q,UAAU,EAAG,GAE9B,IAAKs8G,GAASp6G,eAAe2pC,GACzB,MAAM,IAAI,GAAY,6CAA6CA,KAGvE,GAAgB,MAAZj7B,EAAK,GACL,MAAM,IAAI,GAAY,oEAAoEA,EAAK,MAGnG,MAAMF,EAAO2qG,GAAMiB,GAASzwE,IACtB6+B,EAAU95D,EAAK5Q,UAAU,GACzB0zB,EAAUhjB,EAAK26D,QAAQ73C,OAAOk3C,GAEpC,GAAIh6D,EAAKvD,KAAO,GAAKumB,EAAQx6B,SAAWwX,EAAKvD,KACzC,MAAM,IAAI,GAAY,0CAA0CuD,EAAKvD,iBAAiBumB,EAAQx6B,UAGlG,OAAOw6B,CACX,CAEA,cAAA2pF,CAAezsG,EAAM0sG,GACjB,MAAMzxE,EAAMj7B,EAAK5Q,UAAU,EAAG,GAE9B,IAAKq7G,GAAMn5G,eAAeo7G,GACtB,MAAM,IAAI,GAAcA,EAAc,wBAG1C,MAAMp9B,EAAcm7B,GAAMiC,GAAczxE,IAExC,GAAIA,IAAQq0C,EAAa,CACrB,MAAMq9B,EAAc59G,KAAK69G,eAAeF,GAExC,MAAM,IAAI,GACNA,EACA,GAAGC,uBAAiCr9B,WAAqBtvE,YAEjE,CAEA,OAAOjR,KAAK6zB,OAAO5iB,EACvB,CAEA,cAAA4sG,CAAe9sG,GACX,MAAMnV,EAAImV,EAAK5Q,QAAQ,IAAK,KAE5B,OAAOvE,EAAEuB,OAAO,GAAGqD,cAAgB5E,EAAEI,MAAM,EAC/C,GChHJ,MAAM8hH,GAAS,CACX/hH,EAAG,CACC4mB,EAAG,IAAM,KACT7U,EAAG,qEAEPxL,EAAG,CACCqgB,EAAG,IAAM,KAET7U,EAAG,sGAILiwG,GAAO,CAACpiH,EAAGS,KACb,GAAU,KAANA,EACA,MAAO,CAAC,GAAI,GAAIT,GAGpB,MAAOO,EAAGC,EAAGiF,GAAK28G,GAAK3hH,EAAGT,EAAIS,GAE9B,MAAO,CAACD,EAAGD,EAAIC,GAAKR,EAAIS,GAAIgF,EAAC,EAW3B48G,GAAgB,CAACtuG,EAAOuuG,KAC1B,MAAMC,EAAQJ,GAAOG,GAEf35G,EADIwS,OAAOpH,GACFwuG,EAAMv7F,EAAKu7F,EAAMpwG,EAEhC,OAAOskG,GAAc9tG,EAAC,EAIpB65G,GAAgB,CAACzuG,EAAOuuG,KAC1B,MAAMC,EAAQJ,GAAOG,GACftiH,ExDhBc,CAACsV,IACrB,MAAM6e,EAAMwiF,GAAoBrhG,GAAMlN,UAEtC,OAAO+S,OAAO,KAAOgZ,EAAI/1B,KAAK,IAAG,EwDavBqkH,CAAgB1uG,GACpB2uG,EApBK,EAAC1iH,EAAGF,KACf,MAAO+9B,EAAG8kF,EAAIC,GAAMR,GAAKpiH,EAAGF,GAG5B,OAAQ+9B,EAAI/9B,GAAKA,GAgBJ+iH,CAAON,EAAMv7F,EAAGu7F,EAAMpwG,GAEnC,OAAQnS,EAAI0iH,EAAQH,EAAMpwG,GCkC9B,OAxEA,MACI,WAAA1P,GACI4B,KAAKy+G,YAAc,IAAI,EAC3B,CAEA,WAAAC,CAAYztG,GACR,OAAOA,EAAKi2F,OAAOlnG,KACvB,CAEA,SAAA4xG,CAAU+M,GACN,OAAOA,EAASrgH,SACpB,CAEA,YAAAw0G,CAAa6L,GACT,OAAO3+G,KAAKy+G,YAAYrxG,OAAOuxG,EAAS7hH,KAAM6hH,EAASjvG,MAC3D,CAEA,SAAA8jG,CAAUmL,GACN,OAAOA,EAAS1oC,MAAMpqE,KAAIpP,GAAKA,EAAEyqG,OAAOlnG,OAC5C,CAEA,QAAAq0G,CAASsK,GACL,OAAO,IAAI50F,IAAI40F,EAAS1oC,MAAMpqE,KAAIpP,GAAKA,EAAEyqG,OAAOlnG,QACpD,CAEA,QAAAg0G,CAAS2K,GACL,MAAM9yG,EAAM,IAAI+d,IAChB,IAAK,MAAOvd,EAAKqD,KAAUivG,EAASp4F,SAChC1a,EAAIzJ,IAAIiK,EAAI66F,OAAOlnG,MAAO0P,EAAMw3F,OAAOlnG,OAG3C,OAAO6L,CACX,CAEA,UAAAuoG,CAAWuK,GACP,OAAOA,EAASxK,cAAa13G,GAAKA,EAAEyqG,OAAOlnG,OAC/C,CAEA,YAAA+2G,CAAa4H,GACT,MAAMjvG,EAAQivG,EAASjvG,MAAM7D,KAAIpP,GAAKA,EAAEyqG,OAAOlnG,QAE/C,GAA6B,SAAzB2+G,EAAS7H,YAIb,MAA6B,SAAzB6H,EAAS7H,YACFpnG,EAAM,GAGV,CACH,CAACivG,EAAS7H,aAAcpnG,EAEhC,CAEA,eAAAynG,CAAgBwH,GACZ,OAAOR,GAAcQ,EAASrgH,UAAW,IAC7C,CAEA,eAAA84G,CAAgBuH,GACZ,OAAOR,GAAcQ,EAASrgH,UAAW,IAC7C,CAEA,aAAAs5G,CAAc+G,GACV,MAAM,WAACrH,EAAU,KAAEt2G,GAAQ29G,EAASrgH,UAEpC,MAAO,CACHg5G,WAAY9E,GAAc8E,GAC1Bt2G,KAAMA,EAAK6K,KAAIpP,GAAKA,EAAEyqG,OAAOlnG,QAErC,GCrEJ,GANA,cAAuB,GACnB,WAAA5B,CAAYsR,GACRoM,MAAMpM,EAAO,GAAI,OACrB,GCGJ,GANA,cAA4B,GACxB,WAAAtR,CAAYsR,GACRoM,MAAMpM,EAAO,GAAI,YACrB,GCaJ,GAlBA,MACI,WAAAtR,CAAYwgH,GACR5+G,KAAK6+G,cAAgBD,CACzB,CAEA,gBAAIA,GACA,OAAO5+G,KAAK6+G,aAChB,CAEA,QAAAC,EAAS,MAAC9hD,EAAK,YAAEi3C,IACb,OAAO,CACX,CAEA,MAAA3yF,CAAOyyF,EAAOh7B,GACV,MAAM,IAAI5+E,MAAM,mBACpB,GCDJ,MAAM,GAAQ,CACV,MACA,OACA,SACA,OACA,OACA,QACA,YACA,iBACA,kBACA,UACA,gBACA,mBAwCJ,OArCA,cAAmC,GAC/B,QAAA2kH,EAAS,KAAEhiH,EAAI,YAAEm3G,IACb,OAAO,GAAM39F,SAASxZ,EAC1B,CAEA,MAAAwkB,CAAOvQ,EAAMrB,GACT,OAAQqB,EAAKjU,MACb,IAAK,MACD,OAAO,IAAI,GAAQ4S,GACvB,IAAK,OACD,OAAO,IAAI,GAASA,GACxB,IAAK,SACD,OAAO,IAAI,GAAWA,GAC1B,IAAK,OACD,OAAO,IAAI,GAASA,GACxB,IAAK,OACD,OAAO,IAAI,GAASA,GACxB,IAAK,QACD,OAAO,IAAI,GAAUA,EAAOqB,EAAKg8F,YACrC,IAAK,YACD,OAAO,IAAI,GAAcr9F,GAC7B,IAAK,iBACD,OAAO,IAAI,GAAmBA,GAClC,IAAK,kBACD,OAAO,IAAI,GAAoBA,GACnC,IAAK,UACD,OAAO,IAAI,GAAmBA,GAClC,IAAK,gBACD,OAAO,IAAI,GAAkBA,GACjC,IAAK,kBACD,OAAO,IAAI,GAAuBA,GACtC,QACI,MAAM,IAAIvV,MAAM,qBAAqB4W,EAAKjU,SAElD,GCxCJ,GAnBA,cAA8B,GAC1B,QAAAgiH,EAAS,KAAChiH,EAAI,YAAEm3G,IACZ,MAAO,SAAWn3G,CACtB,CAEA,MAAAwkB,CAAOvQ,EAAMrB,GACT,IAAKzV,MAAM+W,QAAQtB,GACf,MAAM,IAAI,GACNqB,EAAKjU,KACL,mCAAmC4S,aAI3C,MAAMqvG,EAAiBrvG,EAAM7D,KAAIjM,GAAKI,KAAK4+G,aAAat9F,OAAOvQ,EAAK87F,WAAYjtG,KAEhF,OAAO,IAAI,GAASmR,EAAK87F,WAAYkS,EACzC,GCFJ,GAfA,cAA6B,GACzB,QAAAD,EAAS,KAAChiH,EAAI,YAAEm3G,IACZ,MAAO,QAAUn3G,CACrB,CAEA,MAAAwkB,CAAOvQ,EAAMrB,GACT,MAAMqvG,EAAiB,GACvB,IAAK,MAAM13C,KAAQ33D,EACfqvG,EAAenlH,KAAKoG,KAAK4+G,aAAat9F,OAAOvQ,EAAK87F,WAAYxlC,IAGlE,OAAO,IAAI,GAAQt2D,EAAK87F,WAAYkS,EACxC,GCMJ,GAlBA,cAA6B,GACzB,QAAAD,EAAS,KAAEhiH,EAAI,YAAEm3G,IACb,MAAO,QAAUn3G,CACrB,CAEA,MAAAwkB,CAAOvQ,EAAMrB,GACT,MAAMqvG,EAAiB,GACvB,IAAK,MAAM13C,KAAQ33D,EACfqvG,EAAenlH,KAAK,CAChBoG,KAAK4+G,aAAat9F,OAAOvQ,EAAKo8F,QAAS9lC,EAAK,IAC5CrnE,KAAK4+G,aAAat9F,OAAOvQ,EAAKu6E,UAAWjkB,EAAK,MAItD,OAAO,IAAI,GAAQt2D,EAAKo8F,QAASp8F,EAAKu6E,UAAWyzB,EACrD,GCcJ,GA5BA,cAA+B,GAC3B,QAAAD,EAAS,KAAEhiH,EAAI,YAAEm3G,IACb,MAAO,UAAYn3G,CACvB,CAEA,MAAAwkB,CAAOvQ,EAAMrB,GACT,IAAKzV,MAAM+W,QAAQtB,GACf,MAAM,IAAI,GACNqB,EAAKjU,KACL,oCAAoC4S,aAI5C,MAAMsvG,EAAgBjuG,EAAKg8F,WAAWlhG,KAAI,CAAC3D,EAAGrP,IACnCmH,KAAK4+G,aAAat9F,OAAOpZ,EAAGwH,EAAM7W,MAM7C,OAA6B,IAAzBmmH,EAAczlH,OACPylH,EAAc,GAGlB,IAAI,GAAUjuG,EAAKg8F,WAAYiS,EAC1C,GCgBJ,GAxCA,cAAgC,GAC5B,QAAAF,EAAS,KAAEhiH,EAAI,YAAEm3G,IACb,MAAO,WAAan3G,CACxB,CAEA,MAAAwkB,CAAOvQ,EAAMrB,GACT,GAAqB,iBAAVA,EACP,MAAM,IAAI,GACNqB,EAAKjU,KACL,sCAAsC4S,aAI9C,MAAMuvG,EAAS9vG,OAAO4P,KAAKrP,GAAOnW,OAClC,GAAI0lH,IAAWluG,EAAKgO,KAAKxlB,OACrB,MAAM,IAAI,GACNwX,EAAKjU,KACL,4BAA4BiU,EAAKgO,KAAKxlB,4BAA4B0lH,mBAI1E,MAAMD,EAAgBjuG,EAAKg8F,WAAWlhG,KAAI,CAAC3D,EAAGrP,KAC1C,MAAMwT,EAAM0E,EAAKgO,KAAKlmB,GACtB,OAAOmH,KAAK4+G,aAAat9F,OAAOpZ,EAAGwH,EAAMrD,GAAI,IAMjD,OAA6B,IAAzB2yG,EAAczlH,OACPylH,EAAc,GAGlB,IAAI,GACPhS,GAAej8F,EAAKgO,KAAMhO,EAAKg8F,YAC/BiS,EAER,GCtCJ,MAAM,GAAQ,CACV,UACA,YACA,eACA,iBACA,YACA,eAyDJ,OAtDA,cAAiC,GAC7B,QAAAF,EAAS,KAAEhiH,EAAI,YAAEm3G,IACb,OAAO,GAAM39F,SAASxZ,EAC1B,CAEA,MAAAwkB,CAAOvQ,EAAMrB,GACT,IAAK1P,KAAKk/G,QAAQxvG,GACd,MAAM,IAAI,GACNqB,EAAKjU,KACL,4EAA4E4S,cAIpF,MAAOyvG,EAAaC,GAAejwG,OAAOgqC,QAAQzpC,GAAO,GAEnD2lG,EAAUtkG,EAAKs8F,SAASxhG,KAAIpP,IAC9B,OAAQ,CAAEuE,IAASmO,OAAOgqC,QAAQ18C,GAClC,OAAOuE,EAAKzH,UAGV2yC,EAAMn7B,EAAKs8F,SAASz+D,WAAUnyC,IAChC,OAAQ4P,EAAKogB,IAAMtd,OAAOgqC,QAAQ18C,GAClC,OAAO4P,IAAQ8yG,KAGnB,IAAa,IAATjzE,EACA,MAAM,IAAI,GACNn7B,EAAKjU,KACL,gCAAgCqiH,KAIxC,OAAQ,CAAEE,IAAiBlwG,OAAOgqC,QAAQpoC,EAAKs8F,SAASnhE,IAExD,GAAIkzE,EAAY7lH,SAAW8lH,EAAa9lH,OACpC,MAAM,IAAI,GACNwX,EAAKjU,KACL,IAAIqiH,kCAA4CE,EAAa9lH,8BAA8B6lH,EAAY7lH,kBAI/G,MAAM+lH,EAAet/G,KAAK4+G,aAAaW,eAAeF,EAAcD,GAEpE,OAAO,IAAI,GAAY/J,EAASnpE,EAAKozE,EAAcD,EAActuG,EAAKs8F,SAC1E,CAEA,OAAA6R,CAAQxvG,GACJ,MAAwB,iBAAVA,GACG,OAAVA,GACiC,IAAjCP,OAAOgqC,QAAQzpC,GAAOnW,QACtBU,MAAM+W,QAAQ7B,OAAOiqC,OAAO1pC,GAAO,GAC9C,GC9DJ,MAEM,GAAQ5S,GACH7C,MAAMwV,KAAK,WAAc3S,EAAM,KAHvB,KCGb0iH,GAAa,CACf,SACA,YACA,SAkDJ,OA/CA,cAA+B,GAC3B,QAAAV,EAAS,KAAEhiH,EAAI,YAAEm3G,IACb,MAAO,UAAYn3G,CACvB,CAEA,MAAAwkB,EAAO,YAACu1F,EAAW,OAAErW,GAASvvF,GAC1B,MAAOq5F,KAAatpG,GAAQw/F,EAE5B,GAAwB,iBAAb8J,EACP,MAAM,IAAI,GAAiB,yEAAyEA,eAGxG,MAAM/2B,EAAMsjC,EAAYxJ,SACnBxhG,KAAIjM,GAAK2yG,GAAc,GAAKpjG,OAAO4P,KAAKnf,GAAG,OAC3CgvC,WAAUhvC,GAAKA,IAAM0qG,IAE1B,IAAa,IAAT/2B,EACA,MAAM,IAAI,GAAiB,gEAG/B,MAAMm7B,EAAUmI,EAAYxJ,SAAS95B,GAC/BujC,EAAc3nG,OAAO4P,KAAK2vF,GAAS,IAClC6I,GAAYpoG,OAAOiqC,OAAOs1D,GAC3BC,EAAe4I,EAAS1rG,KAAI3D,GAC1BlI,KAAKy/G,QAAQv3G,GACN+I,EAGJjQ,EAAKilB,UAGhB,OAAOjmB,KAAK4+G,aAAat9F,OAAOu1F,EAAa,CAAC,CAACC,GAAcnI,GACjE,CAEA,OAAA8Q,CAAQ1uG,GACJ,SAAKyuG,GAAWlpG,SAASvF,EAAKjU,OAIZ,UAAdiU,EAAKjU,MAAoBiU,EAAKvD,MAAQ,GAK9C,GCnDJ,MAAM,GAAQ,CACV,eACA,gBAoBJ,OAjBA,cAAkC,GAC9B,QAAAsxG,EAAS,KAAEhiH,EAAI,YAAEm3G,IACb,OAAO,GAAM39F,SAASxZ,EAC1B,CAEA,MAAAwkB,CAAOvQ,EAAMrB,GACT,OAAQqB,EAAKjU,MACb,IAAK,eACD,OAAO,IAAI,GAAe4S,GAC9B,IAAK,eACD,OAAO,IAAI,GAAeA,GAC9B,QACI,MAAM,IAAIvV,MAAM,qBAAqB4W,EAAKjU,SAElD,GCEJ,GApBA,cAA8B,GAC1B,QAAAgiH,EAAS,KAAEhiH,EAAI,YAAEm3G,IACb,MAAO,aAAen3G,CAC1B,CAEA,MAAAwkB,CAAOvQ,EAAMrB,GACT,IAAKzV,MAAM+W,QAAQtB,GACf,MAAM,IAAI,GACNqB,EAAKjU,KACL,iDAAiD4S,aAIzD,MAAM8nG,EAAWx3G,KAAK4+G,aAAaW,eAAexuG,EAAKknG,cAAevoG,GAChE4nG,GHXYoI,EGWkB3uG,EAAKk0C,aHTtC,GAAKy6D,GAAS1jH,MAAM,EAAG,IAFT,IAAC0jH,EGalB,OAAO,IAAI,GAAapI,EAAYvmG,EAAKknG,cAAeT,EAC5D,GCwBJ,GAjCA,MACI,WAAAp5G,GACI4B,KAAK2/G,WAAa,CACd,IAAI,GAAqB3/G,MACzB,IAAI,GAAgBA,MACpB,IAAI,GAAeA,MACnB,IAAI,GAAeA,MACnB,IAAI,GAAiBA,MACrB,IAAI,GAAkBA,MACtB,IAAI,GAAiBA,MACrB,IAAI,GAAmBA,MACvB,IAAI,GAAoBA,MACxB,IAAI,GAAgBA,MAE5B,CAEA,cAAAu/G,CAAeK,EAAOxmE,GAMlB,OALA,GACIA,EAAO7/C,SAAWqmH,EAAMrmH,OACxB,oBAAoBqmH,EAAMrmH,uBAAuB6/C,EAAO7/C,wBChCpE,EAAgBT,KAAQ+mH,IACb/mH,EAAI+S,KAAI,CAACoB,EAAKpU,IAAMgnH,EAAKjhG,QAAO,CAACjjB,EAAGmkH,IAAS,IAAInkH,EAAGmkH,EAAKjnH,KAAK,CAACoU,MDkC3D8yG,CAAIH,EAAOxmE,GAAQvtC,KAAI0hC,GAAMvtC,KAAKshB,UAAUisB,IACvD,CAEA,MAAAjsB,CAAOvQ,EAAMrB,GACT,MAAM3X,EAAUiI,KAAK2/G,WAAWhxE,MAAK/e,GAAKA,EAAEkvF,SAAS/tG,KAGrD,OAFA,GAAOhZ,EAAS,qBAAqBgZ,EAAKjU,SAEnC/E,EAAQupB,OAAOvQ,EAAMrB,EAChC,GEwEJ,GA5GA,MACI,WAAAtR,GACI4B,KAAKy+G,YAAc,IAAI,EAC3B,CAEA,UAAAuB,CAAWjvG,EAAMrB,GACb,OAAQqB,EAAKjU,MACb,IAAK,iBACL,IAAK,kBACL,IAAK,UACL,IAAK,gBACL,IAAK,kBACD,OAAOkD,KAAKigH,UAAUlvG,EAAMrB,GAChC,IAAK,UACD,OAAO1P,KAAKkgH,UAAUnvG,EAAMrB,GAChC,IAAK,MACD,OAAO1P,KAAKmgH,MAAMpvG,EAAMrB,GAC5B,IAAK,MACD,OAAO1P,KAAKogH,MAAMrvG,EAAMrB,GAC5B,IAAK,SACD,OAAO1P,KAAKqgH,SAAStvG,EAAMrB,GAC/B,IAAK,eACD,OAAO1P,KAAKsgH,aAAavvG,EAAMrB,GACnC,IAAK,eACD,OAAO1P,KAAKugH,aAAaxvG,EAAMrB,GACnC,QACI,OAAOA,EAEf,CAEA,SAAAuwG,EAAU,KAACnjH,EAAI,EAAE2vB,GAAI/c,GACjB,OAAO1P,KAAKy+G,YAAYf,eAAehuG,EAAO5S,EAClD,CAEA,SAAAojH,CAAUnvG,EAAMrB,GACZ,IAAK1P,KAAKwgH,gBAAgBzvG,GACtB,OAAOrB,EAGX,GAAI,MAACmB,EAAW,MAAMyF,SAAS5G,GAC3B,MAAO,CAAC6+F,KAAM,IAGlB,MAAOuI,GAAe3nG,OAAO4P,KAAKrP,GAClC,MAAI,CAAC,OAAQ,QAAQ4G,SAASwgG,GACnBpnG,EAGJ,CAAC8+F,KAAM,CAAC9+F,GACnB,CAEA,eAAA8wG,EAAgB,MAAExjD,EAAK,SAAEqwC,IACrB,OAAOA,EAAS5+D,MAAK,EAAG8/D,UAAWA,GAAwB,IAAhBA,EAAKh1G,UACzC8zG,EAAS5+D,MAAK,EAAG+/D,UAAWA,GACvC,CAEA,KAAA2R,CAAMpvG,EAAMrB,GACR,GAAqB,iBAAVA,GAAgC,OAAVA,EAC7B,MAAM,IAAI,GACN,MACA,oDAAoDA,aAI5D,OAAOzV,MAAM+W,QAAQtB,IAAUA,aAAiBka,IAAMla,EAAQP,OAAOgqC,QAAQzpC,EACjF,CAEA,KAAA0wG,CAAMrvG,EAAMrB,GACR,GAAIA,aAAiBqa,IACjB,OAAOra,EAGX,GAAIzV,MAAM+W,QAAQtB,GACd,OAAO,IAAIqa,IAAIra,GAGnB,MAAM,IAAI,GACN,MACA,yCAAyCA,aAEjD,CAEA,QAAA2wG,CAAStvG,EAAM0vG,GACX,OAAO1vG,EAAKgO,KAAKH,QAAO,CAAChf,EAAG9C,KAAS,IAAM8C,EAAG,CAAC9C,GAAO2jH,EAAO3jH,MAAU,CAAC,EAC5E,CAEA,qBAAA4jH,CAAsB3vG,EAAMrB,GACxB,GAAqB,iBAAVA,IAAuBqD,OAAOhM,UAAU2I,GAC/C,MAAM,IAAI,GACNqB,EAAKjU,KACL,2CAA2C4S,YAGvD,CAEA,YAAA4wG,CAAavvG,EAAMrB,GAGf,OAFA1P,KAAK0gH,sBAAsB3vG,EAAMrB,GAE1BsuG,GAActuG,EAAO,IAChC,CAEA,YAAA6wG,CAAaxvG,EAAMrB,GAGf,OAFA1P,KAAK0gH,sBAAsB3vG,EAAMrB,GAE1BsuG,GAActuG,EAAO,IAChC,GC/FJ,GAdA,cAAkC,GAC9B,WAAAtR,GACI0d,QAEA9b,KAAK2gH,QAAU,IAAI,EACvB,CAEA,MAAAr/F,CAAOvQ,EAAMrB,GACT,MAAMkxG,EAAgB5gH,KAAK2gH,QAAQX,WAAWjvG,EAAMrB,GAEpD,OAAOoM,MAAMwF,OAAOvQ,EAAM6vG,EAC9B,GC2EJ,GApFA,MACI,WAAAxiH,GAEI4B,KAAK6gH,YAAc,IAAI,GAGvB7gH,KAAKy+G,YAAc,IAAI,GAGvBz+G,KAAK8gH,qBAAuB,IAAI,GAGhC9gH,KAAK+gH,iBAAmB,IAAI,EAChC,CAeA,MAAA3zG,CAAO2D,EAAMrB,GACT,MAAMuB,EAAOjR,KAAK8gH,qBAAqBx/F,OAAOvQ,EAAMrB,GAC9CsxG,EAAahhH,KAAK6gH,YAAYriG,UAAUvN,GACxCgwG,EAAU,IAAIjnH,WAAWgnH,EAAWtN,KAAK/2F,MAE/C,OAAO3c,KAAKy+G,YAAYrxG,OAAO,qBAAsB6zG,EACzD,CAqBA,MAAAptF,CAAO5iB,GACH,MAAMgwG,EAAUjhH,KAAKy+G,YAAYf,eAAezsG,EAAM,sBAChDiwG,EAAelhH,KAAK6gH,YAAYxrC,YAAY4rC,GAElD,OAAOjhH,KAAK+gH,iBAAiBrC,YAAYwC,EAC7C,CAgBA,cAAAxD,CAAezsG,EAAMF,GACjB,MAAMkwG,EAAUjhH,KAAKy+G,YAAYf,eAAezsG,EAAM,sBAChDiwG,EAAelhH,KAAK6gH,YAAYrG,oBAAoByG,EAASlwG,GAEnE,OAAO/Q,KAAK+gH,iBAAiBrC,YAAYwC,EAC7C,GCjBJ,GAnEA,MACI,WAAA9iH,GACI4B,KAAKmhH,iBAAmB,IAAI,EAChC,CAgBA,cAAAC,CAAe1xG,EAAOqB,GAClB,OAAO/Q,KAAKmhH,iBAAiB/zG,OAAO2D,EAAMrB,EAC9C,CAqBA,MAAAmkB,CAAO5iB,GACH,OAAOjR,KAAKmhH,iBAAiBttF,OAAO5iB,EACxC,CAkBA,cAAAysG,CAAezsG,EAAMF,GACjB,OAAO/Q,KAAKmhH,iBAAiBzD,eAAezsG,EAAMF,EACtD,G,sBCxDG,SAASswG,GAASpwG,GAAuB,IAAAqwG,EAC9C,OAAO5qF,GAAuB,QAAnB4qF,EAACC,KAAatwG,UAAK,IAAAqwG,EAAAA,EAAI,GACpC,CA6CO,SAASE,GAAW1mE,GACzB,MAoBM2mE,GAAa,IAAIC,IAAe1T,YApBpB,CAChByS,OAAQ,CACN,CACE3jH,KAAM,OACNiU,KAAM,CAAE4wG,OAAQ,CAAC,YAEnB,CACE7kH,KAAM,UACNiU,KAAM,CAAE4wG,OAAQ,CAAC,SAEnB,CACE7kH,KAAM,YACNiU,KAAM,CAAE4wG,OAAQ,CAAC,YAEnB,CACE7kH,KAAM,kBACNiU,KAAM,CAAE4wG,OAAQ,CAAC,uBAIsC,CAAC,GAE9D,OAAOjrF,GAAK7C,IADM,IAAI+tF,IAA2BR,eAAetmE,EAAQ2mE,IAE1E,CAKO,SAASI,GACd5wG,EACA6wG,EACAhnE,GAEA,OAAOpkB,GACLwwC,GAAc,CACZqF,GACA,IAAIvyE,WAAW,CAAC,IAChBwnH,GAAW1mE,GACXumE,GAASS,GACTprF,GAAK7C,GAAO5iB,MAGlB,C,mLC1FO,SAAS8wG,GACd15D,EACA4nB,EACA+xC,GAEA,MAAM92D,EAAW,CAAC+kB,GACd+xC,GAAS92D,EAAStxD,KAAK,YAC3B,MAAMqoH,EAAcpuF,GAAOw0B,GAC3B,OAAO6e,GAAc,CAACv4D,GAAOc,KAAKy7C,EAASnxD,KAAK,MAAO28B,GAAKurF,IAC9D,CAEA,IAAAC,GAAA,IAAAh4F,QAIe,MAAMi4F,WAAsB9V,GAQzCjuG,WAAAA,CAA4BsrC,GAC1B5tB,Q,mJANF2lE,CAAA,KAASygC,QAAiB,GAAa,KAKXx4E,UAAAA,EAE1B,MAAMI,EAAUxR,KAAAA,KAAUwR,QAAQU,SAAS3W,GAAO6V,I,UAC7Cw4E,G,EAAoBp4E,EAAQJ,U,WAAjC1pC,M,GACAA,KAAKqmD,QAAUj5C,GAAO08B,EAAQL,UAAWi+B,GAAS2C,eACpD,CAKA,eAAO+3C,GACL,MAAM14E,EAAYt8B,GAAOkrB,KAAAA,YAAiB,IAAKovC,GAAS4C,kBACxD,OAAO,IAAI63C,GAAcz4E,EAC3B,CAMA,UAAe1lC,CAAKiN,EAA2B4d,GAC7C,OAAO7uB,KAAKqiH,WAAWpxG,EAAM4d,EAC/B,CAGA,gBAAewzF,CAAWpxG,EAA2B4d,GACnD,OAAOyJ,KAAAA,KAAU+R,SAAS17B,GAAOc,KAAKwB,I,EAAYixG,I,SAALliH,Q,KAC/C,CAEA,qBAAesiH,CACbj6D,GACA,QAAE25D,EAAO,UAAE/xC,KAAcphD,GAAuD,CAAC,GAEjF,GAAiB,MAAbohD,EACF,MAAM,IAAItrB,EAAc,YAAa,WAAYsrB,GAEnD,MAAMgyC,EAAcpuF,GAAOw0B,GACrBk6D,EAAkBR,GAAgB15D,EAAa4nB,GAAuB,IAAZ+xC,GAE1D9lC,EAAa,OAAOl8E,KAAKqiH,WAAWE,EAAiB1zF,IAC3D,OAAOkpD,GAAQ,CAAE7rC,IAAKshC,GAAIkO,SAAUvD,UAAW8pC,EAAa/lC,cAC9D,CAEA,iBAAesmC,CAAYtmG,EAAiB2S,GAC1C,OAAO7uB,KAAKqiH,WAAW71C,GAAYtwD,GAAU2S,EAC/C,CAEA,mBAAe4zF,CACbxxG,EACA6wG,GACA,KACEhlH,EAAI,QACJ81B,EAAO,UACPq9C,EAAS,gBACTloB,KACGl5B,GAC4C,CAAC,GAElD,MAAM6zF,EAAQb,GAAc5wG,EAAM6wG,EAAK,CACrChlH,OACA81B,UACAq9C,YACAloB,oBAGF,OAAO36C,SADiBpN,KAAKqiH,WAAWK,EAAO7zF,GACtB64C,GAAS6C,UACpC,CAEA,oBAAeo4C,CACbC,GACA,UAAE3yC,GAAsC,CAAC,GAEzC,GAAiB,MAAbA,EAAmB,MAAM,IAAItrB,EAAc,YAAa,WAAYsrB,GACxE,MAAMlF,EAAU7D,GAAc,CAC5BqF,GACA,IAAIvyE,WAAW,CAAC,IAChB2U,GAAOc,KAAKwgE,GACZp8C,GAAO+uF,KAGT,OAAOx1G,SADiBpN,KAAKqiH,WAAWt3C,GACfrD,GAAS6C,UACpC,EC3EK,SAASs4C,GACdx6D,GACA,QACE25D,EAAO,QACPn+B,EAAO,SACPjJ,EAAQ,YACRkoC,GAME,CAAC,GAEL,MAAMn8C,EAASmR,GAASzvB,GACxB,GAAIse,EAAOz6B,MAAQshC,GAAIkO,SACrB,MAAM,IAAI32B,EACR,iFAIJ,IAAIhxC,EAAM,GA0CV,MAzCI,QAAS4yD,GAAsB,eAAZq7C,IACrBjuG,GAAO+C,OAAO6vD,EAAO0S,MAEnB1S,EAAOz6B,MAAQshC,GAAIkP,cACrB3oE,GAAO+C,OAAO6vD,EAAOlgB,UAEnBkgB,EAAOz6B,MAAQshC,GAAIkK,gBACrB3jE,GAAO+C,OAAO6vD,EAAOiU,WAEnBjU,EAAOz6B,MAAQshC,GAAImK,kBACrB5jE,GAAO+C,OAAO8jE,QAAAA,EAAY,IAExBjU,EAAOz6B,MAAQshC,GAAI8R,mBACD,IAAhBwjC,IAAsB/uG,GAAO+C,OAAO6vD,EAAOmY,wBAC3B,IAAhBgkC,IAAuB/uG,GAAO+C,OAAO6vD,EAAOoY,wBAG/CpY,EAAOz6B,MAAQshC,GAAI4O,SAClBzV,EAAOz6B,MAAQshC,GAAIgL,kBACnB7R,EAAOz6B,MAAQshC,GAAIiI,gBACnB9O,EAAOz6B,MAAQshC,GAAI2R,kBACT,cAAZ6iC,IAEAjuG,GAAO+C,OAAO6vD,EAAOne,SAEnBme,EAAOz6B,MAAQshC,GAAIgL,mBAAkBzkE,GAAO+C,OAAO6vD,EAAOuW,UAE3DvW,EAAOz6B,MAAQshC,GAAIgL,kBAClB7R,EAAOz6B,MAAQshC,GAAIiI,gBACnB9O,EAAOz6B,MAAQshC,GAAIiL,YACnB9R,EAAOz6B,MAAQshC,GAAIkI,UACT,eAAZssC,IAEAjuG,GAAO+C,OAAO6vD,EAAOqQ,UAAYlgE,OAAO+sE,QAAAA,EAAWld,EAAOiT,WAExDjT,EAAOz6B,MAAQshC,GAAIkI,UAAY/O,EAAOz6B,MAAQshC,GAAI0K,cACpDnkE,GAAO8uG,GACL9qC,GAAQpR,EAAOvgC,GAAG+xC,WAClBxR,EAAOz6B,MAAQshC,GAAI0K,YAAc,CAAE8pC,QAAS,aAAgB,CAAC,IAG1DjuG,CACT,CASO,SAASgvG,GACd16D,EACA4nB,EACAphD,GAEA,MAAM83C,EAASmR,GAASzvB,EAAamlB,GAAIkO,UACzC,GAAI/U,EAAOwR,UAAUjsC,MAAQshC,GAAIkI,SAC/B,OAAOmtC,GAAiB9qC,GAAQpR,EAAOwR,WAAYtpD,GAGrD,MAAMuX,EAAK2xC,GAAQpR,EAAOwR,WACpB9xB,EAAU+lD,GAA4BhmE,IACrC48E,EAAWC,GAAgB,EAAC,GAAM,GAAOp3G,KAAK+jB,GACnDu8C,GAAgB41C,GAAgB37E,EAAI6pC,EAAWrgD,GAAI+2C,EAAOuV,WAAW,GAAI71B,KAE3E,IAAK28D,IAAcC,EAAc,MAAM,IAAIx+D,EAAiB,0BAC5D,OAAOo+D,GAAiB9qC,GAAQpR,EAAOwR,WAAY,IAC7C6qC,GAAa,CAAEhB,QAAS,iBACzBnzF,GAEP,CAUOwlC,eAAe6uD,GACpB76D,EACAsF,GACA,QAAEw1D,KAAYt0F,GAA4E,CAAC,GAE3F,IAAI83C,EAASmR,GAASzvB,GACtB,MAAM+6D,EAAaz8C,EAAOz6B,MAAQshC,GAAIkO,SAChC1xB,EAASo5D,IAA0B,IAAZD,GAAoBp9B,GAAY19B,GAI7D,GAHIse,EAAOz6B,MAAQshC,GAAIkO,WAAU/U,EAASA,EAAOwR,WAI5B,MAAnBtpD,EAAQg1D,UACG,IAAX75B,GACA,CAACwjB,GAAIgL,iBAAkBhL,GAAIiI,eAAgBjI,GAAIiL,WAAYjL,GAAIkI,UAAUp/D,SAASqwD,EAAOz6B,KACzF,CACA,MAAM,SAAEu4D,EAAQ,OAAEC,SAAiB/2C,EAAK89C,yBAAyBzhD,GAC3Dq5D,EAAe5e,QAAAA,EAAYC,EACjC,GAAoB,MAAhB2e,EACF,MAAM,IAAIn9D,GAAc,wDAAwD8D,KAElFn7B,EAAQg1D,QAAUw/B,EAAax/B,OACjC,CAMA,GAJwB,MAApBh1D,EAAQ+rD,UAAoBpN,GAAImK,kBAAoBhR,EAAOz6B,MAC7Drd,EAAQ+rD,gBAAkBjtB,EAAKgtB,kBAAkBhU,EAAOkH,WAAW+M,SAASv8E,YAGnD,MAAvBwwB,EAAQi0F,aAAuBt1C,GAAI8R,kBAAoB3Y,EAAOz6B,MAAmB,IAAZi3E,EAAkB,CACzF,MAAM,YAAE3lB,SAAsB7vC,EAAKw6C,mBAAmBxhC,EAAOiY,WAC7D/vD,EAAQi0F,YAAcn8C,EAAOkY,SAAW2e,CAC1C,CAEA,OAAO4lB,EACHL,GAA2B16D,QAAmBsF,EAAKuiB,eAAgBrhD,GACnEg0F,GAAiBx6D,EAAax5B,EACpC,C,sBC/IA,MAAMy0F,GAA0B,GAEhCjvD,eAAekvD,GACbn9E,EACAunB,EACA61D,GAEA,MAAMn9D,EAAU+lD,GAA4Br0B,GAAQ3xC,KAC7Cq9E,GAAS,OAAEj+D,IAAU,yBAAE0vB,EAAwB,cAAEi3B,UAAyBjpF,QAAQsL,IAAI,CAC3Fm/B,EACG6jB,mBAAmBnrB,GACnBurB,OAAO38D,IACN,IAAKqyD,GAAuBryD,GAAQ,MAAMA,EAC1C,MAAO,CAAErU,GAAIylD,EAASsrB,QAAS,GAAI1oC,MAAO,EAAG,IAG9CkpD,MAAM4I,IAAG,IAAWA,EAAKn6F,GAAIm6F,EAAIn6F,OACpC+sD,EAAK+iB,2BACL/iB,EAAKynB,gBAGP,aACQlyD,QAAQsL,IACZ80F,GAAWz3G,KAAIwoD,SACbz0D,EAAEwmC,EAAI,CACJunB,OACA81D,UACAj+D,SACA0vB,2BACAi3B,gBACAqX,sBAIN9P,MACJ,CAYer/C,eAAeqvD,GAC5Br7D,EACAs7D,GAEA,MAAM92D,EAAW82D,EAAc92D,SAASvvD,QACxCuvD,EAAST,aAAa,CAAEtvD,KAAM,kBAC9B,MAAM6wD,EAAO,IAAI45C,GAAKoc,EAAcxc,MAAO,CACzC9K,eAAe,EACfxvC,WACAotC,mBAAoB,CAAC8B,QAGvB,OADApuC,EAAKs+C,iBAAmB53C,SAAYsvD,EAAc1X,mBAC3CsX,GAA0BzrC,GAASzvB,GAAcsF,EAAM,GAChE,CAEA21D,GAAW1pH,MACT,CAACwsC,GAAMq9E,UAAStX,gBAAeqX,oBAC7B,GAAIp9E,EAAG8F,MAAQshC,GAAIkO,SAAU,MAAO,GACpC,MAAM,UAAEvD,EAAS,WAAE+D,GAAe91C,EAClC,GAAiC,OAA5B+xC,QAAAA,EAAa+D,GAAqB,MAAO,GAC9C,GAA0B,IAAtBA,EAAW3iF,OAAc,MAAO,GACpC,MAAM2F,EAASyP,GAAOc,KACpB,CAAC08F,KAAmBqX,EAAcltG,SAASk3D,GAAI0K,aAAe,CAAC,YAAc,IAAKn+E,KAAK,MAEnF6pH,EAAW/vF,GAAOkkD,GAAQI,IAC1BoqC,EAAkBr7C,GAAc,CAAChoE,EAAQ0kH,IACzCC,EAAsB38C,GAAc,CAAChoE,EAAQw3B,GAAKktF,KACxD,OACEz3C,GAAgBo2C,EAAiBrmC,EAAW,GAAIunC,EAAQ7iH,KACxDurE,GAAgB03C,EAAqB3nC,EAAW,GAAIunC,EAAQ7iH,IAErD,GACF,CACL,CACEsb,QACE,8IAEF7P,IAAK,mBACLy3G,YAAa,CAAC,YAAa,eAE9B,IAEHzvD,MAAOjuB,GAAMunB,OAAM61D,oBACjB,IAAIO,EAGJ,MAFI,cAAe39E,IAAI29E,EAAW39E,EAAG+xC,WACjC,OAAQ/xC,IAAI29E,EAAW39E,EAAGA,IACd,MAAZ29E,EAAyB,GACtBR,GAA0BQ,EAAUp2D,EAAM,IAAI61D,EAAep9E,EAAG8F,KAAK,IAE9E,CAAC9F,GAAMof,YACC,QAASpf,EACA,IAAXA,EAAG2qC,KAAa3qC,EAAG2qC,IAAMvrB,EAAe,GACrC,CACL,CACEtpC,QAAS,OAAOkqB,EAAG2qC,6CAA6CvrB,IAChEn5C,IAAK,aACLy3G,YAAa,CAAC,SANS,KAU7BzvD,MAAOjuB,GAAMq9E,UAASD,gBAAe71D,WACnC,GAA6B,IAAzB61D,EAAcjqH,OAAc,MAAO,GACvC,MAAMyqH,QAAad,GAA0BnrC,GAAQ3xC,GAAKunB,GAAMikB,OAAM,IAAM,KAC5E,OAAIoyC,GAAQP,EAAQ9xC,QAAgB,GAC7B,CACL,CACEz1D,QAAS,mBAAmBunG,EAAQ9xC,+DAA+DqyC,IACnG33G,IAAK,sBACLy3G,YAAa,CAAC,SAAU,MAAO,UAAW,WAAY,aAEzD,IAEHzvD,MAAOjuB,GAAMunB,WACX,GAAIvnB,EAAG8F,MAAQshC,GAAI4O,SAAWrQ,GAAU3lC,EAAGi2C,YAAa3U,GAASgD,MAAO,MAAO,GAC/E,MAAMu5C,QAAkBt2D,EAAK6jB,mBAAmBprC,EAAGi2C,aAAazK,OAAO38D,IACrE,IAAKqyD,GAAuBryD,GAAQ,MAAMA,EAC1C,OAAO,IAAI,IAEb,OAAiB,MAAbgvG,IAA2C,IAAtBA,EAAUhnB,QAAyB,GACrD,CACL,CACE/gF,QAAS,mCACT7P,IAAK,6BACLy3G,YAAa,CAAC,gBAEjB,IAEH,CAAC19E,GAAMq9E,cACL,IAAIvnG,EAOJ,OANIkqB,EAAG8F,MAAQshC,GAAIkO,UAA6B,gBAAjB+nC,EAAQxjE,MAAmD,IAAzB7Z,EAAG81C,WAAW3iF,SAC7E2iB,EAAU,0EAERkqB,EAAG8F,MAAQshC,GAAIkI,UAA6B,UAAjB+tC,EAAQxjE,OACrC/jC,EAAU,oDAEG,MAAXA,EAAwB,GACrB,CAAC,CAAEA,UAAS7P,IAAK,qBAAsBy3G,YAAa,CAAC,QAAS,IAIvE,CAAC19E,GAAM8uC,+BAA+B,IAAAzF,EAAAC,EACpC,MAAMw0C,EAAa12C,GAAIgK,mBAAqBpxC,EAAG8F,IACzCi4E,EAAiB32C,GAAIgL,mBAAqBpyC,EAAG8F,KAAOshC,GAAIiL,aAAeryC,EAAG8F,IAC1Ek4E,EAAe52C,GAAIiI,iBAAmBrvC,EAAG8F,KAAOshC,GAAIkI,WAAatvC,EAAG8F,IACpEn7B,EAEsC,QAFlC0+D,EAC0B,QAD1BC,EACPw0C,EAAa,cAAgB,YAAI,IAAAx0C,EAAAA,EACjCy0C,EAAiB,kBAAoB,YAAI,IAAA10C,EAAAA,EACzC20C,EAAe,gBAAkB,KACpC,GAAY,MAARrzG,EAAc,MAAO,GACzB,MAAMywD,EAAW+S,GAAgBW,GAA0BnkE,GAK3D,IAAIksE,EAGJ,GAFI,eAAgB72C,IAAI62C,EAAY,CAAEtI,WAAYvuC,EAAGuuC,aACjD,cAAevuC,IAAI62C,EAAY72C,EAAG62C,WACrB,MAAbA,EAAmB,MAAM,IAAI92B,GACjC,OACGqb,EAASmT,WAAWr+D,SAAS2mE,EAAUtI,aACvCwvC,IAAmB3iD,EAASiT,UAAUn+D,SAAS2mE,EAAUxI,WAEnD,CACL,CACEv4D,QAAS,kBAAkBwC,KAAKC,UAAUs+D,8BAAsCv+D,KAAKC,UAAU6iD,KAC/Fn1D,IAAK,0BACLy3G,YAAa,CAAC,YAAa,gBAI1B,EAAE,IAEXzvD,MAAOjuB,GAAMunB,WACX,GAAI6f,GAAIiI,iBAAmBrvC,EAAG8F,IAAK,MAAO,GAE1C,GAAI9F,EAAG0tC,WAAWlkB,WAAW,OAAQ,MAAO,GAC5C,IACE,MAAM,OAAE6zB,SAAiB91B,EAAKqmB,YAAY5tC,EAAG0tC,YAC7C,OAAI2P,EAAe,GACZ,CACL,CACEvnE,QAAS,YAAYkqB,EAAG0tC,2BACxBznE,IAAK,oBACLy3G,YAAa,CAAC,eAGpB,CAAE,MAAO7uG,GACP,KAAMA,aAAiB6oD,KAA4C,MAA9B7oD,EAAMk/C,UAAU0P,WAAoB,MAAM5uD,EAC/E,MAAO,CACL,CACEiH,QAASwC,KAAKoQ,MAAM7Z,EAAMk/C,SAAS0P,YAAYmB,OAC/C34D,IAAK,mBACLy3G,YAAa,CAAC,eAGpB,KC/NG,MAAMO,WAAuB5/D,EAKlCrmD,WAAAA,CAAY8d,EAAiBooG,EAA+Bj8D,GAC1DvsC,MAAMI,GACNlc,KAAKlD,KAAO,iBACZkD,KAAKskH,WAAaA,EAClBtkH,KAAKqoD,YAAcA,CACrB,EAUKgM,eAAekwD,GACpBC,GACA,OACEx0C,EAAM,UACNjpB,EAAS,OACTxc,GAAS,EAAI,UACbk6E,GAAY,EAAI,QAChBtzC,EAAO,QACP6wC,KACGnzF,IAGL,MAAMuX,QAAW2gB,EAAUu7D,gBAAgBkC,EAAY,IAClD31F,EACHmhD,SACAgyC,UACA/xC,gBAAiBD,EAAOE,iBAG1B,IAAgB,IAAZ8xC,EAAkB,MAAO,CAAEtrF,KAAMqvD,GAAY3/C,GAAK4/C,MAAO5/C,GAE7D,GAAImE,EAAQ,CACV,MAAM+5E,QAAmBZ,GAAkBt9E,EAAI4pC,GAC/C,GAAIs0C,EAAW/qH,OAAS,EAAG,CACzB,MAAM2iB,EAAU,oCAAoCooG,EACjDz4G,KAAKjM,GAA2BA,EAAEsc,UAClCniB,KAAK,QACR,MAAM,IAAIsqH,GAAenoG,EAASooG,EAAYl+E,EAChD,CACF,CAEA,IACE,IAAIs+E,EACJ,IACEA,EAAuB,MAAb39D,EAAoB,MAAMA,EAAUV,UAAY,IAC5D,CAAE,MAAOpxC,GACPyvG,EAAU,IACZ,CACA,MAAM,OAAE16D,SAAiBgmB,EAAOs7B,gBAC9B,CAAEllE,MACF,CACEgtD,eAAgB,CACdD,cAAe,CAEb,eAAgB,SACD,MAAXuxB,EAAkB,CAAEA,WAAY,CAAC,MAM7C,GAAID,EAAW,CACb,MAAME,QAAmBh0C,GAAK3mB,EAAQ,CAAEgmB,YAAWnhD,IAC7C+1F,EAAS,IACVD,EACHjuF,KAAMiuF,EAAWjuF,KACjBsvD,MAAO5/C,GAGT,GAAe,MAAX+qC,IAAoBA,EAAU,EAAG,CACnC,MAAM70E,EAAuB,kBAAZ60E,OAAwBtgE,EAAYsgE,EACrD,MAAO,IACFyzC,EACHC,yBAA0B3zC,GAAiBlnB,EAAQ,CAAEgmB,SAAQmB,QAAS70E,KAAMuyB,IAEhF,CACA,OAAO+1F,CACT,CACA,MAAO,CAAEluF,KAAMszB,EAAQg8B,MAAO5/C,EAChC,CAAE,MAAOnxB,GAEP,MADAsyD,GAAYtyD,GACN9F,OAAO8/C,OAAOh6C,EAAO,CACzB+wE,MAAO5/C,EACP0+E,SAAUzwD,SAAYqvD,GAAkBt9E,EAAI4pC,IAEhD,CACF,C,sBCtGA,MAAM+0C,GAAe9zG,GACnBtC,GAAOc,KAAKwB,GAAM5S,SAAS,UAAUw5F,WAAW,IAAK,KAAKA,WAAW,IAAK,KAAK13F,QAAQ,MAAO,IAE1F6kH,GAAiB/zG,GACrBtC,GAAOc,KAAKwB,EAAK4mF,WAAW,IAAK,KAAKA,WAAW,IAAK,KAAM,UAExDotB,GAAqBh0G,IAAS,IAAAqwG,EAAA,OAAayD,GAA8B,QAAnBzD,EAACC,KAAatwG,UAAK,IAAAqwG,EAAAA,EAAI,GAAG,EAEhFtoD,GAAS,uCAeR3E,eAAe6wD,GAAQC,EAAsB1B,GAClD,MAAM14C,EAAU,IAAKo6C,GACf,YAAap6C,IACjBA,EAAQq6C,QAAU,CAChBC,IAAK,MACLC,IAAK,UACLppH,EAAG6oH,GAAYlxF,GAAO4vF,EAAQp9D,iBAGVx1C,IAApBk6D,EAAQq6C,gBAA8Br6C,EAAQq6C,QAClD,MAAM1wD,EAAO,GAAGsE,MAAUisD,GAAkBl6C,KACtCqB,QAAkBq3C,EAAQpB,WAAW3tD,GAC3C,MAAO,GAAGA,KAAQqwD,GAAY34C,IAChC,CAQO,SAASm5C,GACdC,EACAn/D,GAUA,IAAAo/D,EACA,MAAM3qB,EAAa0qB,EAAIl8G,MAAM,KAC7B,GAA0B,IAAtBwxF,EAAWvhG,OACb,MAAM,IAAIorD,EAAc,uBAAwB,EAAGm2C,EAAWvhG,QAChE,MAAO0S,EAAGy5G,EAAgBt5C,GAAa0uB,EACvC,GAAI7uF,IAAM+sD,GAAQ,MAAM,IAAIrU,EAAc,aAAcqU,GAAQ/sD,GAChE,MAAM8+D,EAAUrsD,KAAKoQ,MAAMk2F,GAAcU,GAAgBrnH,YACnDsnH,EAAqB,QAAlBF,EAAG16C,EAAQq6C,eAAO,IAAAK,EAAAA,EAAI,CAAC,EAC1BG,EACK,MAATD,EAAIzpH,GAAyB,QAAZypH,EAAIN,KAA6B,YAAZM,EAAIL,IACtCj/D,EACAj5C,GAAO43G,GAAcW,EAAIzpH,GAAIwrE,GAAS2C,gBAC5C,GAAe,MAAXhkB,GAAmBu/D,IAAWv/D,EAChC,MAAM,IAAI1B,EAAc,UAAW,GAAGihE,gBAAsBv/D,GAE9D,GACY,MAAVu/D,IACCz5C,GAAgBx9D,GAAOc,KAAK,GAAGxD,KAAKy5G,KAAmBV,GAAc54C,GAAYw5C,GAElF,MAAM,IAAIj8D,GAAsB,wBAAwBi8D,KAE1D,MAAO,CAAE76C,UAAS66C,SACpB,CAQO,SAASC,GAAMC,GACpB,IAEE,OADAP,GAAUO,IACH,CACT,CAAE,MAAO7wG,GACP,OAAO,CACT,CACF,CAOO,SAAS8wG,GAAUD,GACxBP,GAAUO,EACZ,CAQO,SAASE,GAAUR,EAAUn/D,GAClC,IACE,MAAM,OAAEu/D,GAAWL,GAAUC,EAAKn/D,GAClC,OAAiB,MAAVu/D,CACT,CAAE,MAAO3wG,GACP,OAAO,CACT,CACF,CCnHO,IAAKgxG,GAAa,SAAbA,GAAa,OAAbA,EAAAA,EAAa,+BAAbA,EAAAA,EAAa,uBAAbA,EAAAA,EAAa,+BAAbA,EAAAA,EAAa,mBAAbA,EAAAA,EAAa,mCAAbA,CAAa,MAuBzB,MAAMC,GAAqB7/D,GAAQqhB,GAASyC,eAItCg8C,GAAe,CACnB3nG,SAAAA,CAAU9O,GACR,OAAOw2G,GAAmB1nG,UAAUpR,GAAOymB,GAAOnkB,GAAQg4D,GAASyC,eACrE,EACAkL,WAAAA,CAAY3lE,GACV,OAAOtC,GAAOymB,GAAOqyF,GAAmB7wC,YAAY3lE,IAASg4D,GAAS0C,cACxE,GAMIriB,GAAkB1B,GAAQqhB,GAASuC,iBAK5B6V,GAAU,CACrB,CACE5zC,IAAK+vC,GAAegqC,GAAcG,cAClCxzF,QAASqpD,GAAe,GAAG,GAC3B9I,eAAgB9sB,GAAQqhB,GAAS2C,gBACjCtiB,oBAEF,CACE7b,IAAK+vC,GAAegqC,GAAcI,UAClCzzF,QAASqpD,GAAe,GAAG,GAC3B9I,eAAgB9sB,GAAQqhB,GAAS2C,gBAIjCwS,OAAM,GACN90B,oBAEF,CACE7b,IAAK+vC,GAAegqC,GAAcK,cAClC1zF,QAASqpD,GAAe,GAAG,GAC3B9I,eAAgB9sB,GAAQqhB,GAAS2C,gBACjCtiB,oBAEF,CACE7b,IAAK+vC,GAAegqC,GAAc3iC,QAClC1wD,QAASqpD,GAAe,GAAG,GAC3B9I,eAAgB9sB,GAAQqhB,GAAS2C,gBACjCtiB,oBAEF,CACE7b,IAAK+vC,GAAegqC,GAAc78C,gBAClCx2C,QAASqpD,GAAe,GAAG,GAC3B+B,QAASmoC,GACTp+D,qBC3EG,SAASw+D,GAAe5/C,GAC7B,OAAOuZ,GAAWJ,GAASmmC,GAAet/C,EAAQ,CAAC,EAAGe,GAAS+B,UACjE,CASO,SAAS+8C,GACdlqC,EACAiE,GAEA,OAAOF,GAAaP,GAASmmC,GAAe3pC,EAASiE,EAAa,CAAC,EACrE,C,6JCwBA,MAAMkmC,WAA4BxgE,GAChC7nD,WAAAA,CAAYtB,EAAgB4pH,GAC1B5qG,MAAM,SAAS4qG,aAAkB5pH,4BACjCkD,KAAKlD,KAAO,qBACd,EAGF,IAAA6pH,GAAA,IAAAz8F,QAOe,MAAMwgD,GASnBtsE,WAAAA,CACkBsR,EACTmf,G,iBAVJ,E,mHAAL,K,EAAA83F,I,WAAe,KASGj3G,MAAAA,EAAe,KACxBmf,QAAAA,EASP7uB,KAAK6uB,QAAUA,CACjB,CAKA,MAAIjuB,GACF,OAAO8tE,GAAc1uE,KAAK0P,MAC5B,CAWA,YAAMk3G,CAAO/3F,EAA6B,CAAC,GACzC,MAAMg4F,EAAM,IAAK7mH,KAAK6uB,WAAYA,GAQlC,OAAO01F,SAPUz+B,GAAa,CAC5BghC,kBAAkB,KACfD,EACH36E,IAAKshC,GAAIuP,aACTF,OAAQ78E,KAAK0P,MACb8sE,UAAWqqC,EAAI9/D,UAAUV,UAEAwgE,EAC7B,CAkBA,YAAM7wF,CACJs+C,EACAzlD,EAA6B,CAAC,GAE9B,MAAM,eAAEk4F,KAAmBF,GAAQ,IAAK7mH,KAAK6uB,WAAYA,GACnDm4F,EAAc,KACK,IAAnBD,GACF53G,OAAO83D,mBACE4/C,EAAI72C,OAAOkE,mBAAmBl0E,KAAK0P,QAAQ4kE,SAASzoE,KAAI,EAAGQ,MAAKzL,QAAS,CAC9EyL,EACAzL,SAGH0zE,GAGC2yC,EAAiB93G,OAAOiqC,OAAO4tE,GAAav4E,MAAM7uC,GAAMmsE,GAAUnsE,EAAG8nE,GAAS+B,aAE9ErjC,QAAW0/C,GAAa,CAC5BghC,kBAAkB,KACfD,EACH36E,IAAKshC,GAAIoP,aACThqD,QAASq0F,EAAiB,EAAI,EAC9BpqC,OAAQ78E,KAAK0P,MACb8sE,UAAWqqC,EAAI9/D,UAAUV,QACzBiuB,SAAUnlE,OAAOgqC,QAAQ6tE,GAAan7G,KACpC,EAAEQ,EAAKzL,MAAqD,CAAGyL,MAAKzL,WAGxE,OAAO2jH,GAAgBn+E,EAAIygF,EAC7B,CAYA,cAAMK,CACJ7gE,EACAx3B,EAA+B,CAAC,GAEhC,MAAMg4F,EAAM,IAAK7mH,KAAK6uB,WAAYA,GASlC,OAAO01F,SARUz+B,GAAa,CAC5BghC,kBAAkB,KACfD,EACH36E,IAAKshC,GAAIsP,eACTD,OAAQ78E,KAAK0P,MACb8sE,UAAWqqC,EAAI9/D,UAAUV,QACzBg2B,YAAah2B,IAEYwgE,EAC7B,CAWA,cAAMM,CAASt4F,EAA6B,CAAC,GAK3C,IAAAu4F,EACA,MAAMp3C,EAAuB,QAAjBo3C,EAAGv4F,EAAQmhD,cAAM,IAAAo3C,EAAAA,EAAIpnH,KAAK6uB,QAAQmhD,OACxCq3C,QAAkBr3C,EAAOkE,mBAAmBl0E,KAAK0P,OACvD,MAAO,IACF23G,EACHzmH,GAAIymH,EAAUzmH,GACd8sE,MAAO25C,EAAU35C,MAErB,CAWA,qBAAM45C,CAAgBz4F,EAA6B,CAAC,GAKlD,IAAA04F,EACA,IAAK33C,GAAc5vE,KAAK0P,OAAQ,MAAM,IAAI+2G,GAAoBzmH,KAAK0P,MAAO,qBAC1E,MAAMsgE,EAAuB,QAAjBu3C,EAAG14F,EAAQmhD,cAAM,IAAAu3C,EAAAA,EAAIvnH,KAAK6uB,QAAQmhD,OACxCq3C,QAAkBr3C,EAAOi4B,sBAAsBjoG,KAAK0P,OAC1D,MAAO,IACF23G,EACHzmH,GAAIymH,EAAUzmH,GACd89F,cAAe2oB,EAAU3oB,cAE7B,CAQA,eAAM8oB,CACJ1rC,EACAjtD,EAA6E,CAAC,GAE9E,OAAO7uB,KAAKg2B,OAAO,CAAC,EAAG,IAAKnH,EAASitD,UAASirC,gBAAgB,GAChE,CAgBA,WAAMU,CAAM54F,EAA4B,CAAC,GACvC,MAAMg4F,EAAM,IAAK7mH,KAAK6uB,WAAYA,G,MASlC,OAAO01F,SARUz+B,GAAa,CAC5BghC,kBAAkB,EAClBnqC,U,EAAegqC,G,WAAL3mH,WACP6mH,EACH36E,IAAKshC,GAAIkP,YACTF,UAAWqqC,EAAI9/D,UAAUV,QACzBvpD,KAAMkD,KAAK0P,QAEcm3G,EAC7B,CAaA,cAAMa,CACJ74F,EAA+B,CAAC,GAEhC,MAAMg4F,EAAM,IAAK7mH,KAAK6uB,WAAYA,GAC5B8tD,EAAW3Q,KACX5lC,QAAW0/C,GAAa,CAC5BghC,kBAAkB,KACfD,EACH36E,IAAKshC,GAAI+O,eACTC,UAAWqqC,EAAI9/D,UAAUV,QACzBo2B,aAAc9N,GAAe3uE,KAAK0P,MAAOitE,KAErCx1D,QAAeo9F,GAAgBn+E,EAAIygF,G,QAEzC,O,EADalqC,G,EAARgqC,I,SAAL3mH,M,GACO,IAAKmnB,EAAQw1D,WACtB,CAaA,SAAMgrC,CACJlhE,EACA53B,EAA6C,CAAC,GAE9C,IAAK+gD,GAAc5vE,KAAK0P,OAAQ,MAAM,IAAI+2G,GAAoBzmH,KAAK0P,MAAO,cAC1E,MAAMm3G,EAAM,IAAK7mH,KAAK6uB,WAAYA,GAUlC,OAAO01F,SATUz+B,GAAa,CAC5BghC,kBAAkB,KACfD,EACH36E,IAAKshC,GAAIkP,YACTF,UAAWqqC,EAAI9/D,UAAUV,QACzBs2B,SAAU,EACV7/E,KAAMkD,KAAK0P,MACX+2C,YAEyBogE,EAC7B,EC1UF,MAIMe,GAAW,EAAE72G,WACf,IACI0b,EADApgB,EAAM0E,EALG,IAACrB,EAWd,OAXcA,EAODrD,IANoB,iBAAVqD,GAAsBA,EAAMtR,cAAgB+Q,WAO7D9C,EAAKogB,IAAMtd,OAAOgqC,QAAQ9sC,IAGjB,WAARA,CAAQ,EAiInB,OA9HA,cAA8B,GAC1B,WAAAjO,CAAY0jH,GACRhmG,QAEA9b,KAAK8hH,IAAMA,CACf,CAEA,YAAA+F,CAAajjC,EAAU86B,GACnB,MAAMoI,EAAU9nH,KAAK+nH,gBAAgBnjC,GAAUq0B,UAAUtqE,MAAKlyC,GAAKA,EAAEK,OAAS4iH,IAE9E,GAAIoI,EAAS,CACT,MAAMlI,EAAQkI,EAAQ9kH,UAAU6I,KAAIpP,GAAKuD,KAAKguG,YAAYvxG,EAAEsU,QACtD8d,EAAUi5F,EAAQ9kH,UAAUwrC,OAAOo5E,IACzC,MAAO,CACHhI,QACAh2B,SAAUg2B,EAAMrmH,OAASs1B,EAAQt1B,OAEzC,CAEA,GAAgB,SAAZmmH,EACA,MAAO,CAACE,MAAO,GAAIh2B,SAAU,GAGjC,MAAM,IAAI,GAAiB,oBAAoB81B,IACnD,CAEA,aAAAsI,CAAcpjC,EAAU86B,GACpB,GAAgB,SAAZA,EACA,OAAO1/G,KAAKguG,YAAY,QAG5B,MAAM8Z,EAAU9nH,KAAK+nH,gBAAgBnjC,GAAUq0B,UAAUtqE,MAAKlyC,GAAKA,EAAEK,OAAS4iH,IAE9E,IAAKoI,EACD,MAAM,IAAI,GAAiB,oBAAoBpI,KAGnD,OAAO1/G,KAAKguG,YAAY8Z,EAAQG,QACpC,CAEA,YAAAC,CAAatjC,EAAU4b,GACnB,MAAMshB,EAAM9hH,KAAK+nH,gBAAgBnjC,GAEjC,IAAKk9B,EAAIv/G,eAAe,SACpB,MAAM,IAAI,GAAiB,6BAG/B,MlGgKc,EAACs0G,EAAarW,KACzB,CACH1jG,KAAM,QACN+5G,cACArW,WkGpKO2nB,CAAcnoH,KAAKguG,YAAY8T,EAAI/gG,OAAQy/E,EACtD,CAEA,YAAAmN,CAAa58F,GACT,GAAoB,iBAATA,EACP,OAAO,EAGX,GAAI/Q,KAAKooH,UAAUr3G,GACf,OAAO,EAGX,MAAO6jC,EAAWyzE,GAAct3G,EAAKzH,MAAM,KAG3C,QAFsBtJ,KAAK+nH,gBAAgBnzE,EAG/C,CAEA,SAAAwzE,CAAUr3G,GACN,MAAa,YAATA,CAKR,CAEA,eAAAg3G,CAAgBjrH,GACZ,IAAK,MAAML,KAAKuD,KAAK8hH,IAAK,CACtB,OAAQ/N,EAAO9iG,IAAS9B,OAAOgqC,QAAQ18C,GACvC,GAAIwU,EAAKnU,OAASA,EACd,OAAOmU,CAEf,CAEA,OAAO,IACX,CAEA,cAAA28F,CAAe78F,EAAM41D,EAAS,IAC1B,MAAO/xB,EAAW0zE,GAAav3G,EAAKzH,MAAM,KACpCi/G,EAAgBvoH,KAAK+nH,gBAAgBnzE,GAG3C,IAAK2zE,EACD,MAAM,IAAI,GAAiB,yBAA2B7pG,KAAKC,UAAU5N,IAGzE,GAAIw3G,EAAczrH,OAASiU,EACvB,MAAO,CAAC,kBAAmB,IAG/B,MAAMy3G,EAAM,IAKLD,EAAcE,UAAYF,EAAcG,aACxCH,EAAczjG,MAAQ,CAAC,CACtBhoB,KAAM,QACN6rH,QAASJ,EAAczjG,MACvBgpF,KAAM,KACL,IACPn/D,MAAKlyC,GAAKA,EAAEK,OAASwrH,IAEvB,IAAKE,EACD,MAAM,IAAI,GAAiB,4BAA8B9pG,KAAKC,UAAU5N,IAG5E,MAAM+8F,EAAO,CAAC,EAQd,OAPA0a,EAAI1a,KAAKv9E,SAAQ,CAAC9zB,EAAG5D,KACjB,OAAQ4zB,EAAGjwB,IAAM2S,OAAOgqC,QAAQ18C,GAChCqxG,EAAKtxG,GAAKmqE,EAAO9tE,EAAC,IAKf,CAFSi1G,EAAKvrG,eAAeimH,EAAIG,SAAW7a,EAAK0a,EAAIG,SAAWH,EAAIG,QAE1D7a,EACrB,GC1HJ,GAfA,MACI,WAAA1vG,GACI4B,KAAK4oH,aAAe,IAAI,GACxB5oH,KAAKy+G,YAAc,IAAI,GACvBz+G,KAAK+gH,iBAAmB,IAAI,EAChC,CAEA,cAAArD,CAAezsG,EAAMF,GACjB,MAAMkwG,EAAUjhH,KAAKy+G,YAAY5qF,OAAO5iB,GAClC8P,EAAQ/gB,KAAK4oH,aAAatnG,OAAOvQ,EAAMkwG,GAE7C,OAAOjhH,KAAK+gH,iBAAiBrC,YAAY39F,EAC7C,GChBJ,MAAM8nG,WAAqB1uH,MACvB,WAAAiE,CAAY8d,GACRJ,MAAMI,GACNlc,KAAKlD,KAAO,cAChB,EAGJ,UCyKA,GArKA,MAUI,WAAAsB,CAAY0jH,GAER9hH,KAAK8oH,kBAAoB,IAAI,GAG7B9oH,KAAK+oH,cAAgB,IAAI,GAAgBjH,GAGzC9hH,KAAKy+G,YAAc,IAAI,GAGvBz+G,KAAKgpH,cAAgB,IAAI,GAGzBhpH,KAAK+gH,iBAAmB,IAAI,EAChC,CAgBA,MAAA3zG,CAAOw3E,EAAU86B,EAAS1+G,GACtB,MAAM,MAAC4+G,EAAK,SAAEh2B,GAAY5pF,KAAK+oH,cAAclB,aAAajjC,EAAU86B,GAEpE,GAAI1+G,EAAKzH,OAASqmH,EAAMrmH,QAAUyH,EAAKzH,OAASqwF,EAC5C,MAAM,IAAI,GAEJ,qCAAG81B,qBAA2B91B,SAAgBg2B,EAAMrmH,sCAAsCyH,EAAKzH,UAKzG,KAAOyH,EAAKzH,OAASqmH,EAAMrmH,QACvByH,EAAKpH,UAAKiX,GAGd,OAAO7Q,KAAK8oH,kBAAkB17G,OrG+K3B,CACHtQ,KAAM,WACNmoD,aqGjLsDy6D,ErGkLtDzH,cqGlL+D2H,GAAQ5+G,EAC3E,CAiBA,MAAA6yB,CAAO+wD,EAAU86B,EAASzuG,GACtB,MAAMF,EAAO/Q,KAAK+oH,cAAcf,cAAcpjC,EAAU86B,GAExD,OAAO1/G,KAAK8oH,kBAAkBpL,eAAezsG,EAAMF,EACvD,CAqBA,uBAAAk4G,CAAwBh4G,GACpB,OAAOjR,KAAK8oH,kBAAkBj1F,OAAO5iB,EACzC,CAgBA,YAAAo1E,CAAap1E,GACT,MAAMi4G,EAAU,IAAIzS,YACdppG,EAAQrN,KAAKy+G,YAAYf,eAAezsG,EAAM,sBAEpD,OAAOi4G,EAAQr1F,OAAOxmB,EAC1B,CAeA,gBAAA87G,CAAiBl4G,GACb,OAAOjR,KAAK8oH,kBAAkBpL,eAAezsG,ErGxI1C,CAACnU,KAAM,UqGyId,CAmBA,WAAAssH,CAAYxkC,EAAU3zE,EAAMuvF,GACxB,MAAMzvF,EAAO/Q,KAAK+oH,cAAcb,aAAatjC,EAAU4b,GAEvD,OAAOxgG,KAAKgpH,cAActL,eAAezsG,EAAMF,EACnD,GCrCJ,GAnIA,MAUI,WAAA3S,CAAY0jH,GACR9hH,KAAKmhH,iBAAmB,IAAI,GAAgBW,EAChD,CAgBA,MAAA10G,CAAOw3E,EAAU86B,EAAS1+G,GACtB,OAAOhB,KAAKmhH,iBAAiB/zG,OAAOw3E,EAAU86B,EAAS1+G,EAC3D,CAiBA,MAAA6yB,CAAO+wD,EAAU86B,EAASzuG,GACtB,OAAOjR,KAAKmhH,iBAAiBttF,OAAO+wD,EAAU86B,EAASzuG,EAC3D,CAqBA,uBAAAg4G,CAAwBh4G,GACpB,OAAOjR,KAAKmhH,iBAAiB8H,wBAAwBh4G,EACzD,CAgBA,YAAAo1E,CAAap1E,GACT,OAAOjR,KAAKmhH,iBAAiB96B,aAAap1E,EAC9C,CAeA,gBAAAk4G,CAAiBl4G,GACb,OAAOjR,KAAKmhH,iBAAiBgI,iBAAiBl4G,EAClD,CAmBA,WAAAm4G,CAAYxkC,EAAU3zE,EAAMuvF,GACxB,OAAOxgG,KAAKmhH,iBAAiBiI,YAAYxkC,EAAU3zE,EAAMuvF,EAC7D,G,uTCrBJ,IAAA6oB,GAAA,IAAAj/F,QAAAk/F,GAAA,IAAAp/F,QAuCc,SAAAq/F,IA2BV,WAAExlC,EAAU,YAAED,EAAW,IAAEn2E,GAC3B67G,EACAnhE,EACAx5B,GAEA,IAAI3S,EACJ,OAAQ6nE,GACN,IAAK,KAAM,CACT,MAAM0lC,EAAQtnC,GAAAknC,GAAArpH,KAAK0pH,IAAe5mH,KAApB9C,KAAqBwpH,GACnC,MAAO,CACLG,cAAe3pH,KAAK4pH,UAAU/1F,OAAO7zB,KAAKg9D,MAAOysD,EAAM3sH,KAAMgnF,GAC7D+lC,cAAe7pH,KAAK8pH,cAAcn8G,EAAKkhB,GAE3C,CACA,IAAK,SACH3S,EAAUlc,KAAK4pH,UAAUT,iBAAiBrlC,GAC1C,MACF,IAAK,QAEH,GADA5nE,EAAU2X,GAAOiwD,GAAazlF,WAC1B,kCAAkC6B,KAAKgc,GACzC,MAAM,IAAIyrC,GAAsB,MAAO,8BAA8BzrC,OAEvE,GAAI,yDAAyDhc,KAAKgc,GAChE,MAAM,IAAIyrC,GACR,MACA,8BAA8BzrC,sBAA4BstG,MAG9D,MACF,QACE,MAAM,IAAItjE,GAAc,wBAAwB69B,KAEpD,MAAM,IAAI37B,GAAoBlsC,EAASmsC,EACzC,CAAC,eAAA0hE,GAGC3jF,EACAojF,EACA36F,GAEA,MAAM+1F,QAAeL,GAAgBn+E,EAAI,IAAKpmC,KAAKgqH,YAAan7F,IAChE,MAAO,CACL6H,KAAMkuF,EAAOluF,KACb0P,GAAI0xC,GAAoD8sC,EAAO5+B,OAC/D4+B,SACA5+B,MAAO4+B,EAAO5+B,SAEY,MAAtB4+B,EAAO9zC,mBACF9wE,KAAKiqH,uBAAuBrF,EAAOluF,KAAM8yF,EAAQ36F,GAE9D,CAAC,SAAA66F,GAuFe5sH,GACd,MAAMogB,EAAKqkE,GAAK+nC,GAALtpH,MAAkBi5G,UAAUtqE,MAAM/e,GAAwBA,EAAE9yB,OAASA,IAChF,GAAU,MAANogB,EACF,OAAOA,EAET,GAAa,SAATpgB,EACF,MAAO,CACLkG,UAAW,GACXlG,KAAM,OACNmgG,SAAS,EACTgrB,QAAS,OACT/nB,UAAU,GAGd,MAAM,IAAI53C,GAA4BxrD,EACxC,CAAC,SAAAotH,GA2HCC,EACA7f,GACA,sBAAE8f,IAEF,MAAMC,EAAgB,IAAKrqH,KAAKgqH,SAASI,yBAA0BA,GACnE,GAAgC,MAA5BC,EAAcF,GAAoB,OAAOE,EAAcF,GAG3D,MAEMllC,EAAYjlF,KAAKsqH,KACpBz+G,KAAI,EAAG+4E,cAAeA,IACtBp2C,QAAQo2C,GAAaA,GAAU7jE,QAC5B8nC,EAAgBo8B,EACnBp5E,KAAK+4E,GAAa,CAACA,EAAS9nF,KAAM8nF,EAAS7jE,MAAM2tF,WACjD7iG,KAAI,EAAE/O,EAAM0kB,KACXA,EAAO3V,KAAKkV,GAAc,CAACjkB,EAAMqS,OAAO4P,KAAKgC,GAAO,GAAI5R,OAAOiqC,OAAOr4B,GAAO,QAE9E2yF,OACAllE,QAAO,EAAE,CAAE+7E,KAAezzG,OAAO,KAAK0zG,GAASD,GAAWlsH,SAAS,YAAcisG,IACjF97D,QAAO,EAAE,CAAC,CAAGz9B,GAAOwiE,EAAKz6E,KAASA,EAAIkD,MAAM,EAAGu3E,GAAK9kC,MAAMlB,IAAOy0C,OAZnDrmF,EAY2D4xC,EAAG,GAZtDnxC,EAY0D2U,EAZtC2N,KAAKC,UAAUhjB,KAAO+iB,KAAKC,UAAUviB,GAAlE4lF,IAACrmF,EAAQS,CAY+D,MACxF,OAAQysD,EAActvD,QACpB,KAAK,EACH,MAAM,IAAIkvD,GAA4B6hD,EAASjsG,WAAY8rH,GAC7D,KAAK,EACH,OAAOthE,EAAc,GAAG,GAC1B,QACE,MAAM,IAAID,GAA8BuhE,EAAWthE,GAEzD,CA4MF,MAAM4hE,GAvhBN,MAKE,cAAMC,GACJ,GAA8B,MAA1B1qH,KAAKgqH,SAASjrB,SAAkB,OAAO/+F,KAAKgqH,SAASjrB,SACzD,GAAgC,MAA5B/+F,KAAKgqH,SAASW,WAChB,MAAM,IAAI5lE,EAAqB,kCACjC,GAAgC,MAA5B/kD,KAAKgqH,SAASY,WAAoB,CACpC,MAAM,SAAE7rB,SAAmB/+F,KAAKgqH,SAASW,WAAWE,oBAClD7qH,KAAKgqH,SAASY,WACd5qH,KAAKgqH,SAASc,YAEhB9qH,KAAKgqH,SAASjrB,SAAWA,CAC3B,CACA,GAAoC,MAAhC/+F,KAAKgqH,SAASe,eAAwB,CACxC,MAAM,SAAEhsB,SAAmB/+F,KAAKgqH,SAASW,WAAWK,QAAQhrH,KAAKgqH,SAASe,gBAC1E/qH,KAAKgqH,SAASjrB,SAAWA,CAC3B,CACA,GAA8B,MAA1B/+F,KAAKgqH,SAASjrB,SAChB,MAAM,IAAIh6C,EAAqB,uDAEjC,OAAO/kD,KAAKgqH,SAASjrB,QACvB,CAuDA,4BAAMkrB,CACJvzF,EACA8yF,EACA36F,GAEA,MAAM,SAAE41E,SAAmBzkG,KAAKgqH,SAASh6C,OAAOy7B,yBAAyB/0E,GACzE,GAAgB,MAAZ+tE,EACF,MAAM,IAAIngD,EAAc,6CAA6C5tB,KAEvE,MAAMu0F,EAAgBxmB,EACtB,MAAO,IACFtiB,GAAAknC,GAAArpH,KAAKupH,IAAczmH,KAAnB9C,KAAoBirH,EAAezB,OAAQ34G,EAAWge,GACzD1H,OAAQ8jG,EAEZ,CAEA,kBAAMC,CACJpuH,EACA6pE,EACA93C,EAAmE,CAAC,GAEpE,MAAM,OAAE1H,SAAiBnnB,KAAKsd,MAAMxgB,EAAM6pE,EAAQ,IAAK93C,EAASs8F,YAAY,IAC5E,GAAc,MAAVhkG,EAAgB,MAAM,IAAIg/B,GAC9B,MAAM,QAAE09B,GAAY18D,EAEpB,OAAOvsB,KAAKG,MAAgB,KAAV8oF,EACpB,CAQA,aAAMunC,CACJzkD,EACA93C,GASA,IAAAw8F,EACA,MAAM,WAAEF,KAAetE,GAAQ,IAAK7mH,KAAKgqH,YAAan7F,GAEtD,GAD8B,MAA1B7uB,KAAKgqH,SAASjrB,gBAAwB/+F,KAAK0qH,YAC5B,IAAfS,EAAqB,OAAOnrH,KAAKsd,MAAM,OAAQqpD,EAAQ,IAAKkgD,EAAKsE,eACrE,GAA6B,MAAzBnrH,KAAKgqH,SAAS3jE,QAAiB,MAAM,IAAIwB,GAE7C,GAAqB,MAAjBg/D,EAAI9/D,UAAmB,MAAM,IAAIhC,EAAqB,gCAC1D,MAAMi4B,EAAU6pC,EAAI9/D,UAAUV,QAC9B,GAA8B,MAA1BrmD,KAAKgqH,SAASjrB,SAChB,MAAM,IAAIh6C,EAAqB,iCACjC,MAAM3e,QAAW0/C,GAAa,CAC5BghC,kBAAkB,KACfD,EACH36E,IAAKshC,GAAIgL,iBACToB,SAAsB,QAAdyxC,EAAExE,EAAIjtC,gBAAQ,IAAAyxC,EAAAA,QAAWrrH,KAAKkrH,aAAa,OAAQvkD,EAAQkgD,GACnE1pC,SAAUn9E,KAAK4pH,UAAUx8G,OAAOpN,KAAKg9D,MAAO,OAAQ2J,GACpDzsE,KAAM8F,KAAKgqH,SAASjrB,SACpB/hB,aAEI,KAAEtmD,KAASy3C,SAAgBgU,GAAAknC,GAAArpH,KAAK+pH,IAAejnH,KAApB9C,KAAqBomC,EAAI,OAAQ,IAC7DygF,EACH9/D,UAAW8/D,EAAI9/D,YAGjB,OADA/mD,KAAKgqH,SAAS3jE,QAAU4/B,GAA4B9X,EAAM6X,OACnD,IACF7X,KACsB,MAArBA,EAAMhnD,QAAQxZ,KAAe,CAC/Bk8G,cAAe7pH,KAAK8pH,cAAc37C,EAAMhnD,OAAOxZ,IAAKk5G,IAEtDn5C,MAAOsP,EACP30B,YAAa3xB,EACb2vB,QAASrmD,KAAKgqH,SAAS3jE,QAE3B,CA+BA,WAAM/oC,CACJJ,EACAypD,EACA93C,EAG8E,CAAC,GACI,IAAAy8F,EACnF,MAAM,WAAEH,EAAU,IAAEr4C,KAAQ+zC,GAAQ,IAAK7mH,KAAKgqH,YAAan7F,GACrD46F,EAAQtnC,GAAAknC,GAAArpH,KAAK0pH,IAAe5mH,KAApB9C,KAAqBkd,IAC7B,QAAEmpC,EAAO,KAAEvpD,GAASkD,KAAKgqH,SAEzBl2C,EAAqB,MAARh3E,EAAe4xE,GAAc5xE,GAAQupD,GAClD,OAAE2pB,GAAW62C,EAEnB,GAAU,MAAN3pG,EAAY,MAAM,IAAIirC,GAC1B,GAAW,SAAPjrC,IAAgC,IAAfiuG,EACnB,MAAM,IAAInjE,GAA6B,wCACzC,GAAW,SAAP9qC,GAA+B,MAAd2pG,EAAIr+D,QAAkBz1C,OAAO8zG,EAAIr+D,QAAU,IAAMihE,EAAMxsB,QAC1E,MAAM,IAAI10C,GAAwBs+D,EAAIr+D,OAAQtrC,GAGhD,IAAIkgE,EACJ,IACE,GAAqB,MAAjBypC,EAAI9/D,UAAmB,MAAM,IAAIb,GAAc,wBACnDk3B,EAAWypC,EAAI9/D,UAAUV,OAC3B,CAAE,MAAOpxC,GAQP,IANiB,IAAfk2G,KACEl2G,aAAiB1F,GAEf,yGADF0F,EAAMiH,SAENjH,aAAiBi1C,IAChBj1C,aAAiBixC,IAAmC,yBAAlBjxC,EAAMiH,SACpB,MAAMjH,EAC/BmoE,EAAWxQ,GAAgBC,GAC7B,CACA,MAAMsQ,EAAWn9E,KAAK4pH,UAAUx8G,OAAOpN,KAAKg9D,MAAO9/C,EAAIypD,GAEvD,IAAmB,IAAfwkD,EAAqB,CACvB,GAAiB,MAAbtE,EAAI59E,MAAe,CACrB,MAAMsiF,EAAmB,MAAPz4C,GAAe,CAAE,CAAgB,iBAARA,EAAmB,SAAW,QAASA,GAC5E2wC,QAAgBpyC,GAAW+L,EAAU,IAAKmuC,EAAWv7C,WAAU4B,OAAO38D,IAC1E,IAAKqyD,GAAuBryD,GAAQ,MAAMA,EAC1C,MAAO,CAAEgrC,KAAM,QAAShX,MAAO,EAAG,IAEpC49E,EAAI59E,MAAyB,gBAAjBw6E,EAAQxjE,KAAyB,EAAIwjE,EAAQx6E,MAAQ,CACnE,CAEA,MAAMuiF,EAAQ,IAAK3E,EAAK72C,SAAQmN,YAChC,IAAI/2C,EACJ,GAAW,SAAPlpB,EAAe,CACjB,GAA8B,MAA1Bld,KAAKgqH,SAASjrB,SAChB,MAAM,IAAIh6C,EAAqB,0CACjC3e,QAAW0/C,GAAa,IACnB0lC,EACHt/E,IAAKshC,GAAIgL,iBACTt+E,KAAM8F,KAAKgqH,SAASjrB,SACpB/hB,QAASI,GAEb,KAAO,CACL,GAAkB,MAAdtJ,EACF,MAAM,IAAI7rB,GAA4B,0CACxC7hB,QAAW0/C,GAAa,IACnB0lC,EACHt/E,IAAKshC,GAAIiI,eACT2H,WACAtJ,cAEJ,CAEA,MAAM,QAAEusB,KAAYorB,SAAsBj4C,GAASptC,EAAIg3C,EAAU,IAAKypC,EAAK/zC,QAC3E,GAAe,MAAXutB,EACF,MAAM,IAAIn6C,GAAc,4CAA4C9f,KAEtE,MAAM6kF,EAAgB5qB,EACtB,MAAO,IACForB,KACAtpC,GAAAknC,GAAArpH,KAAKupH,IAAczmH,KAAnB9C,KAAoBirH,EAAe/tG,EAAIkpB,EAAIygF,GAC9CzgF,GAAI0xC,GAAS1xC,GACbjf,OAAQ8jG,EACRjlC,MAAO5/C,EACP1P,KAAMqvD,GAAY3/C,GAClBw+E,YAAQ/zG,EAEZ,CAEA,GAAW,MAAPiiE,EACF,MAAM,IAAI/tB,EAAqB,uDACjC,GAAkB,MAAd+uB,EACF,MAAM,IAAI7rB,GAA4B,uCACxC,MAAM7hB,QAAW0/C,GAAa,CAC5BghC,kBAAkB,KACfD,EACH36E,IAAKshC,GAAIiI,eACTmE,SAAsB,QAAd0xC,EAAEzE,EAAIjtC,gBAAQ,IAAA0xC,EAAAA,QAAWtrH,KAAKkrH,aAAahuG,EAAIypD,EAAQkgD,GAC/DzpC,WACAtJ,aACAqJ,aAEF,GAAqB,MAAjB0pC,EAAI9/D,UACN,MAAM,IAAIhC,EAAqB,gDACjC,OAAOo9B,GAAAknC,GAAArpH,KAAK+pH,IAAejnH,KAApB9C,KAAqBomC,EAAIlpB,EAAI,IAAK2pG,EAAK9/D,UAAW8/D,EAAI9/D,WAC/D,CAgDA+iE,aAAAA,CACEtoG,GACA,YAAEkqG,KAAgB7E,GAAmE,CAAC,GAEtF,OAAOrlG,EACJ3V,KAAKkV,IACJ,IAAI4qG,EACJ,IACEA,EAAexpC,GAAAknC,GAAArpH,KAAKkqH,IAAuBpnH,KAA5B9C,KAA6B+gB,EAAMslC,QAAStlC,EAAMy/E,OAAO,GAAIqmB,EAC9E,CAAE,MAAO5xG,GACP,GAAKy2G,SAAAA,GAAyBz2G,aAAiBwzC,GAA6B,OAAO,KACnF,MAAMxzC,CACR,CACA,MAAM8e,EAAU/zB,KAAK4pH,UAAUR,YAAYuC,EAAc5qG,EAAM9P,KAAM8P,EAAMy/E,SACpE1jG,EAAMkE,GAAQmO,OAAOgqC,QAAQplB,GAAS,GAC7C,MAAO,CACLj3B,OACAkE,OACA4jF,SAAU,CACR9nF,KAAM6uH,EACNtlE,QAAStlC,EAAMslC,SAElB,IAEF7X,QAAQ/xC,GAAmD,MAALA,GAC3D,CAEA,uBAAamvH,EAA0C,WACrDjB,EAAU,OACV36C,EAAM,SACN+uB,EAAQ,IACR+iB,EAAG,QACHz7D,EAAO,eACP0kE,EAAc,WACdH,EAAU,WACVE,EAAU,iBACVe,KACGC,IAMH,GAAW,MAAPhK,GAA6B,MAAd6I,EAAoB,CACrC,IAAI52G,EACkB,MAAlBg3G,IAAwBh3G,QAAY42G,EAAWK,QAAQD,IACzC,MAAdH,IAAoB72G,QAAY42G,EAAWE,oBAAoBD,EAAYE,IACpE,MAAP/2G,IACF+tG,EAAM/tG,EAAI+tG,IACV/iB,UAAAA,EAAahrF,EAAIgrF,UAErB,CACA,GAAW,MAAP+iB,EAAa,MAAM,IAAI55D,GAE3B,IAAIprD,EASJ,GARe,MAAXupD,GAKEyoB,GAJJzoB,QAAiB8tB,GAAY9tB,EAAS,kBAAmB,CACvD+tB,eAAe,EACfpE,cAEmBlzE,EAAOupD,GAGf,MAAXA,GAAiC,MAAdukE,GAAwC,MAAlBG,GAAsC,MAAZhsB,EACrE,MAAM,IAAI92C,GAA4B,gDAGxC,GAAe,MAAX5B,GAEqB,aADA2pB,EAAOgE,YAAY3tB,IAC7Bo9B,OAAgB,MAAM,IAAI37B,GAAsBzB,GAG/D,IAAyB,IAArBwlE,EAA2B,CAC7B,GAAe,MAAXxlE,EACF,MAAM,IAAI4B,GAA4B,oDACxC,MAAM8jE,SAAwB/7C,EAAO+D,gBAAgB1tB,IAAU04C,SAC/D,IAAImgB,GAAU,EACd,GAAgB,MAAZngB,EAAkBmgB,EAAUngB,IAAagtB,OACxC,GAAkB,MAAdnB,EAAoB,CAC3B,GAAkB,MAAdD,EACF,MAAM,IAAI5lE,EAAqB,4CACjCm6D,QAAgByL,EAAWqB,qBAAqBD,EAAgBnB,EAAYE,EAC9E,MAAO,GAAsB,MAAlBC,EAAwB,CACjC,GAAkB,MAAdJ,EACF,MAAM,IAAI5lE,EAAqB,4CACjCm6D,QAAgByL,EAAWsB,SAASF,EAAgBhB,EACtD,CACA,IAAK7L,EACH,MAAM,IAAIv3D,GAC0B,OAAjCijE,QAAAA,EAAcG,GAA0B,cAAgB,WAG/D,CAEA,OAAO,IAAIN,GAAuB,CAChCE,aACA36C,SACA46C,aACAG,iBACAhsB,WACA+iB,MACAz7D,UACAvpD,OACAguH,gBACGgB,GAEP,CAeA1tH,WAAAA,EAAY,IACV0jH,KACGgK,I,SAcsC,K,EAAAzC,I,MAAA,M,mCA3BtB,E,CAArB5nC,CAAA,KAAS6nC,IA4BPtpH,KAAKsqH,KAAOxI,EACZ,MAAMoK,EAAUpK,EAAIA,EAAIvoH,OAAS,GACjC,GAAwB,MAApB2yH,EAAQtnC,SACV,MAAM,IAAI7/B,EACR,uDAAuD51C,OAAO4P,KAAKmtG,oB,iCAGvExqC,CAAK4nC,GAALtpH,KAAoBksH,EAAQtnC,UAC5B5kF,KAAKg9D,MAAQukB,GAAK+nC,GAALtpH,MAAkBlD,KAC/BkD,KAAK4pH,UAAY,IAAIuC,GAASrK,GAC9B9hH,KAAKgqH,SAAW8B,EAgBhB38G,OAAO8/C,OACLjvD,KACAmP,OAAO83D,YACLsa,GAAK+nC,GAALtpH,MAAkBi5G,UAAUptG,KAAI,EAAG/O,OAAMkG,UAAWopH,EAASlsB,eAC3D,MAAMirB,EAAsB,SAATruH,IAAoBojG,EACvC,MAAO,CACLpjG,EACAu3D,SAAUrzD,KACR,MAAM6tB,EAAU7tB,EAAKzH,SAAW6yH,EAAQ7yH,OAAS,EAAIyH,EAAKE,MAAQ,CAAC,EACnE,GAAuB,iBAAZ2tB,EACT,MAAM,IAAItf,EAAU,gCAAgCsf,KACtD,MAAa,SAAT/xB,EAAwBkD,KAAKorH,QAAQpqH,EAAM,CAAEmqH,gBAAet8F,IACzD7uB,KAAKsd,MAAMxgB,EAAMkE,EAAM,CAAEmqH,gBAAet8F,GAAU,EAE5D,KAIT,GAgBF,UC9pBA,SAASw9F,GAAYC,GACnB,MAAO,IACFA,EACH1rH,GAAI0rH,EAAW1rH,GACf2rH,aAAc14F,GAAOy4F,EAAW3uC,OAA8Bt/E,WAC9DmuH,gBAAiB34F,GAAOy4F,EAAWn4D,UAAoC91D,WAE3E,CAOe,MAAMouH,GAInBruH,WAAAA,CACkBioD,EACTx3B,GACP,KAFgBw3B,QAAAA,EAA8B,KACvCx3B,QAAAA,CACN,CAMH,cAAMs4F,CAASt4F,EAA6B,CAAC,GAE3C,MADY,IAAK7uB,KAAK6uB,WAAYA,GACvBmhD,OAAO2K,kBAAkB36E,KAAKqmD,QAC3C,CAMA,gBAAMqmE,CAAW79F,EAA6B,CAAC,GAC7C,MAAMg4F,EAAM,IAAK7mH,KAAK6uB,WAAYA,GAClC,aAAcg4F,EAAI72C,OAAOy6B,yBAAyBzqG,KAAKqmD,UAAUi8C,cAAcz2F,IAAIwgH,GACrF,CAOA,cAAMM,CACJ3uC,EACAnvD,EAA6B,CAAC,GAE9B,MAAM,OAAEmhD,GAAW,IAAKhwE,KAAK6uB,WAAYA,GAEzC,OAAOw9F,SADkBr8C,EAAO26B,iCAAiC3qG,KAAKqmD,QAAS23B,GAEjF,E,iPC/CF,IAAA4uC,GAAA,IAAA1iG,QAUe,MAAMo5D,WAAempC,GAKlCruH,WAAAA,CACkBqlH,EACA50F,G,UAIhB/S,MAAM1O,GAAOymB,GAAO4vF,EAAQp9D,SAAUqhB,GAASyC,eAAgBt7C,G,OAyG5C,E,mHAArB,K,EAAA+9F,I,WAAsC,KA9GpBnJ,QAAAA,EAAoB,KACpB50F,QAAAA,CAKlB,CASA,cAAMg+F,CACJxvC,EACAC,EACAzuD,EAAiC,CAAC,GAElC,MAAMg4F,EAAM,IAAK7mH,KAAK6uB,WAAYA,GASlC,OAAO01F,SARwBz+B,GAAa,CAC1CghC,kBAAkB,KACfD,EACH36E,IAAKshC,GAAIgK,iBACTgF,UAAWx8E,KAAKyjH,QAAQp9D,QACxBg3B,cACAC,mBAEuC,IAAKupC,EAAK9/D,UAAW/mD,KAAKyjH,SACrE,CAMA,eAAM+D,CAAU34F,EAAkC,CAAC,GACjD,MAAMg4F,EAAM,IAAK7mH,KAAK6uB,WAAYA,GAOlC,OAAO01F,SANsBz+B,GAAa,CACxCghC,kBAAkB,KACfD,EACH36E,IAAKshC,GAAIiK,eACT5J,SAAU7tE,KAAKqmD,UAEsB,IAAKwgE,EAAK9/D,UAAW/mD,KAAKyjH,SACnE,CASAqJ,WAAAA,CACEC,EACAl+F,EAEI,CAAC,GAEL,MAAMg4F,EAAM,IAAK7mH,KAAK6uB,WAAYA,GAC5Bm+F,EAAgB,IAAIjjG,IAE1B,IAAIkjG,GAAa,EACjB,MAAMC,EAAkB74D,UACtB,GAAI44D,EAAY,OAChBA,GAAa,EACb,MAAME,SAAkBntH,KAAK0sH,WAAW7F,IACrCr4E,QAAO,EAAG5tC,SAAUosH,EAAcxsG,IAAI5f,KACtC4tC,QAAQmvC,IAAuC,IAA7B9uD,EAAQu+F,kBAAuD,KAA1BzvC,EAAM6uC,kBAChEW,EAAS58F,SAASotD,GAAUqvC,EAAc/mF,IAAI03C,EAAM/8E,MACpDqsH,GAAa,QACP/pG,QAAQsL,IAAI2+F,EAASthH,KAAK8xE,GAAUovC,EAAQpvC,KAAQ,EAG5DuvC,IACA,MAAMG,EAAY,OAACh5D,IACjB,MAAMuc,EAAuB,QAAf08C,EAAGzG,EAAIj2C,gBAAQ,IAAA08C,EAAAA,QAAWz9C,GAAiB,cAAeg3C,GACxE,OAAO0G,aAAYl5D,SAAY64D,KAAmBt8C,EACnD,EAHiB,GAKlB,OAAOvc,UACL,MAAMzzD,QAAWysH,EACjBG,cAAc5sH,EAAG,CAErB,CAQA,oBAAM6sH,CACJzvC,EACA7pB,EACAtlC,EAAuC,CAAC,GAExC,MAAMg4F,EAAM,IAAK7mH,KAAK6uB,WAAYA,GASlC,OAAO01F,SARuBz+B,GAAa,CACzCghC,kBAAkB,KACfD,EACH36E,IAAKshC,GAAImK,gBACT9J,SAAU7tE,KAAKqmD,QACf23B,UACA7pB,aAEsC,IAAK0yD,EAAK9/D,UAAW/mD,KAAKyjH,SACpE,CAWAiK,aAAAA,CACE/xB,EACA9sE,EAA8E,CAAC,GAE/E,GAAkC,MAA9B0yD,GAAKqrC,GAAL5sH,MACF,MAAM,IAAIimD,GACR,kFAGJ,MAAM4gE,EAAM,IAAK7mH,KAAK6uB,WAAYA,GAElC,IAAI8+F,EAAezqG,QAAQC,UAC3B,MAAMM,EAAU4wC,UACd,MAAMF,QAAiBwnC,EAAYv2F,GAC7BwoH,EAAiBD,EAAax7B,MAAK99B,SACvCr0D,KAAKytH,eAAeroH,EAAExE,GAAIuzD,EAAU0yD,KAEtC8G,EAAeC,EAAez7B,MAC5B,SACA,eAEIy7B,CAAc,EAGtBlsC,GAAKkrC,GAAL5sH,KAA6BkjB,QAAQC,WACrC,MAAM0qG,EAAW7tH,KAAK8sH,aAAYz4D,UAChC,MAAM63C,EAAUzoF,EAAQk6D,GACxB,GAAkC,MAA9B4D,GAAKqrC,GAAL5sH,MAAoC,MAAM,IAAImmD,GAOlD,OANAu7B,GAAKkrC,GAAL5sH,KAA6BuhF,GAAKqrC,GAAL5sH,MAC1BmyF,MAAK99B,SAAY63C,IACjB/Z,MACC,SACA,UAEG+Z,CAAO,GACb2a,GAEH,OAAOxyD,UACLw5D,UACMtsC,GAAKqrC,GAAL5sH,MACN0hF,GAAKkrC,GAAL5sH,UAA6B6Q,EAAH,CAE9B,ECnLa,MAAMi9G,WAAqBrB,GAOxCruH,WAAAA,CACEioD,EACgBx3B,GAIhB/S,MAAMuqC,EAASx3B,GAAS,KAJRA,QAAAA,CAKlB,CAQA,eAAMk/F,CACJpwC,EACA9uD,EAAwC,CAAC,GAEzC,MAAMg4F,EAAM,IAAK7mH,KAAK6uB,WAAYA,GAC5B++C,EAAWi5C,EAAI9/D,UAAUV,QAEzB2nE,QAAsBloC,GAAa,CACvCghC,kBAAkB,KACfD,EACH36E,IAAKshC,GAAIkK,cACT7J,SAAU7tE,KAAKqmD,QACfunB,WACA+P,WAEI,MAAE10C,GAAU6uC,GAASk2C,EAAexgD,GAAIkK,eAC9C,MAAO,UACK6sC,GAAgByJ,EAAenH,GACzC7oC,QAASrQ,GAAcC,EAAU3kC,EAAOjpC,KAAKqmD,SAEjD,CASA,qBAAM4nE,CACJjwC,EACAnvD,EAAmF,CAAC,GACnE,IAAAy+F,EACjB,MAAMzG,EAAM,IAAK7mH,KAAK6uB,WAAYA,GAC5B+hD,EAAuB,QAAf08C,EAAGzG,EAAIj2C,gBAAQ,IAAA08C,EAAAA,QAAWz9C,GAAiB,cAAeg3C,GACxE,IAAIrhE,EACAurB,EACA5c,EACJ,EAAG,GACEA,WAAU4c,aAAc/wE,KAAK2sH,SAAS3uC,EAAS6oC,IAClD,MAAMqH,EAAiBr6F,GAAOsgC,GAC9B,GAAI+5D,EAAe30H,OAAS,EAAG,OAAO20H,EAAe7vH,iBAC/CyoE,GAAM8J,GACZprB,QAAe8qB,GAAU,IAAKu2C,EAAKt2C,QAAQ,GAC7C,OAASQ,GAAOvrB,GAChB,MAAM,IAAID,EAAqBC,EACjC,CAQA,WAAMm4B,CACJA,EACA9uD,EAAyF,CAAC,GAE1F,MAAM,QAAEmvD,SAAkBh+E,KAAK+tH,UAAUpwC,EAAO9uD,GAChD,OAAO7uB,KAAKiuH,gBAAgBjwC,EAASnvD,EACvC,ECrFKwlC,eAAe85D,GACpB3lE,EACA4lE,EACAv/F,GAEA,OAAO01F,SACCz+B,GAAa,CACjBghC,kBAAkB,KACfj4F,EACHqd,IAAKshC,GAAI4O,QACTxO,SAAU/+C,EAAQk4B,UAAUV,QAC5Bg2B,kBAAmBlI,GAAYi6C,EAAmB,iBAAkBv/F,GACpE25B,WAEF35B,EAEJ,CA4BOwlC,eAAeg6D,GACpBC,EACAF,EACAv/F,GAEA,IAAKy/F,EAAW,IAAMA,EAAW,EAC/B,MAAM,IAAI3pE,EAAc,WAAY,2BAA4B2pE,GAElE,MAAMjyC,QAAoBlI,GAAYi6C,EAAmB,iBAAkBv/F,GACrE++C,EAAW/+C,EAAQk4B,UAAUV,QAC7BsrB,EAAU,IAAIl3E,QAAgBg3E,GAAWr0D,KAAKyR,EAAQk4B,UAAxB0qB,CAAmC7D,EAAU/+C,IAC3E0/F,EAAgB58C,EAAQ1qE,MAAMqnH,GAAUpnH,aAAazM,EAAUoH,gBAC/D,IAAEw3E,GAAQvB,SACRgO,GAAa,CACjBghC,kBAAkB,KACfj4F,EACHqd,IAAKshC,GAAI4O,QACTxO,WACAyO,cACA7zB,OAAQ+lE,IAEV/gD,GAAI4O,SAGA5zB,EAAS+lE,EAAc9qH,KAAK41E,GAAK9xE,GAAGoqE,GAAWA,EAAQ1pE,MAAMoxE,GAAOk1C,EAC1E,OAAOhK,SACCz+B,GAAa,CACjBghC,kBAAkB,KACfj4F,EACHqd,IAAKshC,GAAI4O,QACTxO,WACAyO,cACA7zB,WAEF35B,EAEJ,CAiBOwlC,eAAem6D,GACpBnmE,EACAx5B,GAEA,OAAO01F,SACCz+B,GAAa,CACjBghC,kBAAkB,KACfj4F,EACHqd,IAAKshC,GAAI0K,YACT0H,QAAS/wD,EAAQk4B,UAAUV,QAC3BjgB,GAAIiiB,IAENx5B,EAEJ,C,sBClGOwlC,eAAeo6D,GACpBC,EACA1tH,GACA,UACE+lD,EAAS,WACT4jE,EAAU,OACV36C,EAAM,SACN+uB,EAAQ,IACR+iB,EAAG,eACHiJ,EAAc,WACdH,EAAU,WACVE,KACGj8F,IASL,IAAA8/F,EACA,MAAM3xC,EAAUj2B,EAAUV,QAC1B,GAAqD,uBAA1CgrB,GAAW2L,EAAS,CAAEhN,YAAW/vB,KAC1C,MAAM,IAAI8E,EAAqB,WAAWi4B,mBAG5C,MAAM4H,QAAiB9B,GAAS8oC,WAA4C,CAC1E7kE,YACA4jE,aACA36C,SACA+uB,WACA+iB,MACAiJ,iBACAH,aACAE,eAGI1kF,QAAW0/C,GAAa,CAC5BghC,kBAAkB,KACfj4F,EACHqd,IAAKshC,GAAIiL,WACTzI,SACA91E,WAAY0qF,EAAS8lC,WACrB9wC,SAA0B,QAAlB+0C,EAAE9/F,EAAQ+qD,gBAAQ,IAAA+0C,EAAAA,QAAW/pC,EAASsmC,aAAa,OAAQlqH,EAAM6tB,GACzEmuD,UACAG,SAAUyH,EAASglC,UAAUx8G,OAAOw3E,EAAS5nB,MAAO,OAAQh8D,GAC5Dy+E,QAAS/oD,GAAKg4F,MAERh4F,KAAM2xB,EAAW,MAAE29B,SAAgBu+B,GAAgBn+E,EAAI,CAC7D4pC,SACAjpB,YACA4jE,gBACG97F,IAECilD,EAAamS,GAA4BD,GAE/C,OAAO72E,OAAO2/F,OAAO,CACnBphC,MAAOsP,EACP30B,cACA29B,QACA4oC,aAAc96C,GAElB,CA0BOzf,eAAew6D,GACpBxmE,GACA,IAAEgxB,EAAG,SAAErC,EAAQ,OAAEhH,IAEjB,MAAM,cAAEm8B,EAAa,yBAAEj3B,SAAmClF,EAAOoF,cACjE,IAAIrK,EAAUr0C,GAAKwwC,GAAc,CAACv4D,GAAOc,KAAK08F,GAAgBt4E,GAAOw0B,MACrE,GAAI6sB,IAA6B7H,GAAyBmH,MAAO,CAC/D,GAAW,MAAP6E,EAAa,MAAM,IAAI10B,EAAc,MAAO,sBAAuB00B,GACvE,GAAgB,MAAZrC,EAAkB,MAAM,IAAIryB,EAAc,WAAY,sBAAuBqyB,GACjFjM,EAAUr0C,GACR7C,GACE6iD,GAAU,CACRxqC,IAAKovC,GAASmK,iBACdpM,MACArC,WACAhtB,OAAQ58C,GAAO29D,EAASrD,GAASwC,WAIzC,CACA,OAAOa,CACT,CAUO1W,eAAey6D,GACpBzmE,GACA,OAAE2nB,IAEF,MAAMyG,EAAWqB,GAASzvB,EAAamlB,GAAIkO,UAC3C,GAAIjF,EAAS0B,UAAUjsC,MAAQshC,GAAIkI,SACjC,MAAM,IAAI/wB,EAAc,cAAe,sBAAuB6oB,GAAIiJ,EAAS0B,UAAUjsC,MAEvF,OAAO2iF,GAAgB92C,GAAQtB,EAAS0B,UAAU/xC,GAAG+xC,WAAY,CAC/DkB,IAAK5C,EAAS0B,UAAUkB,IACxBrC,SAAUP,EAAS0B,UAAUnB,SAC7BhH,UAEJ,C,qCCnKA,SAAS++C,GAAQ70F,GAGf,OAAO60F,GAAU,mBAAqB,IAAW,iBAAmB,GAAmB,SAAU70F,GAC/F,cAAcA,CAChB,EAAI,SAAUA,GACZ,OAAOA,GAAK,mBAAqB,IAAWA,EAAE97B,cAAgB,IAAW87B,IAAM,aAAoB,gBAAkBA,CACvH,EAAG60F,GAAQ70F,EACb,C,eCRA,SAAS80F,GAAgBvyH,EAAGV,EAAGmM,GAC7B,OAAQnM,ECDV,SAAuBmM,GACrB,IAAIrP,ECDN,SAAqBqP,GACnB,GAAI,UAAY6mH,GAAQ7mH,KAAOA,EAAG,OAAOA,EACzC,IAAIzL,EAAIyL,EAAE,IACV,QAAI,IAAWzL,EAAG,CAChB,IAAI5D,EAAI4D,EAAEqG,KAAKoF,EAAGnM,UAClB,GAAI,UAAYgzH,GAAQl2H,GAAI,OAAOA,EACnC,MAAM,IAAI0W,UAAU,+CACtB,CACA,OAAyBxS,OAAiBmL,EAC5C,CDRUiJ,CAAYjJ,GACpB,MAAO,UAAY6mH,GAAQl2H,GAAKA,EAAIA,EAAI,EAC1C,CDFc4iD,CAAc1/C,MAAOU,EAAI,GAAuBA,EAAGV,EAAG,CAChE2T,MAAOxH,EACPiN,YAAY,EACZ6G,cAAc,EACdD,UAAU,IACPtf,EAAEV,GAAKmM,EAAGzL,CACjB,C,6JGMA,MAAMi8C,GAAU,IACXu2E,EACH1K,gBAAe,MACZ2K,KACAC,GACM,IAAAC,GAAA,IAAAllG,QA+BX,MAAMmlG,GAQJjxH,WAAAA,CAAYywB,EAA+B,CAAC,G,QAAGmgG,GAAA,gBAPf,CAAC,G,mJAEjCvtC,CAAA,KAAS2tC,QAAe,GAMtBjgH,OAAO8/C,OAAOjvD,KAAKivB,SAAUJ,G,EACxBugG,G,EAAkB,CACrBroE,UAAWygB,IAAc,IAAMxnE,KAAKivB,SAAS83B,YAC7CipB,OAAQxI,IAAc,IAAMxnE,KAAKivB,SAAS+gD,SAC1C26C,WAAYnjD,IAAc,IAAMxnE,KAAKivB,SAAS07F,c,WAHhD3qH,M,EAKF,CAQAsvH,UAAAA,CAAWC,EAAiC,CAAC,GAC3C,MAAO,IACFvvH,KAAKivB,a,EACAmgG,G,WAALpvH,WACAuvH,G,KAEP,CAGA,aAAMx3C,CAAQlpD,GAEZ,OAAOi3D,GAAa,IAAM9lF,KAAKsvH,gBAAyBzgG,GAC1D,EAiCF1f,OAAO8/C,OACLogE,GAAalxH,UACb6oE,GAA8BtuB,IAAS,EAAE57C,EAAM2mB,KAAa,CAC1D3mB,EACA,YAA8CkE,GAC5CA,EAAKzH,OAASkqB,EAAQlqB,OACtB,MAAMs1B,EAAU7tB,EAAKA,EAAKzH,OAAS,GAEnC,OADAyH,EAAKA,EAAKzH,OAAS,GAAKyG,KAAKsvH,WAAWzgG,GACjCpL,KAAWziB,EACpB,MAOJ,OAD0BquH,G,6JC1HuE,IAAAD,GAAA,IAAAllG,QAUlF,MAAMslG,WAAkBH,GAWrCjxH,WAAAA,EAAY,MACVqxH,EAAQ,MACL5gG,GAGD,CAAC,G,QACH/S,MAAM+S,GAASmgG,GAAA,YAhBS,IAAIplG,K,mJAI9B63D,CAAA,KAAS2tC,QAAe,GActBK,EAAMl/F,SAAQ,EAAGzzB,OAAM+yD,YAAYh3D,IAAMmH,KAAK0vH,QAAQ5yH,EAAM+yD,EAAgB,IAANh3D,K,EAEjEu2H,G,EAAkB,CACrBp/C,OAAQxI,IAAc,IAAMxnE,KAAK2vH,MACjChF,WAAYnjD,IAAc,IAAMxnE,KAAK4vH,cACrC7oE,UAAWygB,IAAc,IAAMxnE,KAAK6vH,qB,WAHtC7vH,M,EAKF,CAKA,eAAI4vH,GACF,GAAgC,MAA5B5vH,KAAKivB,SAAS07F,WAChB,MAAM,IAAItmE,EAAc,sDAE1B,OAAOrkD,KAAKivB,SAAS07F,UACvB,CAEA,OAAIgF,GAEF,OADA3vH,KAAK8vH,sBACE9vH,KAAK+vH,KAAK36G,IAAIpV,KAAKgwH,iBAC5B,CAaAN,OAAAA,CAAQ5yH,EAAc6wD,EAAYsiE,GAAS,GACzC,GAAIjwH,KAAK+vH,KAAKvvG,IAAI1jB,GAAO,MAAM,IAAIusD,GAAmBvsD,GAEtDkD,KAAK+vH,KAAK3tH,IAAItF,EAAM6wD,IAChBsiE,GAAmC,MAAzBjwH,KAAKgwH,mBACjBhwH,KAAKkwH,WAAWpzH,EAEpB,CAQAozH,UAAAA,CAAWpzH,GACT,IAAKkD,KAAK+vH,KAAKvvG,IAAI1jB,GAAO,MAAM,IAAIwsD,GAAkB,kBAAkBxsD,iBACxEkD,KAAKgwH,iBAAmBlzH,CAC1B,CAOAqzH,eAAAA,GACE,OAAgC,MAAzBnwH,KAAKgwH,gBACd,CAEUF,mBAAAA,GACR,IAAK9vH,KAAKmwH,kBACR,MAAM,IAAI7mE,GAAkB,gEAEhC,CASA,iBAAM8rB,GAEJ,OADAp1E,KAAK8vH,sBACE,CACLhzH,KAAMkD,KAAKgwH,0BACDhwH,KAAK2vH,IAAIv6C,cAEvB,CAOA,oBAAMg7C,GACJ,OAAOltG,QAAQsL,IACbv0B,MAAMwV,KAAKzP,KAAK+vH,KAAK52E,WAAWttC,KAAIwoD,OAAQv3D,EAAM6wD,MAAU,CAC1D7wD,gBACU6wD,EAAKynB,kBAGrB,CAGAi7C,SAAAA,GACE,MAAO,EACT,CAMAR,eAAAA,CAAgBpM,EAAqBzjH,KAAKivB,SAAS83B,WACjD,GAAuB,iBAAZ08D,EAAsB,MAAM,IAAI79D,GAAoB,8BAC/D,GAAuB,iBAAZ69D,EAAsB,OAAOA,EACxC,MAAM,IAAIl0G,EAEN,sFAAmCxS,OAAO0mH,aAEhD,CAEA,WAAIp9D,GACF,OAAOrmD,KAAK6vH,kBAAkBxpE,OAChC,CAQA,UAAMriD,CACJiN,EACA4d,EAAqC,CAAC,GAEtC,OAAO7uB,KAAKqiH,WAAWpxG,EAAM4d,EAC/B,CAOA,gBAAMwzF,CACJpxG,GACA,UAAE81C,KAAcl4B,GAAuC,CAAC,GAExD,OAAO7uB,KAAK6vH,gBAAgB9oE,GAAWs7D,WAAWpxG,EAAM4d,EAC1D,CAOA,qBAAMyzF,CACJl8E,GACA,UACE2gB,KACGl4B,GAC0E,CAAC,GAEhF,MAAMohD,EAAsC,OAA1BjwE,KAAKgwH,uBAAkChwH,KAAK2vH,IAAIz/C,oBAAiBr/D,EACnF,OAAO7Q,KAAK6vH,gBAAgB9oE,GAAWu7D,gBAAgBl8E,EAAI,CAAE6pC,eAAcphD,GAC7E,CAOA,iBAAM2zF,CACJtmG,GACA,UACE6qC,KACGl4B,GACsE,CAAC,GAE5E,OAAO7uB,KAAK6vH,gBAAgB9oE,GAAWy7D,YAAYtmG,EAAS2S,EAC9D,CAQA,mBAAM4zF,CACJxxG,EACA6wG,GACA,UACE/6D,KACGl4B,GACwE,CAAC,GAE9E,OAAO7uB,KAAK6vH,gBAAgB9oE,GAAW07D,cAAcxxG,EAAM6wG,EAAKjzF,EAClE,CAOA,oBAAM8zF,CACJC,GACA,UACE77D,KACGl4B,GACyE,CAAC,GACnD,IAAAyhG,EAG5B,OAFiB,QAAjBA,EAAAzhG,EAAQohD,iBAAS,IAAAqgD,IAAjBzhG,EAAQohD,UACoB,OAA1BjwE,KAAKgwH,uBAAkChwH,KAAK2vH,IAAIz/C,oBAAiBr/D,GAC5D7Q,KAAK6vH,gBAAgB9oE,GAAW47D,eAAeC,EAAY/zF,EACpE,CAMSygG,UAAAA,CAAWC,EAAiC,CAAC,GACpD,MAAO,IACFvvH,KAAKivB,a,EACAmgG,G,WAALpvH,WACAuvH,KACwB,MAAvBA,EAAUxoE,WAAqB,CACjCA,UAAW/mD,KAAK6vH,gBAAgBN,EAAUxoE,a,KAGhD,ECnQa,MAAMwpE,WAAcf,GAQjCpxH,WAAAA,EAAY,SACV80E,KACGrkD,GAC0E,CAAC,GAC9E/S,MAAM+S,GAASmgG,GAAA,gBAX0C,CAAC,GAY1D97C,GAAU3iD,SAAQ,CAACkzF,EAASlwC,IAAQvzE,KAAKwwH,WAAW/M,EAAS,CAAEwM,OAAgB,IAAR18C,KACzE,CAESs8C,eAAAA,CAAgBpM,EAAqBzjH,KAAKywH,iBACjD,GAAuB,iBAAZhN,EAAsB,CAC/B,MAAMp9D,EAAUo9D,EAEhB,GADA5vF,GAAOwyB,GACuB,MAA1BrmD,KAAKkzE,SAAS7sB,GAAkB,MAAM,IAAID,GAAwBq9D,GACtEA,EAAUzjH,KAAKkzE,SAAS7sB,EAC1B,CACA,OAAOvqC,MAAM+zG,gBAAgBpM,EAC/B,CAMS4M,SAAAA,GACP,OAAOlhH,OAAO4P,KAAK/e,KAAKkzE,SAC1B,CASAs9C,UAAAA,CAAW/M,GAAsB,OAAEwM,GAAiC,CAAC,GACnE,MAAM,QAAE5pE,GAAYo9D,EACpBzjH,KAAKkzE,SAAS7sB,GAAWo9D,GACV,IAAXwM,GAAiBjwH,KAAK0wH,cAAcrqE,EAC1C,CAOAsqE,aAAAA,CAActqE,GACZ,GAA8B,MAA1BrmD,KAAKkzE,SAAS7sB,GAAkB,MAAM,IAAID,GAAwBC,UAC/DrmD,KAAKkzE,SAAS7sB,GACjBrmD,KAAKywH,kBAAoBpqE,UAAgBrmD,KAAKywH,eACpD,CAOAC,aAAAA,CAAcrqE,GAEZ,GADAxyB,GAAOwyB,GACuB,MAA1BrmD,KAAKkzE,SAAS7sB,GAAkB,MAAM,IAAID,GAAwBC,GACtErmD,KAAKywH,gBAAkBpqE,CACzB,EClEK,IAAWuqE,GAAiB,SAAjBA,GAAiB,OAAjBA,EAAiB,wBAAjBA,EAAiB,kBAAjBA,CAAiB,MAQjBC,GAAW,SAAXA,GAAW,OAAXA,EAAW,gBAAXA,EAAW,sBAAXA,CAAW,MAQXC,GAAkB,SAAlBA,GAAkB,OAAlBA,EAAkB,sBAAlBA,EAAkB,0BAAlBA,CAAkB,MAQlBC,GAAO,SAAPA,GAAO,OAAPA,EAAO,6CAAPA,EAAO,+BAAPA,EAAO,sBAAPA,EAAO,0BAAPA,EAAO,6BAAPA,EAAO,wBAAPA,EAAO,2BAAPA,EAAO,+BAAPA,EAAO,iCAAPA,EAAO,qCAAPA,EAAO,iCAAPA,EAAO,mCAAPA,CAAO,MAkBPC,GAAU,SAAVA,GAAU,OAAVA,EAAU,sBAAVA,EAAU,4BAAVA,EAAU,gEAAVA,CAAU,MAY5B,MAAMC,GAAsE,GAKrE,MAAeC,WAAiBltE,EAOrCv5C,MAAAA,GACE,MAAO,CACLvQ,KAAM8F,KAAK9F,KACXgiB,QAASlc,KAAKkc,QACdjL,KAAMjR,KAAKiR,KAEf,CAEA,kBAAOokE,CAAYmf,GACjB,MAAM28B,EAASF,GAAUtiF,MAAMyiF,GAAOA,EAAGl3H,OAASs6F,EAAKt6F,OACvD,GAAc,MAAVi3H,EAAgB,MAAM,IAAIjrE,GAAc,kCAAkCsuC,EAAKt6F,QACnF,OAAO,IAAIi3H,EAAO38B,EAAKvjF,KACzB,EAMK,MAAMogH,WAAmCH,GAK9C9yH,WAAAA,CAAY6S,GACV6K,MAAM,uBAAuBkzG,GAAA,YAHf,GAIdhvH,KAAKiR,KAAOA,EACZjR,KAAKlD,KAAO,4BACd,EACDkyH,GAVYqC,GAA0B,OACd,GAUzBJ,GAAUr3H,KAAKy3H,IAKR,MAAMC,WAA+BJ,GAK1C9yH,WAAAA,CAAY6S,GACV6K,MAAM,8BAA8BkzG,GAAA,YAHtB,GAIdhvH,KAAKiR,KAAOA,EACZjR,KAAKlD,KAAO,wBACd,EACDkyH,GAVYsC,GAAsB,OACV,GAUzBL,GAAUr3H,KAAK03H,IAKR,MAAMC,WAAoCL,GAK/C9yH,WAAAA,GACE0d,MAAM,gCAAgCkzG,GAAA,YAHxB,GAIdhvH,KAAKlD,KAAO,6BACd,EACDkyH,GATYuC,GAA2B,OACf,GASzBN,GAAUr3H,KAAK23H,IAKR,MAAMC,WAA+BN,GAK1C9yH,WAAAA,CAAY6S,GACV6K,MAAM,uCAAuCkzG,GAAA,YAH/B,GAIdhvH,KAAKiR,KAAOA,EACZjR,KAAKlD,KAAO,wBACd,EACDkyH,GAVYwC,GAAsB,OACV,GAUzBP,GAAUr3H,KAAK43H,IAKR,MAAMC,WAA6BP,GAKxC9yH,WAAAA,GACE0d,MAAM,uCAAuCkzG,GAAA,YAH/B,IAIdhvH,KAAKlD,KAAO,sBACd,EACDkyH,GATYyC,GAAoB,OACR,IASzBR,GAAUr3H,KAAK63H,IAKR,MAAMC,WAA+BR,GAK1C9yH,WAAAA,CAAYioD,GACVvqC,MAAM,sCAAsCuqC,KAAW2oE,GAAA,YAHzC,IAIdhvH,KAAKiR,KAAOo1C,EACZrmD,KAAKlD,KAAO,wBACd,EACDkyH,GAVY0C,GAAsB,OACV,IAUzBT,GAAUr3H,KAAK83H,IAKR,MAAMC,WAAyBT,GAKpC9yH,WAAAA,GACE0d,MAAM,gEAAgEkzG,GAAA,YAHxD,IAIdhvH,KAAKlD,KAAO,kBACd,EACDkyH,GATY2C,GAAgB,OACJ,IASzBV,GAAUr3H,KAAK+3H,IAKR,MAAMC,WAAyBV,GAKpC9yH,WAAAA,CAAY6xE,GACVn0D,MAAM,sCAAsCm0D,MAAc++C,GAAA,YAH5C,IAIdhvH,KAAKiR,KAAOg/D,EACZjwE,KAAKlD,KAAO,kBACd,EACDkyH,GAVY4C,GAAgB,OACJ,IAUzBX,GAAUr3H,KAAKg4H,IAKR,MAAMC,WAA+BX,GAK1C9yH,WAAAA,GACE0d,MAAM,oBAAoBkzG,GAAA,aAHX,OAIfhvH,KAAKlD,KAAO,wBACd,EACDkyH,GATY6C,GAAsB,QACT,OAS1BZ,GAAUr3H,KAAKi4H,I,sBCnNA,MAAMC,WAAmBzlB,GAKtCjuG,WAAAA,CAAY2zH,EAA0C1rE,GACpDvqC,QACA9b,KAAKgyH,WAAaD,EAClB/xH,KAAKqmD,QAAUA,CACjB,CAKA,UAAMriD,CAAKiuH,GACT,OAAOjyH,KAAKqiH,WAAW4P,EACzB,CAEA,gBAAM5P,CAAW4P,GACf,MAAMhhH,EAAO7D,GAAOuB,GAAOc,KAAKwiH,GAAUvqD,GAAS+B,YAC7C,UAAE2C,SAAoBpsE,KAAKgyH,WAAWvlE,QAAQskE,GAAQ1O,WAAY,CACtEt7D,UAAW/mD,KAAKqmD,QAChBp1C,SAEF,OAAO4iB,GAAOu4C,EAChB,CAEA,qBAAek2C,CACbl8E,GACA,QAAE47E,EAAO,UAAE/xC,GAA6D,CAAC,GAEzE,GAAiB,MAAbA,EAAmB,MAAM,IAAItrB,EAAc,YAAa,WAAYsrB,GACxE,MAAMl8D,QAAY/T,KAAKgyH,WAAWvlE,QAAQskE,GAAQ/sH,KAAM,CACtD+iD,UAAW/mD,KAAKqmD,QAChBjgB,KACA8rF,cAAc,EACdjiD,YACA+xC,YAEF,GAA6B,MAAzBjuG,EAAIo+G,kBACN,MAAM,IAAIxsE,GAAyB,kDAErC,OAAO5xC,EAAIo+G,iBACb,CAEA,iBAAe3P,CAAYtmG,GACzB,MAAM,UAAEkwD,SAAoBpsE,KAAKgyH,WAAWvlE,QAAQskE,GAAQvO,YAAa,CACvEz7D,UAAW/mD,KAAKqmD,QAChBnqC,YAEF,OAAOvN,GAAOc,KAAK28D,EAAW,MAChC,CAEA,mBAAeq2C,CACbxxG,EACA6wG,GACA,KAAEhlH,EAAI,QAAE81B,EAAO,gBAAEm1B,EAAe,UAAEkoB,GAA2D,CAAC,GAE9F,MAAM,UAAE7D,SAAoBpsE,KAAKgyH,WAAWvlE,QAAQskE,GAAQtO,cAAe,CACzE17D,UAAW/mD,KAAKqmD,QAChBvL,OAAQ,CACNh+C,OACA81B,UACAq9C,YACAloB,mBAEF+5D,MACA7wG,SAEF,OAAOm7D,CACT,CAEA,oBAAeu2C,CAAeC,GAC5B,MAAM,UAAEx2C,SAAoBpsE,KAAKgyH,WAAWvlE,QAAQskE,GAAQpO,eAAgB,CAC1EC,aACA77D,UAAW/mD,KAAKqmD,UAElB,OAAO+lB,CACT,E,0YC1FiD,IAAAgmD,GAAA,IAAAloG,QAAAmoG,GAAA,IAAAnoG,QAAAooG,GAAA,IAAApoG,QAAAqoG,GAAA,IAAAnoG,QAkCpC,MAAMooG,GAenBp0H,WAAAA,CACEq0H,EACAC,EACAh6E,G,SACA,K,EAAA65E,I,MAAA,MAbF9wC,GAAA,KAAS2wC,GAAa,IAAIxoG,KAK1B63D,GAAA,KAAA4wC,GAAa,GAEb5wC,GAAA,KAAS6wC,QAAQ,GAOftyH,KAAKyyH,WAAaA,EAClB/wC,GAAK4wC,GAALtyH,KAAgB04C,GAChB+5E,EAAWE,QAAQxwC,GAAAowC,GAAAvyH,KAAK4yH,IAAex1G,KAAKpd,MAAO0yH,EACrD,CAgEA,aAAMjmE,CACJ3vD,EACA6pE,GAGA,OADAwb,GAAAowC,GAAAvyH,KAAK6yH,IAAY/vH,KAAjB9C,KAAmB0hF,GAAK2wC,GAALryH,KAAAuhF,GAAK8wC,GAALryH,MAAmB,GAAIlD,EAAM6pE,GACzC,IAAIzjD,SAAQ,CAACC,EAASC,KAC3Bm+D,GAAK6wC,GAALpyH,MAAgBoC,IAAIm/E,GAAK8wC,GAALryH,MAAiB,CAAEmjB,UAASC,UAAS,GAE7D,CAOA0vG,MAAAA,CAAqCh2H,EAAY6pE,GAC/Cwb,GAAAowC,GAAAvyH,KAAK6yH,IAAY/vH,KAAjB9C,UAAkB6Q,EAAW/T,EAAM6pE,EACrC,EAaD,eAAAisD,GA5FsBnlH,EAAuCslH,GAC1D,GAAqB,QAAjBtlH,GAAKulH,QAAmB,MAAM,IAAIpsE,GAAuBloC,KAAKC,UAAUlR,IAC5E,GAAI,WAAYA,GAAO,UAAWA,EAEhC,YADA00E,GAAAowC,GAAAvyH,KAAKizH,IAAgBnwH,KAArB9C,KAAsByN,GAIxB,MAAMg/C,EAAUh/C,EAChB,IAAI0Z,EACAlS,EACJ,IACE,KAAMw3C,EAAQjY,UAAU+sC,GAAK+wC,GAALtyH,OAAgB,MAAM,IAAI6xH,GAClD,MAAMqB,EAAazmE,EAAQjY,OAC3BrtB,QAAeo6D,GAAK+wC,GAALtyH,MAAckzH,GAAYzmE,EAAQka,OAAQosD,EAC3D,CAAE,MAAOt2H,GACP8qE,GAAY9qE,GACZwY,EAAQxY,CACV,CASA,GARkB,MAAdgwD,EAAQ7rD,IACVuhF,GAAAowC,GAAAvyH,KAAKmzH,IAAarwH,KAAlB9C,KACEysD,EAAQ7rD,GACR6rD,EAAQjY,OACRrtB,EACS,MAATlS,GAAiBA,aAAiBi8G,GAAWj8G,EAAQ,IAAI08G,IAGhD,MAAT18G,KAAmBA,aAAiBi8G,IAAW,MAAMj8G,CAC3D,CAAC,SAAA49G,GAGCjyH,EACA4zC,EACAmyB,GAEA3mE,KAAKyyH,WAAWW,YAAY,CAC1BJ,QAAS,SACC,MAANpyH,EAAa,CAAEA,MAAO,CAAC,EAC3B4zC,YACc,MAAVmyB,EAAiB,CAAEA,UAAW,CAAC,GAEvC,CAAC,SAAAwsD,GAGCvyH,EACA4zC,EACArtB,EACAlS,GAEAjV,KAAKyyH,WAAWW,YAAY,CAC1BJ,QAAS,MACTpyH,KACA4zC,YACa,MAATv/B,EAAgB,CAAEA,MAAOA,EAAMxK,UAAa,CAAE0c,WAEtD,CAAC,SAAA8rG,IA+BgB,GAAEryH,EAAE,MAAEqU,EAAK,OAAEkS,IAC5B,MAAM8pE,EAAY1P,GAAK6wC,GAALpyH,MAAgBoV,IAAIxU,GACtC,GAAiB,MAAbqwF,EAAmB,MAAM,IAAIpqC,GAAqBjmD,GACzC,MAATqU,EAAeg8E,EAAU7tE,OAAO8tG,GAAS77C,YAAYpgE,IACpDg8E,EAAU9tE,QAAQgE,GACvBo6D,GAAK6wC,GAALpyH,MAAgBsuD,OAAO1tD,EACzB,CCxHa,MAAMyyH,WAAkB7D,GAoBrCpxH,WAAAA,EAAY,KACVtB,EAAI,gBACJw2H,EAAkBA,OAAQ,aAC1BZ,EAAeA,OAAQ,gBACvBa,EAAkBA,UACfplD,IAOHryD,MAAMqyD,GACNnuE,KAAKszH,gBAAkBA,EACvBtzH,KAAK0yH,aAAeA,EACpB1yH,KAAKuzH,gBAAkBA,EACvBvzH,KAAKlD,KAAOA,CACd,CAES+yH,eAAAA,CAAgBpM,EAAqBzjH,KAAKqwH,YAAY,IAC7D,GAAuB,iBAAZ5M,EAAsB,CAC/B,MAAMp9D,EAAUo9D,EAEhB,GADA5vF,GAAOwyB,IACFrmD,KAAKqwH,YAAY/5G,SAAS+vC,GAAU,MAAM,IAAIS,GAAyBT,GAC5ErmD,KAAKwzH,mBACL/P,EAAU,IAAIqO,GAAW9xH,KAAK+xH,UAAW1rE,EAC3C,CAEA,OADe,MAAXo9D,GAAiBzjH,KAAKyzH,uBACnB33G,MAAM+zG,gBAAgBpM,EAC/B,CAES4M,SAAAA,GACP,GAAsB,MAAlBrwH,KAAK0zH,UAAmB,MAAO,GACnC,MAAM53E,EAAU3sC,OAAO4P,KAAK/e,KAAK0zH,UAAU53E,SAAS,GACpD,MAAO,IACU,MAAXA,EAAkB,CAACA,GAAW,MAC/B3sC,OAAO4P,KAAK/e,KAAK0zH,UAAU5tB,WAElC,CASA,qBAAM6tB,CACJlB,GACA,YAAEmB,GAAc,EAAK,KAAE92H,EAAO,eAA4D,CAAC,GAE3F,GAAsB,MAAlBkD,KAAK+xH,UACP,MAAM,IAAI9nE,GAAsB,uCAClC,IAAI4pE,EAEJ,MAAMC,EAAiBntD,IACrB,GAAIitD,EAAa,CACf,GAAwB,MAApBjtD,EAAOhZ,MAAMiG,IAAa,MAAM,IAAIzJ,GAAmB,4BAC3DnqD,KAAK+vH,KAAKzhE,OAAOxxD,GACjBkD,KAAK0vH,QAAQ5yH,EAAM,IAAIyqG,GAAK5gC,EAAOhZ,KAAKiG,MAAM,EAChD,CACA5zD,KAAKuzH,gBAAgB5sD,EAAO,EAGxBotD,EAAS,IAAIvB,GACjBC,GACA,YACSzyH,KAAK+xH,iBACL/xH,KAAK0zH,UACZ1zH,KAAK0yH,aAAamB,EAAiB,GAErC,CACE,CAAC9C,GAAQiD,eAAiBrtD,IACxB3mE,KAAK0zH,UAAY/sD,EACjB3mE,KAAKszH,gBAAgB3sD,EAAO,EAE9B,CAACoqD,GAAQ+C,eAAgBA,EACzB,CAAC/C,GAAQkD,iBAAmBttD,IAC1BktD,EAAmBltD,EACnBotD,EAAOtB,WAAWyB,YAAY,EAEhC,CAACnD,GAAQoD,gBAAiB,SAGxBC,QAAmBL,EAAOtnE,QAAQskE,GAAQ4B,QAAS,CACvD71H,KAAMkD,KAAKlD,KACX81B,QC5GqB,ED6GrBghG,gBAIF,OAFAE,EAAcM,GACdp0H,KAAK+xH,UAAYgC,EACVK,CACT,CAKAC,gBAAAA,GACEr0H,KAAKwzH,mBACLxzH,KAAK+xH,UAAUe,OAAO/B,GAAQkD,gBAAiB,CAAEjvD,OAAQ,QACzDhlE,KAAK+xH,UAAUU,WAAWyB,YAC5B,CAMA,kBAAMI,GAEJ,OADAt0H,KAAKwzH,mBACExzH,KAAK+xH,UAAUtlE,QAAQskE,GAAQ1qE,aAASx1C,EACjD,CAQA,sBAAM0jH,CACJxjH,EACArB,GAEA1P,KAAKwzH,mBACL,MAAMrsG,QAAennB,KAAK+xH,UAAUtlE,QAAQskE,GAAQwD,iBAAkB,CAAExjH,OAAMrB,UAE9E,OADA1P,KAAK0zH,UAAYvsG,EAAOk/B,QACjBl/B,CACT,CAKA,wBAAMqtG,CAAmBC,GACvBz0H,KAAKwzH,yBACCxzH,KAAK+xH,UAAUtlE,QAAQskE,GAAQ+C,cAAeW,EACtD,CAEAjB,gBAAAA,GAGE,GAAsB,MAAlBxzH,KAAK+xH,UACT,MAAM,IAAI7nE,GAAuB,kCACnC,CAEAupE,oBAAAA,GAIE,GADAzzH,KAAKwzH,mBAC2B,IAA5BxzH,KAAKqwH,YAAY92H,OACrB,MAAM,IAAI0tD,EACZ,E,wZE7L0D,IAAA+qE,GAAA,IAAA9nG,QAAAwqG,GAAA,IAAAtqG,QAAAspG,GAAA,IAAAxpG,QAQ7C,MAAeyqG,WAA+CtzG,GAc3E,eAAIuzG,GACF,OAA0B,MAAnBrzC,GAAKywC,GAALhyH,KACT,CAOA,YAAIkzE,GACF,OAAOqO,GAAKmyC,GAAL1zH,KACT,CAEU5B,WAAAA,G,MACR0d,Q,GAAQ,K,EAAA44G,I,MAAA,MAzBVjzC,GAAA,KAAAuwC,QAAU,GAeVvwC,GAAA,KAAAiyC,GAA0B,GAW1B,CAYA,qBAAamB,CACX/3H,EACA21H,EACAqC,EACAlB,GAEA,IAAIC,EAEJ,MAAME,EAAS,IAAIvB,GACjBC,GACA,KACE/wC,GAAUswC,GAAV8C,OAAuBjkH,GACvB6wE,GAAUgyC,GAAVoB,EAAsB,IACtBA,EAAU/yG,KAAK,aAAc8xG,EAAiB,GAEhD,CACE,CAAC9C,GAAQiD,eAAgB7xC,GAAAuyC,GAAAI,EAAUC,IAAgB33G,KAAK03G,GACxD,CAAC/D,GAAQ+C,eAAgBgB,EAAUE,eAAe53G,KAAK03G,GACvD,CAAC/D,GAAQkD,iBAAmBttD,IAC1BktD,EAAmBltD,EACnBotD,EAAOtB,WAAWyB,YAAY,EAEhC,CAACnD,GAAQoD,gBAAiB,SAG9BzyC,GAAUswC,GAAV8C,EAAuBf,GACvB,MAAMK,QAAmB7yC,GAAUywC,GAAV8C,GAAqBroE,QAAQskE,GAAQ4B,QAAS,CACrE71H,OACA81B,QD3DqB,EC4DrBghG,gBAEFkB,EAAUE,eAAeZ,EAC3B,CAKAF,UAAAA,GACE,MAAMH,EAAS5xC,GAAAuyC,GAAA10H,KAAKi1H,IAAanyH,KAAlB9C,MACf+zH,EAAOjB,OAAO/B,GAAQkD,gBAAiB,CAAEjvD,OAAQ,QACjD+uD,EAAOtB,WAAWyB,YACpB,CAKA,iBAAMgB,GACJ,MAAMnB,EAAS5xC,GAAAuyC,GAAA10H,KAAKi1H,IAAanyH,KAAlB9C,MAEf,aADwB+zH,EAAOtnE,QAAQskE,GAAQ1qE,aAASx1C,IACvChF,KAAKw6C,GAAY,IAAIyrE,GAAWiC,EAAQ1tE,IAC3D,CAQA,uBAAM8uE,CACJpkH,EACArB,GAEA,MAAMyX,QAAeg7D,GAAAuyC,GAAA10H,KAAKi1H,IAAanyH,KAAlB9C,MAAqBysD,QAAQskE,GAAQwD,iBAAkB,CAAExjH,OAAMrB,UAEpF,OADAyyE,GAAAuyC,GAAA10H,KAAK+0H,IAAejyH,KAApB9C,KAAqBmnB,EAAOk/B,SACrBk7B,GAAKmyC,GAAL1zH,KACT,CAKA,wBAAMw0H,CAAmBC,SACjBtyC,GAAAuyC,GAAA10H,KAAKi1H,IAAanyH,KAAlB9C,MAAqBysD,QAAQskE,GAAQ+C,cAAeW,EAC5D,EACD,SAAAQ,KA5GG,GAAuB,MAAnB1zC,GAAKywC,GAALhyH,MACF,MAAM,IAAIkqD,GAAuB,mCACnC,OAAOq3B,GAAKywC,GAALhyH,KACT,CAAC,SAAA+0H,GAwBepuD,GACd,MAAM0pD,EAAY,IACb,IAAItmG,IAAI,IAAI5a,OAAO4P,KAAK4nD,EAAO7qB,YAAa3sC,OAAO4P,KAAK4nD,EAAOm/B,cAEpEpkB,GAAKgyC,GAAL1zH,KAAiBqwH,EAAUxkH,KAAKw6C,GAAY,IAAIyrE,GAAW3vC,GAAAuyC,GAAA10H,KAAKi1H,IAAanyH,KAAlB9C,MAAsBqmD,MACjFrmD,KAAK+hB,KAAK,iBAAkBw/D,GAAKmyC,GAAL1zH,MAC9B,C,oMC1DmE,IAAAo1H,GAAA,IAAAlrG,QAUtD,MAAMmrG,WAA6BV,GAA0Cv2H,WAAAA,IAAA4C,G,UAAA,SAAAA,G,EAC7E,G,mHAAb,K,EAAAo0H,I,UAAgB,CAKhB,aAAInlD,GACF,OAAOsR,GAAK6zC,GAALp1H,KACT,CAEmBg1H,cAAAA,CAAeruD,G,UAC3ByuD,G,EAAazuD,EAAOsJ,U,WAAzBjwE,M,GACAA,KAAK+hB,KAAK,kBAAmBw/D,GAAK6zC,GAALp1H,MAC/B,CAOA,oBAAa2yH,CAAQ71H,EAAc21H,GACjC,MAAMqC,EAAY,IAAIO,GAEtB,aADMA,GAAqBR,SAAS/3H,EAAM21H,EAAYqC,GAAW,GAC1DA,CACT,E,oMChCmE,IAAAQ,GAAA,IAAAprG,QAWtD,MAAMqrG,WAAqCZ,GAAyCv2H,WAAAA,IAAA4C,G,UAAA,SAAAA,G,EACnF,K,mHAAd,K,EAAAs0H,I,UAAsC,CAKtC,QAAI3nE,GACF,OAAO4zB,GAAK+zC,GAALt1H,KACT,CAEmBg1H,cAAAA,CAAeruD,GAChC,GAAwB,MAApBA,EAAOhZ,MAAMiG,IAAa,MAAM,IAAIzJ,GAAmB,4B,UACtDmrE,G,EAAQ,IAAI/tB,GAAK5gC,EAAOhZ,KAAKiG,K,WAAlC5zD,M,GACAA,KAAK+hB,KAAK,aAAcw/D,GAAK+zC,GAALt1H,MAC1B,CAOA,oBAAa2yH,CACX71H,EACA21H,GAEA,MAAMqC,EAAY,IAAIS,GAEtB,aADMz5G,MAAM+4G,SAAS/3H,EAAM21H,EAAYqC,GAAW,GAC3CA,CACT,E,eCvCF,MAAMU,G,OAAUC,GAAQ,CAAEtmG,eAAe,IAEnCumG,GAA6BhmH,IACjC,GAAqB,iBAAVA,GAAgC,OAAVA,GAAkBA,EAAMtR,cAAgB+Q,OACvE,OAAO63D,GAAUt3D,GAAO,EAAElT,EAAGoD,KAAO,CAACpD,EAAGk5H,GAA0B91H,MAEpE,GAAI3F,MAAM+W,QAAQtB,GAChB,OAAOA,EAAM7D,KAAKw7D,GAASquD,GAA0BruD,KAEvD,GAAqB,iBAAV33D,GAAsB,IAAIjV,EAAUiV,GAAOrR,SAAS,MAAQqR,EAAO,CAC5E,MAAMimH,EAAK,IAAIl7H,EAAUiV,GAEzB,OADAimH,EAAGlrH,OAAS,IAAMkrH,EAAGt3H,SAAS,IACvBs3H,CACT,CACA,OAAOjmH,CAAK,EAGd,QACEiP,UAAWA,IAAI3d,IACbw0H,GAAQ72G,UAAU+2G,GAA0B10H,EAAK,OAAQA,EAAKhF,MAAM,IACtE8yB,MAAO0mG,GAAQ1mG,O,kBCwCF,MAAM8mG,WAAoBrF,GA+BvCnyH,WAAAA,EAAY,KACVtB,EAAI,GACJ8D,EAAE,KACFmQ,EAAI,aACJ8kH,EAAY,eACZC,EAAc,aACdpD,EAAY,cACZqD,EAAa,qBACbC,KACGnnG,IAWH/S,MAAM+S,GAASmgG,GAAA,gBA5CN,IAAIplG,KA6Cb5pB,KAAK61H,aAAeA,EACpB71H,KAAK81H,eAAiBA,EACtB91H,KAAK0yH,aAAeA,EACpB1yH,KAAK+1H,cAAgBA,EACrB/1H,KAAKg2H,qBAAuBA,EAC5Bh2H,KAAKlD,KAAOA,EACZkD,KAAKY,GAAKA,EACVZ,KAAK+zG,MAAQhjG,CACf,CAEAklH,qBAAAA,EAAsB,oBAAEC,IACtB,MAAM,QAAEp6E,EAAO,UAAEgqD,GAAc9lG,KAAKk1H,cACpC,MAAO,CACLp5E,QACEo6E,EAAoB11G,IAAI,YAAc01G,EAAoB11G,IAAI,aAAes7B,EAAU,CAAC,EAC1FgqD,UAAWowB,EAAoB11G,IAAI,aAAeslF,EAAY,CAAC,EAEnE,CAEAqwB,mBAAAA,GACuB,MAAjBn2H,KAAKo2H,UACTn8H,MAAMwV,KAAKzP,KAAKo2H,SAASr3G,QACtByvB,QAAQ6nF,GAAar2H,KAAKs2H,sBAAsBD,KAChDxqH,KAAKwqH,GAAar2H,KAAKu2H,WAAWF,KAClC7nF,QAAQulF,GAA+C,IAApCA,EAAOmC,oBAAoB1oH,OAC9C+iB,SAASwjG,GACRA,EAAOyC,IAAI1D,OAAO/B,GAAQiD,cAAeh0H,KAAKi2H,sBAAsBlC,KAE1E,CAESrD,aAAAA,CAAcrqE,GACrBvqC,MAAM40G,cAAcrqE,GACpBrmD,KAAKm2H,qBACP,CAES3F,UAAAA,CAAW/M,EAAsB50F,GACxC/S,MAAM00G,WAAW/M,EAAS50F,GAC1B7uB,KAAKm2H,qBACP,CAEAM,QAAAA,GAEE,OADAz2H,KAAK8vH,sBACE,CAAEniE,KAAM,CAAEiG,IAAK5zD,KAAK2vH,IAAIxoB,MAAOrqG,KAAMkD,KAAKgwH,kBACnD,CAEA,gBAAeE,CAAWpzH,GACxBgf,MAAMo0G,WAAWpzH,GACjB,MAAMmzE,QAAkBjwE,KAAK2vH,IAAIz/C,eACjCj2E,MAAMwV,KAAKzP,KAAKo2H,SAASr3G,QACtByvB,QAAQ6nF,GAAar2H,KAAKs2H,sBAAsBD,KAChDxqH,KAAKwqH,GAAar2H,KAAKu2H,WAAWF,KAClC9lG,SAASwjG,IACRA,EAAOyC,IAAI1D,OAAO/B,GAAQ+C,cAAe,CACvC7jD,eACI8jD,EAAOH,aAAe5zH,KAAKy2H,YAC/B,GAER,CAEAF,UAAAA,CAAWF,GACT,MAAMtC,EAAS/zH,KAAKo2H,SAAShhH,IAAIihH,GACjC,GAAc,MAAVtC,EAAgB,MAAM,IAAI/sE,GAAsBqvE,GACpD,OAAOtC,CACT,CAEAuC,qBAAAA,CAAsBD,GACpB,OACErF,GAAW0F,YAAc12H,KAAKu2H,WAAWF,GAAU9hE,QACnDv0D,KAAKu2H,WAAWF,GAAUG,IAAI/D,WAAWmC,aAE7C,CAEA+B,oBAAAA,CAAqBN,GACnB,MAAMtC,EAAS/zH,KAAKu2H,WAAWF,GAC/BtC,EAAOyC,IAAI/D,WAAWyB,aACtBH,EAAOx/D,OAASy8D,GAAW4F,aAC3B7C,EAAOmC,oBAAsB,IAAInsG,GACnC,CAMA8sG,eAAAA,CAAgBj2H,GACdZ,KAAK22H,qBAAqB/1H,GAC1BZ,KAAKo2H,SAAS9nE,OAAO1tD,EACvB,CAOAk2H,YAAAA,CAAaC,GAGX,MAAMn2H,EAAK+N,GAAOc,KAAK6oB,KAAAA,YAAiB,IAAIj6B,SAAS,UACrD,IAAIw1H,EACJ,MAAME,EAAyB,CAC7BnzH,KACA2zD,OAAQy8D,GAAWgG,+BACnBd,oBAAqB,IAAInsG,IACzB6pG,aAAa,EACb4C,IAAK,IAAIhE,GACPuE,GACA,KACE/2H,KAAKo2H,SAAS9nE,OAAO1tD,GACrBZ,KAAK0yH,aAAa9xH,EAAIizH,EAAiB,GAEzC,CACE,CAAC9C,GAAQkD,iBAAmBttD,IAC1BktD,EAAmBltD,EACnB3mE,KAAK22H,qBAAqB/1H,EAAG,EAI/B,CAACmwH,GAAQ4B,SAAUt+D,OAASv3D,OAAM81B,UAASqkG,QAAOrD,eAAeb,KAC/D,GL1Me,IK0MXngG,EAAyB,MAAM,IAAI2+F,GAKvC,aAHMvxH,KAAK61H,aAAaj1H,EAAI,CAAE9D,OAAMm6H,QAAOrD,eAAeb,GAC1DgB,EAAOx/D,OAASy8D,GAAW0F,UAC3B3C,EAAOH,YAAcA,EACd,UACK5zH,KAAKk3H,mBACXtD,GAAe5zH,KAAKy2H,WACzB,EAEH,CAAC1F,GAAQwD,kBAAmBlgE,OAAStjD,OAAMrB,SAASqjH,KAClD,IAAK/yH,KAAKs2H,sBAAsB11H,GAAK,MAAM,IAAI6wH,GAE/C,OAAQ1gH,GACN,KAAK+/G,GAAmBqG,gBAEhBn3H,KAAK81H,eAAel1H,EAAI,CAAEmQ,OAAMrB,SAASqjH,GAC/CgB,EAAOmC,oBAAoBjwF,IAAIv2B,GAC/B,MACF,KAAKohH,GAAmBsG,YACtBrD,EAAOmC,oBAAoB5nE,OAAO5+C,GAClC,MACF,QACE,MAAM,IAAIw2C,GAAc,8BAA8Bn1C,KAG1D,MAAO,CACLsmH,aAAcp9H,MAAMwV,KAAKskH,EAAOmC,qBAChC7vE,QAASrmD,KAAKi2H,sBAAsBlC,GACrC,EAEH,CAAChD,GAAQ1qE,SAAUgO,MAAOsS,EAAQosD,KAChC,IAAK/yH,KAAKs2H,sBAAsB11H,GAAK,MAAM,IAAI6wH,GAE/C,aADMzxH,KAAK+1H,cAAcn1H,EAAI+lE,EAAQosD,GAC9B/yH,KAAKqwH,WAAW,EAEzB,CAACU,GAAQ/sH,MAAOqwD,OACZjuB,KAAI2gB,YAAY/mD,KAAKqmD,QAAS6rE,eAAclQ,WAC9C+Q,KAEA,IAAK/yH,KAAKs2H,sBAAsB11H,GAAK,MAAM,IAAI6wH,GAC/C,IAAKzxH,KAAKqwH,YAAY/5G,SAASywC,GAC7B,MAAM,IAAI2qE,GAAuB3qE,GAGnC,MAAMgzB,EAAa,CACjBhzB,YACAuwE,WAAYvE,EACZwE,gBAAiB32H,EACjBohH,WAEF,GAAIkQ,IAA4B,IAAZlQ,EAClB,MAAO,CAAEmQ,wBAAyBnyH,KAAKsiH,gBAAgBl8E,EAAI2zC,IAE7D,IACE,OAAOy7C,GAAQ1mG,MACb0mG,GAAQ72G,UAAU,CAChB64G,sBAAuBx3H,KAAKukH,gBAAgBn+E,EAAI,IAAK2zC,EAAYxvC,QAAQ,MAG/E,CAAE,MAAOt1B,GACP,MAAMqvG,QAAmBZ,GAAkBt9E,EAAIpmC,KAAK2vH,KACpD,GAAIrL,EAAW/qH,OAAS,EAAG,MAAM,IAAI83H,GAA2B/M,GAChE,MAAMrvG,CACR,GAEF,CAAC87G,GAAQvO,aAAcnuD,OAASn4C,UAAS6qC,YAAY/mD,KAAKqmD,SAAW0sE,KACnE,IAAK/yH,KAAKs2H,sBAAsB11H,GAAK,MAAM,IAAI6wH,GAC/C,IAAKzxH,KAAKqwH,YAAY/5G,SAASywC,GAC7B,MAAM,IAAI2qE,GAAuB3qE,GAGnC,MAAMgzB,EAAa,CAAEhzB,YAAWuwE,WAAYvE,EAAQwE,gBAAiB32H,GACrE,MAAO,CACLwrE,UAAWz9D,GAAOc,WAAWzP,KAAKwiH,YAAYtmG,EAAS69D,IAAa17E,SAAS,OAC9E,EAEH,CAAC0yH,GAAQtO,eAAgBpuD,OACrBvZ,SAAQgnE,MAAK7wG,OAAM81C,YAAY/mD,KAAKqmD,SACtC0sE,KAEA,IAAK/yH,KAAKs2H,sBAAsB11H,GAAK,MAAM,IAAI6wH,GAC/C,IAAKzxH,KAAKqwH,YAAY/5G,SAASywC,GAC7B,MAAM,IAAI2qE,GAAuB3qE,GAGnC,MAAMgzB,EAAa,IACdj/B,EACHiM,YACAuwE,WAAYvE,EACZwE,gBAAiB32H,GAEnB,MAAO,CACLwrE,gBAAiBpsE,KAAKyiH,cAAcxxG,EAAM6wG,EAAK/nC,GAChD,EAEH,CAACg3C,GAAQ1O,YAAahuD,OAASpjD,OAAM81C,YAAY/mD,KAAKqmD,SAAW0sE,KAC/D,IAAK/yH,KAAKs2H,sBAAsB11H,GAAK,MAAM,IAAI6wH,GAC/C,IAAKzxH,KAAKqwH,YAAY/5G,SAASywC,GAAY,MAAM,IAAI2qE,GAAuB3qE,GAC5E,MAAMgzB,EAAa,CAAEhzB,YAAWuwE,WAAYvE,EAAQwE,gBAAiB32H,GAKrE,MAAO,CAAEwrE,UAJSh/D,SACVpN,KAAKqiH,WAAWxuF,GAAO5iB,GAAO8oE,GACpCrS,GAAS6C,WAES,EAEtB,CAACwmD,GAAQpO,gBAAiBtuD,OAASuuD,aAAY77D,YAAY/mD,KAAKqmD,SAAW0sE,KACzE,IAAK/yH,KAAKs2H,sBAAsB11H,GAAK,MAAM,IAAI6wH,GAC/C,IAAKzxH,KAAKqwH,YAAY/5G,SAASywC,GAAY,MAAM,IAAI2qE,GAAuB3qE,GAC5E,MAAMgzB,EAAa,CAAEhzB,YAAWuwE,WAAYvE,EAAQwE,gBAAiB32H,GAErE,MAAO,CAAEwrE,gBADepsE,KAAK2iH,eAAeC,EAAY7oC,GACpC,EAEtB,CAACg3C,GAAQ+C,eAAgBz/D,MAAOsS,EAAQosD,KACtC,IAAK/yH,KAAKs2H,sBAAsB11H,GAAK,MAAM,IAAI6wH,GAE/C,aADMzxH,KAAKg2H,qBAAqBp1H,EAAI+lE,EAAQosD,GACrC,IAAI,KAMnB,OADA/yH,KAAKo2H,SAASh0H,IAAIxB,EAAImzH,GACfnzH,CACT,CAMA,qBAAM62H,CAAgBpB,GACpBr2H,KAAKu2H,WAAWF,GAAUG,IAAI1D,OAAO/B,GAAQoD,qBAAsBn0H,KAAKk3H,gBAC1E,CAMA,mBAAMA,GACJ,MAAM,OAAEnE,GAAW1yG,OAAOq3G,SAC1B,MAAO,CACL92H,GAAIZ,KAAKY,GACT9D,KAAMkD,KAAKlD,KACXmzE,gBAAiBjwE,KAAK2vH,IAAIz/C,eAC1B6iD,OAAmB,YAAXA,EAAuB,IAAMA,EACrChiH,KAAM/Q,KAAK+zG,MAEf,CAMAmhB,WAAAA,GACE,MAAO,CACLp5E,QAAiC,MAAxB97C,KAAKywH,gBAA0B,CAAE,CAACzwH,KAAKywH,iBAAkB,CAAC,GAAM,CAAC,EAC1E3qB,UAAW9lG,KAAKqwH,YACb7hF,QAAQ7yC,GAAMA,IAAMqE,KAAKywH,kBACzB7xG,QAAO,CAACm8E,EAAKp/F,KAAM,IAAMo/F,EAAK,CAACp/F,GAAI,CAAC,KAAM,CAAC,GAElD,ECvXK,SAASg8H,GAAQl8H,GACpB,IAAKsX,OAAO6kH,cAAcn8H,IAAMA,EAAI,EAChC,MAAM,IAAItB,MAAM,kCAAoCsB,EAC5D,CAEO,SAASo8H,GAAOz7H,KAAM07H,GACzB,MAVoBn8H,EAUPS,aATOpC,YAAeiW,YAAYC,OAAOvU,IAA6B,eAAvBA,EAAEyC,YAAYtB,MAUtE,MAAM,IAAI3C,MAAM,uBAXjB,IAAiBwB,EAYpB,GAAIm8H,EAAQv+H,OAAS,IAAMu+H,EAAQxhH,SAASla,EAAE7C,QAC1C,MAAM,IAAIY,MAAM,iCAAmC29H,EAAU,gBAAkB17H,EAAE7C,OACzF,CAEO,SAASw+H,GAAM9rH,GAClB,GAAiB,mBAANA,GAAwC,mBAAbA,EAAEqV,OACpC,MAAM,IAAInnB,MAAM,gDACpBw9H,GAAQ1rH,EAAE+rH,WACVL,GAAQ1rH,EAAEgsH,SACd,CAEO,SAASC,GAAQroE,EAAUsoE,GAAgB,GAC9C,GAAItoE,EAASuoE,UACT,MAAM,IAAIj+H,MAAM,oCACpB,GAAIg+H,GAAiBtoE,EAASwoE,SAC1B,MAAM,IAAIl+H,MAAM,wCACxB,CAkBO,SAASm+H,MAAS1jG,GACrB,IAAK,IAAI/7B,EAAI,EAAGA,EAAI+7B,EAAOr7B,OAAQV,IAC/B+7B,EAAO/7B,GAAG2T,KAAK,EAEvB,CAEO,SAAS+rH,GAAWz/H,GACvB,OAAO,IAAIiwB,SAASjwB,EAAIwX,OAAQxX,EAAIyX,WAAYzX,EAAIT,WACxD,CAkGO,MAAMk6B,GAAW8hC,YAEjBA,eAAemkE,GAAUC,EAAOC,EAAM1b,GACzC,IAAI2b,EAAK1qH,KAAKmrD,MACd,IAAK,IAAIvgE,EAAI,EAAGA,EAAI4/H,EAAO5/H,IAAK,CAC5BmkH,EAAGnkH,GAEH,MAAMsgE,EAAOlrD,KAAKmrD,MAAQu/D,EACtBx/D,GAAQ,GAAKA,EAAOu/D,UAElBnmG,KACNomG,GAAMx/D,EACV,CACJ,CAKO,SAAS3nD,GAAYtU,GACxB,GAAmB,iBAARA,EACP,MAAM,IAAI/C,MAAM,mBACpB,OAAO,IAAIH,YAAW,IAAImT,aAAcC,OAAOlQ,GACnD,CAaO,SAAS,GAAQ+T,GAIpB,MAHoB,iBAATA,IACPA,EAAOO,GAAYP,IACvB4mH,GAAO5mH,GACAA,CACX,CAKO,SAAS2nH,GAAgB3nH,GAI5B,MAHoB,iBAATA,IACPA,EAAOO,GAAYP,IACvB4mH,GAAO5mH,GACAA,CACX,CAwBO,MAAMwkB,IAGN,SAASojG,GAAaC,GACzB,MAAMC,EAAStrH,GAAQqrH,IAAW9iG,OAAO,GAAQvoB,IAAM6oB,SACjD19B,EAAMkgI,IAIZ,OAHAC,EAAMf,UAAYp/H,EAAIo/H,UACtBe,EAAMd,SAAWr/H,EAAIq/H,SACrBc,EAAMz3G,OAAS,IAAMw3G,IACdC,CACX,CCpPO,MAAMC,WAAavjG,GACtB,WAAAr3B,CAAYs4B,EAAM4rD,GACdxmE,QACA9b,KAAKq4H,UAAW,EAChBr4H,KAAKo4H,WAAY,EACjBL,GAAMrhG,GACN,MAAMrqB,EAAM,GAAQi2E,GAEpB,GADAtiF,KAAKi5H,MAAQviG,EAAKpV,SACe,mBAAtBthB,KAAKi5H,MAAMjjG,OAClB,MAAM,IAAI77B,MAAM,uDACpB6F,KAAKi4H,SAAWj4H,KAAKi5H,MAAMhB,SAC3Bj4H,KAAKg4H,UAAYh4H,KAAKi5H,MAAMjB,UAC5B,MAAMC,EAAWj4H,KAAKi4H,SAChBpjG,EAAM,IAAI76B,WAAWi+H,GAE3BpjG,EAAIzyB,IAAIiK,EAAI9S,OAAS0+H,EAAWvhG,EAAKpV,SAAS0U,OAAO3pB,GAAKiqB,SAAWjqB,GACrE,IAAK,IAAIxT,EAAI,EAAGA,EAAIg8B,EAAIt7B,OAAQV,IAC5Bg8B,EAAIh8B,IAAM,GACdmH,KAAKi5H,MAAMjjG,OAAOnB,GAElB70B,KAAKk5H,MAAQxiG,EAAKpV,SAElB,IAAK,IAAIzoB,EAAI,EAAGA,EAAIg8B,EAAIt7B,OAAQV,IAC5Bg8B,EAAIh8B,IAAM,IACdmH,KAAKk5H,MAAMljG,OAAOnB,GAClByjG,GAAMzjG,EACV,CACA,MAAAmB,CAAO9mB,GAGH,OAFAgpH,GAAQl4H,MACRA,KAAKi5H,MAAMjjG,OAAO9mB,GACXlP,IACX,CACA,UAAAm5H,CAAW33H,GACP02H,GAAQl4H,MACR63H,GAAOr2H,EAAKxB,KAAKg4H,WACjBh4H,KAAKq4H,UAAW,EAChBr4H,KAAKi5H,MAAME,WAAW33H,GACtBxB,KAAKk5H,MAAMljG,OAAOx0B,GAClBxB,KAAKk5H,MAAMC,WAAW33H,GACtBxB,KAAKkwD,SACT,CACA,MAAA55B,GACI,MAAM90B,EAAM,IAAIxH,WAAWgG,KAAKk5H,MAAMlB,WAEtC,OADAh4H,KAAKm5H,WAAW33H,GACTA,CACX,CACA,UAAA43H,CAAW90C,GAEPA,IAAOA,EAAKn1E,OAAOmS,OAAOnS,OAAO4Q,eAAe/f,MAAO,CAAC,IACxD,MAAM,MAAEk5H,EAAK,MAAED,EAAK,SAAEZ,EAAQ,UAAED,EAAS,SAAEH,EAAQ,UAAED,GAAch4H,KAQnE,OANAskF,EAAG+zC,SAAWA,EACd/zC,EAAG8zC,UAAYA,EACf9zC,EAAG2zC,SAAWA,EACd3zC,EAAG0zC,UAAYA,EACf1zC,EAAG40C,MAAQA,EAAME,WAAW90C,EAAG40C,OAC/B50C,EAAG20C,MAAQA,EAAMG,WAAW90C,EAAG20C,OACxB30C,CACX,CACA,KAAAhnF,GACI,OAAO0C,KAAKo5H,YAChB,CACA,OAAAlpE,GACIlwD,KAAKo4H,WAAY,EACjBp4H,KAAKk5H,MAAMhpE,UACXlwD,KAAKi5H,MAAM/oE,SACf,EAYG,MAAMz3B,GAAO,CAAC/B,EAAMrqB,EAAK6P,IAAY,IAAI88G,GAAKtiG,EAAMrqB,GAAK2pB,OAAO9Z,GAASoa,SC3EhF,SAAS+iG,GAAW3iG,EAAM4iG,EAAW3S,EAAO4S,GACxCxB,GAAMrhG,GACN,MAAMm+D,EF8NH,SAAmB2kC,EAAU3kC,GAChC,QAAahkF,IAATgkF,GAAiD,oBAA3B,CAAC,EAAEx2F,SAASyE,KAAK+xF,GACvC,MAAM,IAAI16F,MAAM,yCAEpB,OADegV,OAAO8/C,OEjOC,CAAEwqE,MAAO,GAAIC,UAAW,IFiOR7kC,EAE3C,CEnOiB8kC,CAAU,EAA8BJ,IAC/C,EAAEj9H,EAAC,MAAEm9H,EAAK,UAAEC,GAAc7kC,EAIhC,GAHA8iC,GAAQr7H,GACRq7H,GAAQ8B,GACR9B,GAAQ+B,GACJp9H,EAAI,EACJ,MAAM,IAAInC,MAAM,iCACpB,MAAMm0E,EAAWsqD,GAAgBU,GAC3BhtH,EAAOssH,GAAgBjS,GAEvBiT,EAAK,IAAI5/H,WAAWy/H,GAEpBI,EAAMphG,GAAKnX,OAAOoV,EAAM43C,GACxBwrD,EAAUD,EAAIT,aAAapjG,OAAO1pB,GACxC,MAAO,CAAEhQ,IAAGm9H,QAAOC,YAAWE,KAAIC,MAAKC,UAC3C,CACA,SAASC,GAAaF,EAAKC,EAASF,EAAII,EAAM7/F,GAM1C,OALA0/F,EAAI3pE,UACJ4pE,EAAQ5pE,UACJ8pE,GACAA,EAAK9pE,UACTooE,GAAMn+F,GACCy/F,CACX,CDmDAnhG,GAAKnX,OAAS,CAACoV,EAAMrqB,IAAQ,IAAI2sH,GAAKtiG,EAAMrqB,GEtDrC,MAAM4tH,WAAexkG,GACxB,WAAAr3B,CAAY65H,EAAUD,EAAWkC,EAAWntG,GACxCjR,QACA9b,KAAKq4H,UAAW,EAChBr4H,KAAKzG,OAAS,EACdyG,KAAKyV,IAAM,EACXzV,KAAKo4H,WAAY,EACjBp4H,KAAKi4H,SAAWA,EAChBj4H,KAAKg4H,UAAYA,EACjBh4H,KAAKk6H,UAAYA,EACjBl6H,KAAK+sB,KAAOA,EACZ/sB,KAAKsQ,OAAS,IAAItW,WAAWi+H,GAC7Bj4H,KAAKm6H,KAAO5B,GAAWv4H,KAAKsQ,OAChC,CACA,MAAA0lB,CAAO/kB,GACHinH,GAAQl4H,MAER63H,GADA5mH,EAAO,GAAQA,IAEf,MAAM,KAAEkpH,EAAI,OAAE7pH,EAAM,SAAE2nH,GAAaj4H,KAC7B9G,EAAM+X,EAAK1X,OACjB,IAAK,IAAIkc,EAAM,EAAGA,EAAMvc,GAAM,CAC1B,MAAMkhI,EAAOx/H,KAAKgC,IAAIq7H,EAAWj4H,KAAKyV,IAAKvc,EAAMuc,GAEjD,GAAI2kH,IAASnC,EAMb3nH,EAAOlO,IAAI6O,EAAKqG,SAAS7B,EAAKA,EAAM2kH,GAAOp6H,KAAKyV,KAChDzV,KAAKyV,KAAO2kH,EACZ3kH,GAAO2kH,EACHp6H,KAAKyV,MAAQwiH,IACbj4H,KAAKoxB,QAAQ+oG,EAAM,GACnBn6H,KAAKyV,IAAM,OAXf,CACI,MAAM4kH,EAAW9B,GAAWtnH,GAC5B,KAAOgnH,GAAY/+H,EAAMuc,EAAKA,GAAOwiH,EACjCj4H,KAAKoxB,QAAQipG,EAAU5kH,EAE/B,CAQJ,CAGA,OAFAzV,KAAKzG,QAAU0X,EAAK1X,OACpByG,KAAKs6H,aACEt6H,IACX,CACA,UAAAm5H,CAAW33H,GACP02H,GAAQl4H,MH7BT,SAAiBwB,EAAKquD,GACzBgoE,GAAOr2H,GACP,MAAM5E,EAAMizD,EAASmoE,UACrB,GAAIx2H,EAAIjI,OAASqD,EACb,MAAM,IAAIzC,MAAM,yDAA2DyC,EAEnF,CGwBQ29H,CAAQ/4H,EAAKxB,MACbA,KAAKq4H,UAAW,EAIhB,MAAM,OAAE/nH,EAAM,KAAE6pH,EAAI,SAAElC,EAAQ,KAAElrG,GAAS/sB,KACzC,IAAI,IAAEyV,GAAQzV,KAEdsQ,EAAOmF,KAAS,IAChB6iH,GAAMt4H,KAAKsQ,OAAOgH,SAAS7B,IAGvBzV,KAAKk6H,UAAYjC,EAAWxiH,IAC5BzV,KAAKoxB,QAAQ+oG,EAAM,GACnB1kH,EAAM,GAGV,IAAK,IAAI5c,EAAI4c,EAAK5c,EAAIo/H,EAAUp/H,IAC5ByX,EAAOzX,GAAK,GArFjB,SAAsBshI,EAAM5pH,EAAYb,EAAOqd,GAClD,GAAiC,mBAAtBotG,EAAKK,aACZ,OAAOL,EAAKK,aAAajqH,EAAYb,EAAOqd,GAChD,MAAM0tG,EAAO3jH,OAAO,IACd4jH,EAAW5jH,OAAO,YAClBguB,EAAK/xB,OAAQrD,GAAS+qH,EAAQC,GAC9B31F,EAAKhyB,OAAOrD,EAAQgrH,GACpBzuH,EAAI8gB,EAAO,EAAI,EACfrwB,EAAIqwB,EAAO,EAAI,EACrBotG,EAAKQ,UAAUpqH,EAAatE,EAAG64B,EAAI/X,GACnCotG,EAAKQ,UAAUpqH,EAAa7T,EAAGqoC,EAAIhY,EACvC,CA8EQytG,CAAaL,EAAMlC,EAAW,EAAGnhH,OAAqB,EAAd9W,KAAKzG,QAAawzB,GAC1D/sB,KAAKoxB,QAAQ+oG,EAAM,GACnB,MAAMS,EAAQrC,GAAW/2H,GACnBtI,EAAM8G,KAAKg4H,UAEjB,GAAI9+H,EAAM,EACN,MAAM,IAAIiB,MAAM,+CACpB,MAAM0gI,EAAS3hI,EAAM,EACf4rB,EAAQ9kB,KAAKoV,MACnB,GAAIylH,EAAS/1G,EAAMvrB,OACf,MAAM,IAAIY,MAAM,sCACpB,IAAK,IAAItB,EAAI,EAAGA,EAAIgiI,EAAQhiI,IACxB+hI,EAAMD,UAAU,EAAI9hI,EAAGisB,EAAMjsB,GAAIk0B,EACzC,CACA,MAAAuJ,GACI,MAAM,OAAEhmB,EAAM,UAAE0nH,GAAch4H,KAC9BA,KAAKm5H,WAAW7oH,GAChB,MAAMyD,EAAMzD,EAAOtU,MAAM,EAAGg8H,GAE5B,OADAh4H,KAAKkwD,UACEn8C,CACX,CACA,UAAAqlH,CAAW90C,GACPA,IAAOA,EAAK,IAAItkF,KAAK5B,aACrBkmF,EAAGliF,OAAOpC,KAAKoV,OACf,MAAM,SAAE6iH,EAAQ,OAAE3nH,EAAM,OAAE/W,EAAM,SAAE8+H,EAAQ,UAAED,EAAS,IAAE3iH,GAAQzV,KAO/D,OANAskF,EAAG8zC,UAAYA,EACf9zC,EAAG+zC,SAAWA,EACd/zC,EAAG/qF,OAASA,EACZ+qF,EAAG7uE,IAAMA,EACLlc,EAAS0+H,GACT3zC,EAAGh0E,OAAOlO,IAAIkO,GACXg0E,CACX,CACA,KAAAhnF,GACI,OAAO0C,KAAKo5H,YAChB,EAOG,MAaM0B,GAA4Bz3H,YAAYoM,KAAK,CACtD,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WACpF,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,YCnJlFsrH,GAA6BjkH,OAAO,GAAK,GAAK,GAC9C2jH,GAAuB3jH,OAAO,IACpC,SAASkkH,GAAQv/H,EAAGw/H,GAAK,GACrB,OAAIA,EACO,CAAEhvH,EAAG8G,OAAOtX,EAAIs/H,IAAar+H,EAAGqW,OAAQtX,GAAKg/H,GAAQM,KACzD,CAAE9uH,EAAsC,EAAnC8G,OAAQtX,GAAKg/H,GAAQM,IAAiBr+H,EAA4B,EAAzBqW,OAAOtX,EAAIs/H,IACpE,CAWA,MAEMG,GAAQ,CAACjvH,EAAGkvH,EAAIv/H,IAAMqQ,IAAMrQ,EAC5Bw/H,GAAQ,CAACnvH,EAAGvP,EAAGd,IAAOqQ,GAAM,GAAKrQ,EAAOc,IAAMd,EAE9Cy/H,GAAS,CAACpvH,EAAGvP,EAAGd,IAAOqQ,IAAMrQ,EAAMc,GAAM,GAAKd,EAC9C0/H,GAAS,CAACrvH,EAAGvP,EAAGd,IAAOqQ,GAAM,GAAKrQ,EAAOc,IAAMd,EAE/C2/H,GAAS,CAACtvH,EAAGvP,EAAGd,IAAOqQ,GAAM,GAAKrQ,EAAOc,IAAOd,EAAI,GACpD4/H,GAAS,CAACvvH,EAAGvP,EAAGd,IAAOqQ,IAAOrQ,EAAI,GAAQc,GAAM,GAAKd,EAY3D,SAASqqC,GAAIw1F,EAAIC,EAAIC,EAAIC,GACrB,MAAMl/H,GAAKg/H,IAAO,IAAME,IAAO,GAC/B,MAAO,CAAE3vH,EAAIwvH,EAAKE,GAAOj/H,EAAI,GAAK,GAAM,GAAM,EAAGA,EAAO,EAAJA,EACxD,CAEA,MAAMm/H,GAAQ,CAACH,EAAIE,EAAIE,KAAQJ,IAAO,IAAME,IAAO,IAAME,IAAO,GAC1DC,GAAQ,CAACx7E,EAAKk7E,EAAIE,EAAIK,IAAQP,EAAKE,EAAKK,GAAOz7E,EAAM,GAAK,GAAM,GAAM,EACtE07E,GAAQ,CAACP,EAAIE,EAAIE,EAAII,KAAQR,IAAO,IAAME,IAAO,IAAME,IAAO,IAAMI,IAAO,GAC3EC,GAAQ,CAAC57E,EAAKk7E,EAAIE,EAAIK,EAAII,IAAQX,EAAKE,EAAKK,EAAKI,GAAO77E,EAAM,GAAK,GAAM,GAAM,EAC/E87E,GAAQ,CAACX,EAAIE,EAAIE,EAAII,EAAII,KAAQZ,IAAO,IAAME,IAAO,IAAME,IAAO,IAAMI,IAAO,IAAMI,IAAO,GAC5FC,GAAQ,CAACh8E,EAAKk7E,EAAIE,EAAIK,EAAII,EAAII,IAAQf,EAAKE,EAAKK,EAAKI,EAAKI,GAAOj8E,EAAM,GAAK,GAAM,GAAM,ECkExFk8E,GAAuB,KD3G7B,SAAeC,EAAKzB,GAAK,GACrB,MAAM/hI,EAAMwjI,EAAInjI,OAChB,IAAIkiI,EAAK,IAAIp4H,YAAYnK,GACrBwiI,EAAK,IAAIr4H,YAAYnK,GACzB,IAAK,IAAIL,EAAI,EAAGA,EAAIK,EAAKL,IAAK,CAC1B,MAAM,EAAEoT,EAAC,EAAEvP,GAAMs+H,GAAQ0B,EAAI7jI,GAAIoiI,IAChCQ,EAAG5iI,GAAI6iI,EAAG7iI,IAAM,CAACoT,EAAGvP,EACzB,CACA,MAAO,CAAC++H,EAAIC,EAChB,CCkGoC,CAAU,CAC1C,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,sBACpE7vH,KAAIpQ,GAAKqb,OAAOrb,MArBW,GAsBvBkhI,GAA4B,KAAOF,GAAK,GAAZ,GAC5BG,GAA4B,KAAOH,GAAK,GAAZ,GAE5BI,GAA6B,IAAIx5H,YAAY,IAC7Cy5H,GAA6B,IAAIz5H,YAAY,IAC5C,MAAM05H,WAAe9C,GACxB,WAAA77H,CAAY45H,EAAY,IACpBl8G,MAAM,IAAKk8G,EAAW,IAAI,GAI1Bh4H,KAAKy7H,GAAoB,EAAfX,GAAU,GACpB96H,KAAK07H,GAAoB,EAAfZ,GAAU,GACpB96H,KAAK27H,GAAoB,EAAfb,GAAU,GACpB96H,KAAK47H,GAAoB,EAAfd,GAAU,GACpB96H,KAAKg8H,GAAoB,EAAflB,GAAU,GACpB96H,KAAK87H,GAAoB,EAAfhB,GAAU,GACpB96H,KAAKo8H,GAAoB,EAAftB,GAAU,GACpB96H,KAAKk8H,GAAoB,EAAfpB,GAAU,GACpB96H,KAAKw8H,GAAoB,EAAf1B,GAAU,GACpB96H,KAAKs8H,GAAoB,EAAfxB,GAAU,GACpB96H,KAAKg9H,GAAqB,EAAhBlC,GAAU,IACpB96H,KAAKi9H,GAAqB,EAAhBnC,GAAU,IACpB96H,KAAKk9H,GAAqB,EAAhBpC,GAAU,IACpB96H,KAAKm9H,GAAqB,EAAhBrC,GAAU,IACpB96H,KAAKo9H,GAAqB,EAAhBtC,GAAU,IACpB96H,KAAKq9H,GAAqB,EAAhBvC,GAAU,GACxB,CAEA,GAAA1lH,GACI,MAAM,GAAEqmH,EAAE,GAAEC,EAAE,GAAEC,EAAE,GAAEC,EAAE,GAAEI,EAAE,GAAEF,EAAE,GAAEM,EAAE,GAAEF,EAAE,GAAEM,EAAE,GAAEF,EAAE,GAAEU,EAAE,GAAEC,EAAE,GAAEC,EAAE,GAAEC,EAAE,GAAEC,EAAE,GAAEC,GAAOr9H,KAC3E,MAAO,CAACy7H,EAAIC,EAAIC,EAAIC,EAAII,EAAIF,EAAIM,EAAIF,EAAIM,EAAIF,EAAIU,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EACxE,CAEA,GAAAj7H,CAAIq5H,EAAIC,EAAIC,EAAIC,EAAII,EAAIF,EAAIM,EAAIF,EAAIM,EAAIF,EAAIU,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,GAC5Dr9H,KAAKy7H,GAAU,EAALA,EACVz7H,KAAK07H,GAAU,EAALA,EACV17H,KAAK27H,GAAU,EAALA,EACV37H,KAAK47H,GAAU,EAALA,EACV57H,KAAKg8H,GAAU,EAALA,EACVh8H,KAAK87H,GAAU,EAALA,EACV97H,KAAKo8H,GAAU,EAALA,EACVp8H,KAAKk8H,GAAU,EAALA,EACVl8H,KAAKw8H,GAAU,EAALA,EACVx8H,KAAKs8H,GAAU,EAALA,EACVt8H,KAAKg9H,GAAU,EAALA,EACVh9H,KAAKi9H,GAAU,EAALA,EACVj9H,KAAKk9H,GAAU,EAALA,EACVl9H,KAAKm9H,GAAU,EAALA,EACVn9H,KAAKo9H,GAAU,EAALA,EACVp9H,KAAKq9H,GAAU,EAALA,CACd,CACA,OAAAjsG,CAAQ+oG,EAAMrnH,GAEV,IAAK,IAAIja,EAAI,EAAGA,EAAI,GAAIA,IAAKia,GAAU,EACnC+pH,GAAWhkI,GAAKshI,EAAKmD,UAAUxqH,GAC/BgqH,GAAWjkI,GAAKshI,EAAKmD,UAAWxqH,GAAU,GAE9C,IAAK,IAAIja,EAAI,GAAIA,EAAI,GAAIA,IAAK,CAE1B,MAAM0kI,EAA4B,EAArBV,GAAWhkI,EAAI,IACtB2kI,EAA4B,EAArBV,GAAWjkI,EAAI,IACtB4kI,EAAM,GAAWF,EAAMC,EAAM,GAAK,GAAWD,EAAMC,EAAM,GAAK,GAAUD,EAAMC,EAAM,GACpFE,EAAM,GAAWH,EAAMC,EAAM,GAAK,GAAWD,EAAMC,EAAM,GAAK,GAAUD,EAAMC,EAAM,GAEpFG,EAA0B,EAApBd,GAAWhkI,EAAI,GACrB+kI,EAA0B,EAApBd,GAAWjkI,EAAI,GACrBglI,EAAM,GAAWF,EAAKC,EAAK,IAAM,GAAWD,EAAKC,EAAK,IAAM,GAAUD,EAAKC,EAAK,GAChFE,EAAM,GAAWH,EAAKC,EAAK,IAAM,GAAWD,EAAKC,EAAK,IAAM,GAAUD,EAAKC,EAAK,GAEhFG,EAAO,GAAUL,EAAKI,EAAKhB,GAAWjkI,EAAI,GAAIikI,GAAWjkI,EAAI,KAC7DmlI,EAAO,GAAUD,EAAMN,EAAKI,EAAKhB,GAAWhkI,EAAI,GAAIgkI,GAAWhkI,EAAI,KACzEgkI,GAAWhkI,GAAY,EAAPmlI,EAChBlB,GAAWjkI,GAAY,EAAPklI,CACpB,CACA,IAAI,GAAEtC,EAAE,GAAEC,EAAE,GAAEC,EAAE,GAAEC,EAAE,GAAEI,EAAE,GAAEF,EAAE,GAAEM,EAAE,GAAEF,EAAE,GAAEM,EAAE,GAAEF,EAAE,GAAEU,EAAE,GAAEC,EAAE,GAAEC,EAAE,GAAEC,EAAE,GAAEC,EAAE,GAAEC,GAAOr9H,KAEzE,IAAK,IAAInH,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAEzB,MAAMolI,EAAU,GAAWzB,EAAIF,EAAI,IAAM,GAAWE,EAAIF,EAAI,IAAM,GAAWE,EAAIF,EAAI,IAC/E4B,EAAU,GAAW1B,EAAIF,EAAI,IAAM,GAAWE,EAAIF,EAAI,IAAM,GAAWE,EAAIF,EAAI,IAE/E6B,EAAQ3B,EAAKQ,GAAQR,EAAKU,EAI1BkB,EAAO,GAAUf,EAAIa,EAHb5B,EAAKW,GAAQX,EAAKa,EAGUP,GAAU/jI,GAAIikI,GAAWjkI,IAC7DwlI,EAAM,GAAUD,EAAMhB,EAAIa,EAASE,EAAMxB,GAAU9jI,GAAIgkI,GAAWhkI,IAClEylI,EAAa,EAAPF,EAENG,EAAU,GAAW9C,EAAIC,EAAI,IAAM,GAAWD,EAAIC,EAAI,IAAM,GAAWD,EAAIC,EAAI,IAC/E8C,EAAU,GAAW/C,EAAIC,EAAI,IAAM,GAAWD,EAAIC,EAAI,IAAM,GAAWD,EAAIC,EAAI,IAC/E+C,EAAQhD,EAAKE,EAAOF,EAAKO,EAAOL,EAAKK,EACrC0C,EAAQhD,EAAKE,EAAOF,EAAKI,EAAOF,EAAKE,EAC3CsB,EAAU,EAALF,EACLG,EAAU,EAALF,EACLD,EAAU,EAALF,EACLG,EAAU,EAALF,EACLD,EAAU,EAALR,EACLS,EAAU,EAALX,IACFrwH,EAAGuwH,EAAI9/H,EAAG4/H,GAAO,GAAa,EAALF,EAAa,EAALF,EAAc,EAANmC,EAAe,EAANC,IACrDlC,EAAU,EAALJ,EACLE,EAAU,EAALJ,EACLE,EAAU,EAALL,EACLG,EAAU,EAALF,EACLD,EAAU,EAALF,EACLG,EAAU,EAALF,EACL,MAAMiD,EAAM,GAAUL,EAAKE,EAASE,GACpCjD,EAAK,GAAUkD,EAAKN,EAAKE,EAASE,GAClC/C,EAAW,EAANiD,CACT,GAEG1yH,EAAGwvH,EAAI/+H,EAAGg/H,GAAO,GAAkB,EAAV17H,KAAKy7H,GAAkB,EAAVz7H,KAAK07H,GAAa,EAALD,EAAa,EAALC,MAC3DzvH,EAAG0vH,EAAIj/H,EAAGk/H,GAAO,GAAkB,EAAV57H,KAAK27H,GAAkB,EAAV37H,KAAK47H,GAAa,EAALD,EAAa,EAALC,MAC3D3vH,EAAG+vH,EAAIt/H,EAAGo/H,GAAO,GAAkB,EAAV97H,KAAKg8H,GAAkB,EAAVh8H,KAAK87H,GAAa,EAALE,EAAa,EAALF,MAC3D7vH,EAAGmwH,EAAI1/H,EAAGw/H,GAAO,GAAkB,EAAVl8H,KAAKo8H,GAAkB,EAAVp8H,KAAKk8H,GAAa,EAALE,EAAa,EAALF,MAC3DjwH,EAAGuwH,EAAI9/H,EAAG4/H,GAAO,GAAkB,EAAVt8H,KAAKw8H,GAAkB,EAAVx8H,KAAKs8H,GAAa,EAALE,EAAa,EAALF,MAC3DrwH,EAAG+wH,EAAItgI,EAAGugI,GAAO,GAAkB,EAAVj9H,KAAKg9H,GAAkB,EAAVh9H,KAAKi9H,GAAa,EAALD,EAAa,EAALC,MAC3DhxH,EAAGixH,EAAIxgI,EAAGygI,GAAO,GAAkB,EAAVn9H,KAAKk9H,GAAkB,EAAVl9H,KAAKm9H,GAAa,EAALD,EAAa,EAALC,MAC3DlxH,EAAGmxH,EAAI1gI,EAAG2gI,GAAO,GAAkB,EAAVr9H,KAAKo9H,GAAkB,EAAVp9H,KAAKq9H,GAAa,EAALD,EAAa,EAALC,IAC9Dr9H,KAAKoC,IAAIq5H,EAAIC,EAAIC,EAAIC,EAAII,EAAIF,EAAIM,EAAIF,EAAIM,EAAIF,EAAIU,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EACzE,CACA,UAAA/C,GACIhC,GAAMuE,GAAYC,GACtB,CACA,OAAA5sE,GACIooE,GAAMt4H,KAAKsQ,QACXtQ,KAAKoC,IAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC1D,EAwFG,MAIMw8H,GAAyB/F,IAAa,IAAM,IAAIkE,KCjU7D,SAAS8B,GAAK3hI,GACV,GAAmB,iBAARA,EACP,MAAM,IAAIqS,UAAU,iCAAmCrS,GAC3D,OAAOA,EAAI05C,UAAU,OACzB,CACA,SAASA,GAAU15C,GACf,MAAM4hI,EAAOD,GAAK3hI,GACZ6hI,EAAQD,EAAKx1H,MAAM,KACzB,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,IAAIgN,SAASyoH,EAAMxlI,QACrC,MAAM,IAAIY,MAAM,oBACpB,MAAO,CAAE0kI,KAAMC,EAAMC,QACzB,CAmFA,MAAMC,GAASC,GAAeJ,GAAK,WAAaI,G,0BC/HjC,MAAeC,GAa5B,cAAMC,CAASxxE,GACb,IAAIznC,EAAQ,EACZ,MAAMiB,EAAS,GACf,IAAIs8F,EACJ,GACiB,MAAXA,GAAiBt8F,EAAOvtB,KAAK6pH,GACjCA,QAAgBzjH,KAAK4rH,WAAW1lG,GAChCA,GAAS,cAEHynC,EAAK6jB,mBAAmBiyC,EAAQp9D,SAAS8rC,MAC7C,KAAM,IACN,KAAM,KAGV,OAAOhrE,CACT,E,0XC3BK,MAAMi4G,GAAgBzwH,GAAOc,KAAK,gBAQlC,SAAS4vH,GAAUnjH,EAAqB7P,GAC7C,MAAMqtB,EAAI4lG,KAAAA,KAAmBpjH,EAAS7P,GAGtC,MAAO,CACLq9B,UAHShQ,EAAE19B,MAAM,EAAG,IAIpBujI,UAHS7lG,EAAE19B,MAAM,IAKrB,CAEO,SAASwjI,GAAkBnzH,EAAkBozH,GAClD,OAAOA,EAAS7gH,QAAO,EAAG8qB,YAAW61F,aAAaG,KAChD,MAAMC,EAAchxH,GAAOa,YAAY,GAGvC,OAFAmwH,EAAYtlH,cAAcqlH,EApBN,WAoBiC,GAE9CL,GADMn4D,GAAc,CAACv4D,GAAOE,MAAM,EAAG,GAAI66B,EAAWi2F,IACpCJ,EAAU,GAChClzH,EACL,CAAC,IAAAuzH,GAAA,IAAA11G,QAAA21G,GAAA,IAAAz1G,QAWc,MAAM01G,WAA+BZ,GAOlD9gI,WAAAA,CAAY2hI,G,MACVjkH,Q,GAAQ,K,EAAA+jH,I,MAAA,M,mCAPa,E,CAAvBp+C,CAAA,KAAAm+C,IAQEl+C,GAAKk+C,GAAL5/H,KAA+B+/H,EACjC,CA+BA,eAAMC,GACJ,OAAO79C,GAAA09C,GAAA7/H,KAAKigI,IAAUn9H,KAAf9C,MAAgB,EACzB,CAKAkgI,aAAAA,GACE,OAAO/9C,GAAA09C,GAAA7/H,KAAKigI,IAAUn9H,KAAf9C,MAAgB,EACzB,CAeA,gBAAM4rH,CAAWuU,GACf,MAAMC,QAAepgI,KAAKggI,YAC1B,OAAO79C,GAAA09C,GAAA7/H,KAAKqgI,IAAmBv9H,KAAxB9C,KAAyBmgI,EAAcC,EAChD,CAKAE,cAAAA,CAAeH,GACb,MAAMC,EAASpgI,KAAKkgI,gBACpB,OAAO/9C,GAAA09C,GAAA7/H,KAAKqgI,IAAmBv9H,KAAxB9C,KAAyBmgI,EAAcC,EAChD,EACD,SAAAH,GA/DYM,GACT,MAAMC,EAAmB/1F,IACvB,MACMg2F,EAAYjB,GADAH,GAAU50F,EAAM20F,IACa,CAAC,GAAI,MAKpD,OAJA19C,GAAKk+C,GAAL5/H,KAA+B,CAC7B0pC,UAAWt8B,GAAOqzH,EAAU/2F,UAAWg+B,GAAS+B,WAChD81D,UAAWnyH,GAAOqzH,EAAUlB,UAAW73D,GAAS+B,aAE3C8X,GAAKq+C,GAAL5/H,KAA4B,EAGrC,GAAIiQ,YAAYC,OAAOqxE,GAAKq+C,GAAL5/H,OAA+B,CACpD,GAA4C,KAAxCuhF,GAAKq+C,GAAL5/H,MAA6BzG,OAC/B,MAAM,IAAIorD,EAAc,cAAe,GAAI48B,GAAKq+C,GAAL5/H,MAA6BzG,QAE1E,OAAOinI,EAAgBj/C,GAAKq+C,GAAL5/H,MACzB,CACA,MAA4C,iBAAjCuhF,GAAKq+C,GAAL5/H,MAAkDuhF,GAAKq+C,GAAL5/H,MACtDugI,EACHC,EFiFD,SAA4B/nB,EAAUwmB,EAAa,IACtD,OJpHG,SAAgBvoG,EAAM43C,EAAUhiE,GACnC,MAAM,EAAEhQ,EAAC,MAAEm9H,EAAK,GAAEG,EAAE,IAAEC,EAAG,QAAEC,GAAYT,GAAW3iG,EAAM43C,EAAUhiE,EImHC,CAAEhQ,EAAG,KAAMm9H,MAAO,KJlHrF,IAAIO,EACJ,MAAMlhI,EAAM,IAAIkB,WAAW,GACrBmgI,EAAO5B,GAAWz/H,GAClBqhC,EAAI,IAAIngC,WAAW6/H,EAAI7B,WAE7B,IAAK,IAAI0I,EAAK,EAAGjrH,EAAM,EAAGA,EAAMgkH,EAAOiH,IAAMjrH,GAAOokH,EAAI7B,UAAW,CAE/D,MAAM2I,EAAK/G,EAAGtiH,SAAS7B,EAAKA,EAAMokH,EAAI7B,WACtCmC,EAAKyG,SAAS,EAAGF,GAAI,IAGpB1G,EAAOF,EAAQV,WAAWY,IAAOhkG,OAAOl9B,GAAKqgI,WAAWh/F,GACzDwmG,EAAGv+H,IAAI+3B,EAAE7iB,SAAS,EAAGqpH,EAAGpnI,SACxB,IAAK,IAAIsnI,EAAK,EAAGA,EAAKvkI,EAAGukI,IAAM,CAE3BhH,EAAIT,WAAWY,GAAMhkG,OAAOmE,GAAGg/F,WAAWh/F,GAC1C,IAAK,IAAIthC,EAAI,EAAGA,EAAI8nI,EAAGpnI,OAAQV,IAC3B8nI,EAAG9nI,IAAMshC,EAAEthC,EACnB,CACJ,CACA,OAAOkhI,GAAaF,EAAKC,EAASF,EAAII,EAAM7/F,EAChD,CI6FW2mG,CAAOlC,GAAQhoF,GAAU6hE,GAAUomB,KAAMG,GAAMC,GAC1D,CEnFwB8B,CAAmBx/C,GAAKq+C,GAAL5/H,QFoEpC,SAAwBy4G,EAAUwmB,EAAa,IAClD,OJ1EG5qE,eAA2B39B,EAAM43C,EAAUhiE,GAC9C,MAAM,EAAEhQ,EAAC,MAAEm9H,EAAK,UAAEC,EAAS,GAAEE,EAAE,IAAEC,EAAG,QAAEC,GAAYT,GAAW3iG,EAAM43C,EAAUhiE,EIyEL,CAAEhQ,EAAG,KAAMm9H,MAAO,KJxE1F,IAAIO,EACJ,MAAMlhI,EAAM,IAAIkB,WAAW,GACrBmgI,EAAO5B,GAAWz/H,GAClBqhC,EAAI,IAAIngC,WAAW6/H,EAAI7B,WAE7B,IAAK,IAAI0I,EAAK,EAAGjrH,EAAM,EAAGA,EAAMgkH,EAAOiH,IAAMjrH,GAAOokH,EAAI7B,UAAW,CAE/D,MAAM2I,EAAK/G,EAAGtiH,SAAS7B,EAAKA,EAAMokH,EAAI7B,WACtCmC,EAAKyG,SAAS,EAAGF,GAAI,IAGpB1G,EAAOF,EAAQV,WAAWY,IAAOhkG,OAAOl9B,GAAKqgI,WAAWh/F,GACzDwmG,EAAGv+H,IAAI+3B,EAAE7iB,SAAS,EAAGqpH,EAAGpnI,eAClBi/H,GAAUl8H,EAAI,EAAGo9H,GAAW,KAE9BG,EAAIT,WAAWY,GAAMhkG,OAAOmE,GAAGg/F,WAAWh/F,GAC1C,IAAK,IAAIthC,EAAI,EAAGA,EAAI8nI,EAAGpnI,OAAQV,IAC3B8nI,EAAG9nI,IAAMshC,EAAEthC,EAAE,GAEzB,CACA,OAAOkhI,GAAaF,EAAKC,EAASF,EAAII,EAAM7/F,EAChD,CImDW6mG,CAAYpC,GAAQhoF,GAAU6hE,GAAUomB,KAAMG,GAAMC,GAC/D,CErEQgC,CAAe1/C,GAAKq+C,GAAL5/H,OAA8BmyF,KAAKquC,EACxD,CAAC,SAAAH,GAiBmBF,EAAsBC,GACxC,MAIMjkD,EAAMqjD,GAJM,CAChB91F,UAAW7V,GAAOusG,EAAO12F,WACzB61F,UAAW1rG,GAAOusG,EAAOb,YAEc,CAACY,EAAc,EAAG,IAAIz2F,UAC/D,OAAO,IAAIy4E,GAAc/0G,GAAO+uE,EAAKzU,GAAS4C,kBAChD,C,oMC1FF,IAAA42D,GAAA,IAAAh3G,QAIe,MAAMi3G,WAA2B90B,GAQ9CjuG,WAAAA,CAAYioD,G,UACVvqC,Q,OANM,E,mHAAR,K,EAAAolH,I,WAOErtG,GAAOwyB,GACPrmD,KAAKqmD,QAAUA,CACjB,CAMA,UAAeriD,GACb,OAAOhE,KAAKqiH,YACd,CAGA,gBAAeA,GACb,MAAM,IAAIz8D,GAAoB,uCAChC,CAGA,iBAAe48D,GACb,MAAM,IAAI58D,GAAoB,uCAChC,CAGA,mBAAe68D,GACb,MAAM,IAAI78D,GAAoB,uCAChC,CAGA,oBAAe+8D,GACb,MAAM,IAAI/8D,GAAoB,+CAChC,CAEA,qBAAe08D,CACbl8E,GACA,SAAEu5C,EAAQ,WAAEgrC,EAAU,OAAE36C,IAExB,GAAgB,MAAZ2P,GAAkC,MAAdgrC,GAAgC,MAAV36C,EAC5C,MAAM,IAAIrrB,EAAc,+BAAgC,WAAY,MAEtE,MAAM,SAAEw4B,EAAQ,WAAEytC,EAAU,KAAE5pH,EAAI,IAAEq4E,EAAG,SAAEO,EAAQ,SAAE5C,GAC7B,mBAAb2I,QAAgCA,EAASv5C,GAAMu5C,EAElDyhD,EACJjkD,QAAAA,OACO,WACL,GAAqB,MAAjBoE,GAAK2/C,GAALlhI,MAAuB,CACzB,MAAMyjH,QAAgBpyC,GAAWrxE,KAAKqmD,QAAS,CAAE2pB,WACjD,GAAqB,gBAAjByzC,EAAQxjE,KACV,MAAM,IAAI0E,EAAc,eAAgB,cAAe8+D,EAAQxjE,M,EAE5DihF,G,EAAWzd,EAAQhkC,Q,WAAxBz/E,M,EACF,C,QACA,GAAqB,MAAjBuhF,GAAK2/C,GAALlhI,MACF,MAAM,IAAIkmD,GAAc,oDAG1B,GAAkB,MAAd0kE,GAA8B,MAAR5pH,EACxB,MAAM,IAAI0mD,GAAqB,2DAEjC,MAAMk9B,QAAiB9B,GAAS8oC,WAAW,CAAEjB,aAAY36C,SAAQ46C,eACjE,OAAOhmC,EAASglC,UAAUx8G,OAAOw3E,EAAS5nB,MAAOukB,GAAK2/C,GAALlhI,MAAegB,EACjE,EAjBM,GAmBHqgI,QAAiBv7C,GAAa,CAClC55C,IAAKshC,GAAIkI,SACTtvC,GAAI,CAAE8F,IAAKshC,GAAIkO,SAAUvD,UAAWtkD,GAAOuS,GAAK81C,WAAY,IAC5DwD,KAAM1/E,KAAKqmD,QACXs5B,SAAUyhD,EACV/nD,MACAO,WACA5C,WACAhH,WAEF,OAAO+H,GAAQ,CAAE7rC,IAAKshC,GAAIkO,SAAUvD,UAAWtkD,GAAOwtG,GAAWnlD,WAAY,IAC/E,E,sBC9FK,MAAMolD,GAAM,IAUJ,MAAMC,WAAsBl1B,GAMzCjuG,WAAAA,CACWojI,EACAt7G,EACSmgC,GAElBvqC,QAAQ,KAJC0lH,UAAAA,EAAoB,KACpBt7G,MAAAA,EAAa,KACJmgC,QAAAA,EAGlBm7E,EAAUC,sBAAsBzhI,KAAM,CAAC,kBAAmB,eAAgB,MAC5E,CAMA,UAAegE,GACb,OAAOhE,KAAKqiH,YACd,CAGA,gBAAeA,GACb,MAAM,IAAIz8D,GAAoB,8BAChC,CAGA,mBAAe68D,GACb,MAAM,IAAI78D,GAAoB,qCAChC,CAGA,oBAAe+8D,GACb,MAAM,IAAI/8D,GAAoB,qCAChC,CAEA,qBAAe08D,CACbl8E,GACA,QAAE47E,EAAO,UAAE/xC,GAAyD,CAAC,GAErE,GAAe,MAAX+xC,EAAiB,MAAM,IAAIp8D,GAAoB,mCACnD,GAAiB,MAAbqqB,EAAmB,MAAM,IAAItrB,EAAc,YAAa,WAAYsrB,GAExE,MAAM+V,EAAQnyD,GAAOuS,GACrB,IAAItzB,EAAS,EACb,MACM4uH,EAAkB/yH,GAAOc,KAAKwgE,GAC9B0xD,EAAS,GACf,KAAO7uH,IAAWkzE,EAAMzsF,QAAQ,CAC9B,MAAMqoI,EAA0B,IAAX9uH,EAAe,IAAqB4uH,EAAgBnoI,OAAS,IAC5EsoI,EAAY/uH,EAAS8uH,EAAe57C,EAAMzsF,OAASysF,EAAMzsF,OAASuZ,EAAS8uH,EAC3EtxH,EAAS3B,GAAOE,MACT,IAAXiE,EAPiB,EAOa4uH,EAAgBnoI,OAASsoI,EAAYA,GAErE,GAAe,IAAX/uH,EAAc,CAChB,IAAIgvH,EAAexxH,EAAO+J,cAAcra,KAAKkmB,MAAO,GACpD47G,EAAexxH,EAAO+J,cAAc2rE,EAAMzsF,OAAQuoI,GAClDA,EAAexxH,EAAOuJ,WAAW6nH,EAAgBnoI,OAAQuoI,GACzDA,GAAgBJ,EAAgBp+H,KAAKgN,EAAQwxH,EAAc,EAAGJ,EAAgBnoI,QAC9EysF,EAAM1iF,KAAKgN,EAAQwxH,EAAc,EAAG,IAAMA,EAC5C,MACE97C,EAAM1iF,KAAKgN,EAAQ,EAAGwC,EAAQA,EAAS+uH,GAEzCF,EAAO/nI,KAAK0W,GACZwC,GAAU+uH,CACZ,CACA,MAOM3lD,EAAa,QAPIylD,EAAO/iH,QAC5By1C,MAAO0tE,EAAU9wH,EAAMpY,WACfkpI,EACC/hI,KAAKwhI,UAAUQ,KAAKV,GA/EH,EA+EgC,IAANzoI,EAAU,EAAO,IAAM,EAAMoY,KAEjFiS,QAAQC,QAAQxU,GAAOE,MAAM,MAEFyI,SAAS,EAAG,KAEzC,OAAOygE,GAAQ,CAAE7rC,IAAKshC,GAAIkO,SAAUvD,UAAW6N,EAAO9J,cACxD,CAEA,iBAAesmC,CAAYyf,GACzB,IAAInvH,EAAS,EACb,MAAMoJ,EAAUvN,GAAOc,KAAKwyH,GACtBN,EAAS,GACf,KAAO7uH,IAAWoJ,EAAQ3iB,QAAQ,CAChC,MAAMqoI,EAA0B,IAAX9uH,EAAe,IAAc,IAC5C+uH,EACJ/uH,EAAS8uH,EAAe1lH,EAAQ3iB,OAAS2iB,EAAQ3iB,OAASuZ,EAAS8uH,EAC/DtxH,EAAS3B,GAAOE,MAAiB,IAAXiE,EAAe,EAAQ+uH,EAAYA,GAChD,IAAX/uH,GACFxC,EAAO+J,cAAcra,KAAKkmB,MAAO,GACjC5V,EAAO+J,cAAc6B,EAAQ3iB,OAAQ,GACrC2iB,EAAQ5Y,KAAKgN,EAAQ,EAAOwC,EAAQA,EAAS+uH,IAE7C3lH,EAAQ5Y,KAAKgN,EAAQ,EAAGwC,EAAQA,EAAS+uH,GAE3CF,EAAO/nI,KAAK0W,GACZwC,GAAU+uH,CACZ,CAQA,aAPuBF,EAAO/iH,QAC5By1C,MAAO0tE,EAAU9wH,EAAMpY,WACfkpI,EACC/hI,KAAKwhI,UAAUQ,KAAKV,GA5GE,EA4GgC,IAANzoI,EAAU,EAAO,IAAM,EAAMoY,KAEtFiS,QAAQC,QAAQxU,GAAOE,MAAM,MAEfyI,SAAS,EAAG,GAC9B,E,0XCvHgD,IAAA4qH,GAAA,IAAAh4G,QAAAi4G,GAAA,IAAA/3G,QAUnC,MAAMg4G,WAA6BlD,GAIhD9gI,WAAAA,CAAqBojI,G,MACnB1lH,Q,GAAQ,K,EAAAqmH,I,MAAA,M,mCAIS,E,CAAnB1gD,CAAA,KAAAygD,IAEAlT,GAAA,4CACsC,GAAK,KARtBwS,UAAAA,EAEnBA,EAAUC,sBAAsBzhI,KAAM,CAAC,aAAc,uBAAwB,MAC/E,CAWA,iBAAMqiI,GACJ,MAAM,QAAEzvG,SAAkBuvD,GAAAggD,GAAAniI,KAAKsiI,IAAoBx/H,KAAzB9C,MACpBuiI,EAAS,CAAC3vG,EAAS,QAAS,SAC5B4vG,EAAS,CAAC5vG,EAAS,QAAS,SAClC,KACGooE,MAAmBunC,IAClBviI,KAAKyiI,qCAAwCznC,MAAmBwnC,IAElE,MAAM,IAAI38E,GAAwB,6BAA8B08E,GAClE7gD,GAAKwgD,GAALliI,KAA2BkjB,QAAQC,UACrC,CAkBA,yBAAMu/G,GACJ,OAAOvgD,GAAAggD,GAAAniI,KAAKsiI,IAAoBx/H,KAAzB9C,KACT,CAOA,gBAAM2iI,CAAWxC,EAAsB51F,GAAS,SACxC43C,GAAAggD,GAAAniI,KAAK4iI,IAAY9/H,KAAjB9C,MACN,MAAMsQ,EAAS3B,GAAOE,MAAM,GAC5ByB,EAAO+J,cAAc8lH,EAAc,GACnC,MAAMhsE,QAAiBn0D,KAAKwhI,UAAUQ,KACpCV,GDnEqB,ECqErB/2F,EAAS,EAAO,EAChB,EACAj6B,GAEIuyH,EAAgB1uE,EAAS,GAC/B,OAAOA,EAAS78C,SAAS,EAAG,EAAIurH,GAAexkI,SAAS,QAC1D,CAMA,gBAAMutH,CAAWuU,GACf,OAAO,IAAIoB,GAAcvhI,KAAKwhI,UAAWrB,QAAoBngI,KAAK2iI,WAAWxC,GAC/E,EACD,eAAAyC,KA/CqC,IAAAE,EAElC,OADwB,QAAxBA,EAAAvhD,GAAK2gD,GAALliI,aAAwB,IAAA8iI,GAAxBphD,GAAKwgD,GAALliI,KAA6BA,KAAKqiI,eAC3B9gD,GAAK2gD,GAALliI,KACT,CAAC,eAAAsiI,KAGC,IAAInuE,QAAiBn0D,KAAKwhI,UAAUQ,KAAKV,GDzCR,ECyCoC,EAAM,GAE3E,OADwB,IAApBntE,EAAS56D,SAAc46D,EAAWA,EAAS78C,SAAS,IACjD,CACLsb,QAAS,CAACuhC,EAAS,GAAIA,EAAS,GAAIA,EAAS,IAAIp6D,KAAK,KAE1D,C,sBCnDK,MAAMgpI,GAAS,6BAEf1uE,eAAe2uE,GACpBC,EACAzuF,EACAmyB,EACAt6D,GAEA,MAAM8nD,QAAiB8uE,EAASx2E,QAAoC,CAClEjY,OAAQ,oBACRmyB,OAAQ,CAAEo8D,UAAQt2E,QAAS,CAAEjY,SAAQmyB,aAEvC,GAAgB,MAAZxS,EAAkB,MAAM,IAAIjO,GAAc,2BAC9C,KAAM75C,KAAO8nD,GACX,MAAM,IAAIjO,GAAc,OAAO75C,wBAA0BqS,KAAKC,UAAUw1C,MAE1E,OAAOA,EAAS9nD,EAClB,CAOe,MAAM62H,WAAwB72B,GAa3CjuG,WAAAA,CAAY6kI,EAAwB/8G,EAAemgC,GACjDvqC,QACA9b,KAAKijI,SAAWA,EAChBjjI,KAAKkmB,MAAQA,EACblmB,KAAKqmD,QAAUA,CACjB,CAMA,UAAeriD,GACb,OAAOhE,KAAKqiH,YACd,CAGA,gBAAeA,GACb,MAAM,IAAIz8D,GAAoB,6BAChC,CAGA,mBAAe68D,GACb,MAAM,IAAI78D,GAAoB,oCAChC,CAGA,oBAAe+8D,GACb,MAAM,IAAI/8D,GAAoB,oCAChC,CAGA,qBAAe08D,CACbl8E,GACA,QAAE47E,EAAO,UAAE/xC,GAAyD,CAAC,GAErE,GAAe,MAAX+xC,EAAiB,MAAM,IAAIp8D,GAAoB,qCACnD,GAAiB,MAAbqqB,EAAmB,MAAM,IAAItrB,EAAc,YAAa,WAAYsrB,GAExE,OAAO+yD,GACLhjI,KAAKijI,SACL,kBACA,CAAEE,eAAgB,CAAC,GAAGnjI,KAAKkmB,SAAU,KAAM,MAAOkgB,KAAI6pC,aACtD,WAEJ,CAGA,iBAAeuyC,CAAYtmG,GACzB,MAAMkwD,QAAkB42D,GACtBhjI,KAAKijI,SACL,cACA,CACEE,eAAgB,CAAC,GAAGnjI,KAAKkmB,SAAU,KAAM,MACzChK,QAASvN,GAAOc,KAAKyM,GAAS7d,SAAS,WAEzC,aAEF,OAAOsQ,GAAOc,KAAK28D,EAAW,SAChC,E,0YCzFF,MAAMg3D,GAAiB,QACjBC,GAAiB,QACoB,IAAAC,GAAA,IAAAp5G,QAAAq5G,GAAA,IAAAn5G,QAAAo5G,GAAA,IAAAt5G,QAe5B,MAAMu5G,WAA+BvE,GAOlD,YAAI+D,GACF,GAAsB,MAAlB1hD,GAAK+hD,GAALtjI,MAAwB,MAAM,IAAI0lD,EAAyB,gCAC/D,OAAO67B,GAAK+hD,GAALtjI,KACT,CAoDA5B,WAAAA,CAAY6kI,G,MAGV,GAFAnnH,Q,GAAQ,K,EAAAynH,I,MAAA,MA7DV9hD,GAAA,KAAA6hD,QAAS,GAqCT7hD,GAAA,KAAA+hD,QAAgB,GAyBd9hD,GAAK4hD,GAALtjI,KAAiBijI,GACK,MAAlB1hD,GAAK+hD,GAALtjI,OAAoC,MAAVqgB,OAC5B,MAAM,IAAIqlC,EACR,kGAGN,CAMA,iBAAMg+E,GACJ,MAAMT,QAAiB9gD,GAAAohD,GAAAvjI,KAAK2jI,IAAY7gI,KAAjB9C,MAKvB,aAJuBijI,EAASx2E,QAAQ,CACtCjY,OAAQ,sBACRmyB,OAAQ,CAAE,CAACo8D,IAAS,CAAEnwG,QAASwwG,QAElBL,GACjB,CAYA,iBAAMa,CAAYhxG,EAAU,KAAKwwG,OAAmBC,MAClD,MAAMJ,QAAiB9gD,GAAAohD,GAAAvjI,KAAK2jI,IAAY7gI,KAAjB9C,MAKvB,aAJuBijI,EAASx2E,QAAQ,CACtCjY,OAAQ,sBACRmyB,OAAQ,CAAE,CAACo8D,IAAS,CAAEnwG,eAETmwG,GACjB,CAOA,iBAAMV,GACJ,MACMrhI,EAAO,OADahB,KAAK6jI,iBACJT,GAAgBC,IAC3C,IAAKroC,MAAmBh6F,GACtB,MAAM,IAAI6kD,GAAwB,gCAAiC7kD,EACvE,CAKA,oBAAM6iI,GACJ,MAAMZ,QAAiB9gD,GAAAohD,GAAAvjI,KAAK2jI,IAAY7gI,KAAjB9C,MACjB8jI,QAAeb,EAASx2E,QAAQ,CAAEjY,OAAQ,oBAI1C5hB,EAAUkxG,EAAMf,KAASnwG,QAC/B,GAAe,MAAXA,EACF,MAAM,IAAI8yB,EACR,6EAEJ,OAAO9yB,CACT,CAMA,gBAAMg5F,CAAWuU,SACTngI,KAAK4jI,cACX,MAAMX,QAAiB9gD,GAAAohD,GAAAvjI,KAAK2jI,IAAY7gI,KAAjB9C,MACjBqmD,QAAgB28E,GACpBC,EACA,eACA,CAAEE,eAAgB,CAAC,GAAGhD,KAAiB,KAAM,OAC7C,aAEF,OAAO,IAAI+C,GAAgBD,EAAU9C,EAAc95E,EACrD,EACD,eAAA09E,KAvIG,KAAM,aAAc1jH,SAA8B,MAAnBA,OAAO2jH,SAAkB,OACxD,MAAMf,EAAW5iH,OAAO2jH,SAClBpxG,QAAgBqwG,EAASx2E,QAAgB,CAAEjY,OAAQ,uBACzD,GAAe,MAAX5hB,EAAiB,MAAM,IAAIszB,GAAc,uCAC7C,OAAKtzB,EAAQg9B,WAhCa,cAiCnBqzE,OADP,CAEF,CAAC,eAAAgB,KAIC,OADAxyG,YAAW,IAAMpR,OAAO6jH,cAAc,IAAI3jC,MAAM,8BACzC,IAAIr9E,SAAmCC,IAC5C,MAAMM,EACJ1C,IAE+B,gBAA3BA,EAAMojH,OAAO70E,KAAK80E,OACtB/jH,OAAOmF,oBAAoB,2BAA4B/B,GACvDN,EAAQpC,EAAMojH,OAAOlB,UAAS,EAEhC5iH,OAAOiF,iBAAiB,2BAA4B7B,GACpDgO,YAAW,KACTpR,OAAOmF,oBAAoB,2BAA4B/B,GACvDN,OAAQtS,EAAU,GACjB,IAAI,GAEX,CAAC,eAAA8yH,KAI2C,IAAAb,EAe1C,OAdqB,QAArBA,EAAAvhD,GAAKiiD,GAALxjI,aAAqB,IAAA8iI,GAArBphD,GAAK8hD,GAALxjI,KAA0B,OAACqkI,EAAAC,KAGzB,GAFc,QAAdD,EAAA9iD,GAAK+hD,GAALtjI,aAAc,IAAAqkI,GAAd3iD,GAAK4hD,GAALtjI,KACsC,QADlCskI,QACKniD,GAAAohD,GAAAvjI,KAAK+jI,IAAsBjhI,KAA3B9C,aAA6B,IAAAskI,EAAAA,QAAYniD,GAAAohD,GAAAvjI,KAAKikI,IAAuBnhI,KAA5B9C,OAC5B,MAAlBuhF,GAAK+hD,GAALtjI,MACF,MAAM,IAAI0lD,EACR,qIAGJ,MAAM9yB,QAAgB2uD,GAAK+hD,GAALtjI,MAAeysD,QAAgB,CAAEjY,OAAQ,uBAC/D,GAAe,MAAX5hB,EAAiB,MAAM,IAAIszB,GAAc,uCAC7C,MAAMllD,EAAO,CAAC4xB,EAAQ52B,MAAMuoI,IAA+B,UAC3D,IAAKvpC,MAAmBh6F,GAAO,MAAM,IAAI6kD,GAAwB,cAAe7kD,GAChF,OAAOugF,GAAK+hD,GAALtjI,KACR,EAbyB,IAcnBuhF,GAAKiiD,GAALxjI,KACT,CC/Ca,MAAewkI,ICpCvB,MAAM1hD,GAAuC,CAClD/xE,KAAM,CACJjU,KAAM,YACNiuF,UAAW,WACX1D,gBAAiB,CACfntF,KAAM,CACJqtF,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV+xB,QAAS,CACP04D,eAAgB,UAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,mBAOR05C,GAA0C,CACrD1zH,KAAM,CACJjU,KAAM,YACNiuF,UAAW,cACX1D,gBAAiB,CACfyjC,WAAY,CACVvjC,eAAgB,cAChBx2E,KAAM,CACJjU,KAAM,aACN4S,MAAO,CAAEqB,KAAM,CAAEjU,KAAM,UAG3B4nI,QAAS,CACPn9C,eAAgB,WAChBx2E,KAAM,CACJjU,KAAM,cAOHunD,GAA4C,CACvDtzC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,gBACX1D,gBAAiB,CACft2E,KAAM,CACJw2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV2Y,IAAK,CACH8xE,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,aAGf7uE,QAAS,CACPqrE,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV6jB,QAAS,CACP4mE,eAAgB,UAChBx2E,KAAM,CACJjU,KAAM,cAOH6nI,GAAuC,CAClD5zH,KAAM,CACJjU,KAAM,YACNiuF,UAAW,WACX1D,gBAAiB,CACfu9C,KAAM,CACJr9C,eAAgB,OAChBx2E,KAAM,CACJjU,KAAM,WAGV+nI,KAAM,CACJt9C,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVgoI,IAAK,CACHv9C,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHioI,GAA4C,CACvDh0H,KAAM,CACJjU,KAAM,YACNiuF,UAAW,gBACX1D,gBAAiB,CACf0X,SAAU,CACRxX,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVglH,IAAK,CACHv6B,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,aACN4S,MAAO,CAAEqB,KAAM,CAAEjU,KAAM,YAK/BkoI,SAAU,CACRz9C,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,uBASZk6C,GAAoD,CAC/Dl0H,KAAM,CACJjU,KAAM,YACNiuF,UAAW,wBACX1D,gBAAiB,CACfl3D,OAAQ,CACNo3D,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV+xB,QAAS,CACP04D,eAAgB,UAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,gBAGfm6C,SAAU,CACR39C,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVqoI,WAAY,CACV59C,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVsoI,UAAW,CACT79C,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHuoI,GAAsD,CACjEt0H,KAAM,CACJjU,KAAM,YACNiuF,UAAW,0BACX1D,gBAAiB,CACf0X,SAAU,CACRxX,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVooI,SAAU,CACR39C,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVqoI,WAAY,CACV59C,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVsoI,UAAW,CACT79C,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHwoI,GAAgD,CAC3Dv0H,KAAM,CACJjU,KAAM,YACNiuF,UAAW,oBACX1D,gBAAiB,CACf69C,SAAU,CACR39C,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVqqB,OAAQ,CACNogE,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,aACN4S,MAAO,CAAEqB,KAAM,CAAEjU,KAAM,aAOpByoI,GAAgD,CAC3Dx0H,KAAM,CACJjU,KAAM,YACNiuF,UAAW,oBACX1D,gBAAiB,CACfl3D,OAAQ,CACNo3D,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV+xB,QAAS,CACP04D,eAAgB,UAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,gBAGfm6C,SAAU,CACR39C,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVkG,UAAW,CACTukF,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,gBASPqvH,GAAuC,CAClDp7G,KAAM,CACJjU,KAAM,YACNiuF,UAAW,WACX1D,gBAAiB,CACf2Y,SAAU,CACRzY,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOH0oI,GAAqD,CAChEz0H,KAAM,CACJjU,KAAM,YACNiuF,UAAW,yBACX1D,gBAAiB,CACf2Y,SAAU,CACRzY,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGViiG,SAAU,CACRxX,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOH2oI,GAA8C,CACzD10H,KAAM,CACJjU,KAAM,YACNiuF,UAAW,kBACX1D,gBAAiB,CACf69C,SAAU,CACR39C,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVkG,UAAW,CACTukF,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,aACN4S,MAAO,CAAEqB,KAAM,CAAEjU,KAAM,eASxBogG,GAAyC,CACpDnsF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,aACX1D,gBAAiB,CACfriB,OAAQ,CACNuiB,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOH4oI,GAAmD,CAC9D30H,KAAM,CACJjU,KAAM,YACNiuF,UAAW,uBACX1D,gBAAiB,CACfl3D,OAAQ,CACNo3D,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV+xB,QAAS,CACP04D,eAAgB,UAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,gBAGfiV,SAAU,CACRzY,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVooI,SAAU,CACR39C,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOH6oI,GAA4C,CACvD50H,KAAM,CACJjU,KAAM,YACNiuF,UAAW,gBACX1D,gBAAiB,CACf0X,SAAU,CACRxX,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOH8oI,GAA4C,CACvD70H,KAAM,CACJjU,KAAM,YACNiuF,UAAW,gBACX1D,gBAAiB,CACfw+C,cAAe,CACbt+C,eAAgB,iBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHgpI,GAAoD,CAC/D/0H,KAAM,CACJjU,KAAM,YACNiuF,UAAW,wBACX1D,gBAAiB,CACf0X,SAAU,CACRxX,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVqzB,OAAQ,CACNo3D,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV+xB,QAAS,CACP04D,eAAgB,UAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,mBAORg7C,GAA8C,CACzDh1H,KAAM,CACJjU,KAAM,YACNiuF,UAAW,kBACX1D,gBAAiB,CACfz0D,QAAS,CACP20D,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHkpI,GAAyC,CACpDj1H,KAAM,CACJjU,KAAM,YACNiuF,UAAW,aACX1D,gBAAiB,CACf4+C,WAAY,CACV1+C,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHopI,GAA+C,CAC1Dn1H,KAAM,CACJjU,KAAM,YACNiuF,UAAW,mBACX1D,gBAAiB,CACf8+C,WAAY,CACV5+C,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVmU,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHspI,GAA6C,CACxDr1H,KAAM,CACJjU,KAAM,YACNiuF,UAAW,iBACX1D,gBAAiB,CACfp2E,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,aACN4S,MAAO,CAAEqB,KAAM,CAAEjU,KAAM,aCzhBpB06D,GAAkC,CAC7Cu4B,cAAe,CAAC,UAAW,eAC3B5H,OAAQ,CACNhN,aAAc,mBACdwO,YAAY,EACZpC,eAAgB,eAChBx2E,KAAM,CACJjU,KAAM,YAKC43D,GAA2B,CACtCq7B,cAAe,OACf5H,OAAQk+C,IAGGn/B,GAA6B,CACxCnX,cAAe,SACf5H,OAAQ,CACNhN,aAAc,mBACdwO,YAAY,EACZpC,eAAgB,SAChBx2E,KAAM,CACJjU,KAAM,YAKCqqG,GAA+B,CAC1CpX,cAAe,QACf5H,OAAQ,CACNZ,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV26F,cAAc,GAGH4P,GAA4B,CACvCtX,cAAe,OACf5H,OAAQm+C,IAGGC,GAA4B,CACvCx2C,cAAe,OACf5H,OAAQq+C,IAGGC,GAA4B,CACvC12C,cAAe,OACf5H,OAAQu+C,IAGGC,GAA4B,CACvC52C,cAAe,OACf5H,OAAQy+C,IAGGC,GAA4B,CACvC92C,cAAe,OACf5H,OAAQ2+C,IAGGC,GAA4B,CACvCh3C,cAAe,OACf5H,OAAQ6+C,IAGGC,GAA4B,CACvCl3C,cAAe,OACf5H,OAAQ++C,IC7CH,MAAMC,WAAiB3/B,GAQ5BppG,WAAAA,CAAY+oG,EAAet4E,GAAkC,IAAA4gD,EAAAg4B,EAC3D,QAAc52F,IAAVs2F,EACF,MAAM,IAAIhtG,MAAM,0BAIb00B,IACHA,EAAU,CAAC,GAEb,MAIM64E,EAAiB,iCACjBroC,EACJxwC,EAAQ0wC,kBAAoB1wC,EAAQ0wC,iBAAiBF,gBACjD,GAAGxwC,EAAQ0wC,iBAAiBF,mBAAmBqoC,IAC/C,GAAGA,IAUT5rF,MAR4B,CAT1B49E,mBAAoB,qCAWjB7qE,EACH0wC,iBAAkB,CAChBF,mBAEFu6B,SAA6C,QAArCnqB,EAAkB,QAAlBg4B,EAAE54E,EAAQ+qE,gBAAQ,IAAA6N,EAAAA,EAAI54E,EAAQsoE,eAAO,IAAA1nB,EAAAA,EAAI,YAInDzvE,KAAKmnG,MAAQA,CACf,CAOAigC,WAAAA,CACE1yE,EACA7lC,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAExlC,OAAM7lC,WACRw4G,GAEJ,CAOAC,eAAAA,CACE5yE,EACA7lC,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAExlC,OAAM7lC,WACR04G,GAEJ,CAOAC,gBAAAA,CACE9yE,EACA7lC,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAExlC,OAAM7lC,WACR44G,GAEJ,CAOAC,wBAAAA,CACEhzE,EACA7lC,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAExlC,OAAM7lC,WACR84G,GAEJ,CAOAC,cAAAA,CACElzE,EACA7lC,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAExlC,OAAM7lC,WACRg5G,GAEJ,CAOAC,sBAAAA,CACEpzE,EACA7lC,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAExlC,OAAM7lC,WACRk5G,GAEJ,CAOAC,oBAAAA,CACEtzE,EACA7lC,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAExlC,OAAM7lC,WACRo5G,GAEJ,CAOAC,oBAAAA,CACExzE,EACA7lC,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAExlC,OAAM7lC,WACRs5G,GAEJ,CAOAC,gBAAAA,CACE1zE,EACA7lC,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAExlC,OAAM7lC,WACRw5G,GAEJ,CAOAC,kBAAAA,CACE5zE,EACA7lC,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAExlC,OAAM7lC,WACR05G,GAEJ,CAMA31G,OAAAA,CAAQ/D,GACN,OAAO7uB,KAAKk6F,qBAAqB,CAAErrE,WAAW25G,GAChD,CAMAvC,UAAAA,CAAWp3G,GACT,OAAO7uB,KAAKk6F,qBAAqB,CAAErrE,WAAW45G,GAChD,CAMA9Y,GAAAA,CAAI9gG,GACF,OAAO7uB,KAAKk6F,qBAAqB,CAAErrE,WAAW65G,GAChD,EAGF,MAAM99C,GAAa4c,GAA4BmE,GAAqB,GAE9D07B,GAAqD,CACzD36F,KAAM,OACN6pD,WAAY,OACZpB,UAAW,CACT,IAAK,CACHnO,WAAY,CACVj2E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CAAEjU,KAAM,aAAc4S,MAAO,CAAEqB,KAAM,CAAEjU,KAAM,aAK3D,IAAK,CACHkqF,WAAY,CACVj2E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CAAEhkC,KAAM,CAAEjU,KAAM,YAAaiuF,UAAW,oBAGrDv5B,SAAS,IAGb6Q,YAAaupC,GACbvU,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,GAAwBA,IAC3C9X,UAAW,OACXlJ,WAAUA,IAEN28C,GAAyD,CAC7D76F,KAAM,WACN6pD,WAAY,OACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY,CACVj2E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CAAEhkC,KAAM,CAAEjU,KAAM,YAAaiuF,UAAW,oBAGrDv5B,SAAS,IAGb6Q,YAAaupC,GACbvU,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,GAAwBA,IAC3C9X,UAAW,OACXlJ,WAAUA,IAEN68C,GAA0D,CAC9D/6F,KAAM,sBACN6pD,WAAY,OACZpB,UAAW,CACT,IAAK,CACHnO,WAAY,CAAEj2E,KAAM,CAAEjU,KAAM,SAE9B,IAAK,CACHkqF,WAAY,CACVj2E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CAAEhkC,KAAM,CAAEjU,KAAM,YAAaiuF,UAAW,oBAGrDv5B,SAAS,IAGb6Q,YAAaupC,GACbvU,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,GAAwBA,IAC3C9X,UAAW,OACXlJ,WAAUA,IAEN+8C,GAAkE,CACtEj7F,KAAM,+BACN6pD,WAAY,OACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY,CACVj2E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CAAEhkC,KAAM,CAAEjU,KAAM,YAAaiuF,UAAW,oBAGrDv5B,SAAS,IAGb6Q,YAAaupC,GACbvU,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,GAAwBA,IAC3C9X,UAAW,OACXlJ,WAAUA,IAENi9C,GAAwD,CAC5Dn7F,KAAM,mBACN6pD,WAAY,OACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY,CACVj2E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CAAEhkC,KAAM,CAAEjU,KAAM,YAAaiuF,UAAW,oBAGrDv5B,SAAS,IAGb6Q,YAAaupC,GACbvU,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,GAAwBA,IAC3C9X,UAAW,OACXlJ,WAAUA,IAENm9C,GAAgE,CACpEr7F,KAAM,4BACN6pD,WAAY,OACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6Q,YAAaupC,GACbvU,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,GAAwBA,IAC3C9X,UAAW,OACXlJ,WAAUA,IAENq9C,GAA8D,CAClEv7F,KAAM,0BACN6pD,WAAY,OACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY,CACVj2E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CAAEhkC,KAAM,CAAEjU,KAAM,YAAaiuF,UAAW,oBAGrDv5B,SAAS,IAGb6Q,YAAaupC,GACbvU,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,GAAwBA,IAC3C9X,UAAW,OACXlJ,WAAUA,IAENu9C,GAA8D,CAClEz7F,KAAM,kBACN6pD,WAAY,OACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6Q,YAAaupC,GACbvU,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,GAAwBA,IAC3C9X,UAAW,OACXlJ,WAAUA,IAENy9C,GAA0D,CAC9D37F,KAAM,sBACN6pD,WAAY,OACZpB,UAAW,CACT,IAAK,CAAC,EACN,IAAK,CACHnO,WAAY,CACVj2E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CAAEhkC,KAAM,CAAEjU,KAAM,YAAaiuF,UAAW,oBAGrDv5B,SAAS,IAGb6Q,YAAaupC,GACbvU,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,GAAwBA,IAC3C9X,UAAW,OACXlJ,WAAUA,IAEN29C,GAA4D,CAChE77F,KAAM,oBACN6pD,WAAY,OACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6Q,YAAaupC,GACbvU,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,GAAwBA,IAC3C9X,UAAW,OACXlJ,WAAUA,IAEN49C,GAAiD,CACrD97F,KAAM,WACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAEN69C,GAAoD,CACxD/7F,KAAM,eACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAEN89C,GAA6C,CACjDh8F,KAAM,OACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY,CACVj2E,KAAM,CAAEjU,KAAM,aAAc4S,MAAO,CAAEqB,KAAM,CAAEjU,KAAM,WAGvD,IAAK,CACHkqF,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,ICjfG,MAAM+9C,WAAqBnE,GASxCpmI,WAAAA,CAAYwqI,GAAqB,cAAEvsC,GAAgB,GAAuC,CAAC,GAGzF,IAAIzpE,EAFJ9W,QASA9b,KAAK2vH,IAAM,IAAIkZ,GAAYD,EAAa,CACtCnnE,yBAAyB,EACzBw4B,mBAAoB,CAClBkC,GAAsB,YATP9nC,UACF,MAAXzhC,IACJA,SAAiB5yB,KAAK2vH,IAAIsW,WAAWpxC,IAAOoxC,YADhBrzG,IAQoB,QAAS,QAASypE,GAChEH,IAAyBxnC,IACvB,IAAIx4C,EAAU,GAed,MAdI,WAAYw4C,IACdx4C,GAAW,IAAIw4C,EAAKsQ,SACA,MAAlBtQ,EAAKm7B,UAAoB,OAAOn7B,EAAKm7B,YAAc,KAErC,MAAbn7B,EAAKpF,KAAe,KAAK5wC,KAAKC,UAAU+1C,EAAKpF,SAAW,MAEzDr1D,MAAM+W,QAAQ0jD,KAChBx4C,GAAW,KAAKw4C,EACb7oD,KACEpP,GACC,GAAGA,EAAEsU,QAAQtU,EAAEgZ,IAAIovH,QAAQpoI,EAAEgZ,IAAIqvH,QAAQroI,EAAEyf,UAAuB,MAAbzf,EAAEkkB,QAAkB,KAAKlkB,EAAEkkB,WAAa,OAEhG5mB,KAAK,SAEHmiB,CAAO,OAIpBlc,KAAK2vH,IAAI9iE,SAAST,aAAa,CAAEtvD,KAAMu5D,KACvCr2D,KAAK2vH,IAAI9iE,SAAST,aAAa,CAAEtvD,KAAMi/D,IACzC,CAEA,yBAAM8uD,CACJD,EACAE,GAEA,IACE,MAAMge,QAAe9oI,KAAK2vH,IAAI2X,gBAAgB,CAAEptI,KAAM0wH,EAAY/7F,QAAS,CAAEi8F,gBACvEka,EAAW8D,EAAO9D,SAASn5H,KAAI,EAAGkF,UAASoT,KAAcA,IAG/D,MAFY,IAAK2kH,EAAQ9D,WAG3B,CAAE,MAAO/vH,GACP,GAAIA,aAAiB6oD,IAAkC,MAArB7oD,EAAM8oD,WACtC,MAAM,IAAI1Z,EAAcpvC,EAAMiH,SAEhC,MAAMjH,CACR,CACF,CAGA,aAAM+1G,CAAQt+E,GACZ,MAAM,IAAIkZ,GAAoB,mDAChC,CAEA,6BAAMmjF,CACJne,EACAE,GAEA,IACE,aAAa9qH,KAAK2vH,IAAIyX,YAAY,CAAEltI,KAAM0wH,EAAY/7F,QAAS,CAAEi8F,eACnE,CAAE,MAAO71G,GACP,GAAIA,aAAiB6oD,IAAkC,MAArB7oD,EAAM8oD,WACtC,MAAM,IAAI1Z,EAAcpvC,EAAMiH,SAEhC,MAAMjH,CACR,CACF,CAGA,iBAAM+zH,CAAYt8F,GAChB,MAAM,IAAIkZ,GAAoB,mDAChC,CAEA,0BAAMomE,CACJjtB,EACA6rB,EACAE,GAEA,IAEE,aADM9qH,KAAK2vH,IAAIyY,iBAAiB,CAAErpC,WAAU5uE,OAAQy6F,EAAY/7F,QAAS,CAAEi8F,iBACpE,CACT,CAAE,MACA,OAAO,CACT,CACF,CAGA,cAAMmB,CAASltB,EAAqCryD,GAClD,MAAM,IAAIkZ,GAAoB,mDAChC,CAEA,aAAMhzB,GACJ,aAAc5yB,KAAK2vH,IAAI/8F,WAAWA,OACpC,ECpIK,SAASq2G,GAAcrtI,GAC5B,OAAOA,EAAEuE,QAAQ,OAAQkrB,GAAUA,EAAM,GAAG7qB,eAC9C,C,yBCWA,MAAQ0oI,aAAc39F,IAAiB49F,KAoPhC,SAASpnH,GACdq6F,KACGp7G,GAEH,MAAOupH,KAAcxX,GAAQ/xG,EAC7Bo7G,EAAQgtB,cAAcrnH,KAAKwoG,KAAcxX,EAC3C,CAEA,SAASs2B,GAAWjtB,EAAkBktB,GACpC,GAAiB,MAAbA,EACF,MAAM,IAAI7hF,GAEZ20D,EAAQmtB,OAAO,cAAeD,EAAU7lH,QAAQ3mB,MAChDs/G,EAAQotB,KAAOF,EACkB,MAA7BA,GAAW7lH,SAASgmH,OACtBH,EAAU7lH,QAAQgmH,MAAMrtB,GAGrBstB,GAActtB,EACrB,CAeO,SAASutB,GAAavtB,EAAkBwtB,EAA0Br6E,GACvE6sD,EAAQmtB,OAAOK,EAAW,UAAUxtB,EAAQytB,WAAYt6E,QAAAA,EAAS,IAC7Dq6E,IAAcxtB,EAAQytB,UAC1BztB,EAAQytB,QAAUD,EAClB7nH,GAAKq6F,EAAS,gBAAiBwtB,GACjC,CAEO,SAASE,GAAY1tB,EAAkB2tB,GAC5C3tB,EAAQ4tB,OAASD,EACjBhoH,GAAKq6F,EAAS,eAAgB2tB,EAChC,CAEA,SAAS/H,GAAK5lB,EAAkBlgG,GAC9BkgG,EAAQmtB,OAAO,eAAgBrtH,EAAQs4B,OAAQt4B,EAAQyqD,QACvDy1C,EAAQ6tB,WAAWjI,KAAKvM,GAAQ92G,UAAU,CAAEq0G,QAAS,SAAU92G,IACjE,CAEO,SAAS42G,GAAO1W,EAAkB5nE,EAAgBmyB,EAAiB,CAAC,GACzEq7D,GAAK5lB,EAAS,CAAE5nE,SAAQmyB,UAC1B,CAEAtS,eAAeq1E,GAActtB,GAC3B,GAAIA,EAAQ8tB,qBAAsB,OAClC,MAAMt4G,EAAQwqF,EAAQ+tB,aACtB,GAAqB,IAAjBv4G,EAAMr4B,OAAc,OACxB,MAAM2sB,EAAQ0L,EAAMgd,WAAW83E,GAAWA,EAAO0jB,MAAMhuB,EAASA,EAAQotB,QACxE,IAAe,IAAXtjH,EAAc,OAClBk2F,EAAQ+tB,aAAev4G,EAAM4c,QAAO,CAAC/hB,EAAG5zB,IAAMqtB,IAAUrtB,IACxDujH,EAAQ8tB,sBAAuB,EAC/B,MAAMZ,QAA8B13G,EAAM1L,GAAOwgG,OAAOtK,EAASA,EAAQotB,MACzEptB,EAAQ8tB,sBAAuB,EAC/Bb,GAAWjtB,EAASktB,EACtB,CAoBAj1E,eAAeg2E,GAAcjuB,EAAkBlgG,GAC7C,MAAM,QAAEuH,EAASqB,MAAOwlH,GAAOluB,EAAQotB,KACjCF,QAAkBpmH,QAAQC,QAAQM,EAAQ24F,EAASlgG,EAASouH,IAGlE,GAFAjB,GAAWjtB,EAASktB,GAG0B,wBAA5CptH,GAASyqD,QAAQ11D,MAAMs5H,UAAU,IAAIrsC,IAET,gBAA5BorC,GAAW7lH,QAAQ3mB,KACnB,CACA,MAAMwD,EAAQ87G,EAAQ97G,QACtB,GAAa,MAATA,EAAe,MAAM,IAAI6lD,GAAkB,iBAC/C,MAAMunB,EAAQxxD,GAASyqD,QAAQ11D,MAAMs5H,UAAU,IAAI78D,MACnD3rD,GAAKq6F,EAAS,cAAe3uC,GAAgBC,EAAOptE,EAAQ,GAC9D,CACF,CAkBO,SAAS4zH,GAAW9X,GACzBA,EAAQ6tB,WAAW1vF,QACnB7oB,aAAa0qF,EAAQouB,eACvB,CAEA,SAASC,GAAKruB,GACZ1qF,aAAa0qF,EAAQouB,gBACrBpuB,EAAQouB,eAAiB/4G,YAAW,KAClCqhG,GAAO1W,EAAS,kBAAmB,CAAEsK,OAAQ,SAC7CtK,EAAQouB,eAAiB/4G,YAAW,KAClCyiG,GAAW9X,GACXr6F,GAAKq6F,EAAS,QAAS,IAAIh1D,GAA2B,GApIpC,KAqID,GAvIC,IAyIxB,CAgCOiN,eAAevxD,GAAKs5G,EAAkB5nE,EAAgBmyB,GAC3D,OAAO,IAAIzjD,SAAQ,CAACC,EAASC,KAC3B,MAAMxiB,EAAKw7G,EAAQsuB,kBACnBtuB,EAAQsuB,mBAAqB,EAC7BtuB,EAAQuuB,cAAcvoI,IACpBxB,GACCsb,IACC,GAAqB,MAAjBA,EAAQjH,MAAe,KAAA21H,EACzB,MAAMhjF,EAAuC,QAAhCgjF,EAAG1uH,EAAQjH,MAAMhE,KAAK,GAAGiL,eAAO,IAAA0uH,EAAAA,EAAI,GACjDxnH,EAAO,IAAI8jC,GAAiBhrC,EAAQjH,MAAMiH,QAAU0rC,GACtD,MAAOzkC,EAAQjH,EAAQiL,OAAO,IAGlC66G,GAAK5lB,EAAS,CAAE5nE,SAAQ5zC,KAAI+lE,UAAS,GAEzC,CC7ZOtS,eAAew2E,GACpBzkG,EACA0kG,GAEA,MAAM,WAAE5uD,EAAU,UAAE/D,GAAcL,GAAS1xC,EAAIonC,GAAIkO,UAC7CqvD,EAAYhzD,GAAQI,GACpBhxD,QAAe2jH,EAAOC,GAC5B,GAAsB,iBAAX5jH,EAAqB,CAC9B,MAAQ+0D,WAAY8uD,GAAgBlzD,GAAS3wD,EAAQqmD,GAAIkO,UACzD,OAAO3D,GAAQ,CACb7rC,IAAKshC,GAAIkO,SACTQ,WAAYA,EAAW/3E,OAAO6mI,GAC9B7yD,UAAWtkD,GAAOk3G,IAEtB,CACA,OAAO5jH,CACT,CAEOktC,eAAe42E,GACpB7uB,EACA5nE,EACAvjC,EAIA65H,GAEA,IAAII,EACJ,GAAe,MAAXj6H,EAAKm1B,GAAY8kG,QAAiBJ,EAAO75H,EAAKm1B,QAC7C,IAAsB,MAAlBn1B,EAAKk6H,UACT,MAAM,IAAI/mF,EAAa,qCADK8mF,QAAiBL,GAAgB55H,EAAKk6H,UAAWL,EAClB,CAChE,MAAMt5E,EAA8B,iBAAb05E,EACjB7+H,EAAiB,MAAX4E,EAAKm1B,GAAa,KAAO,YAErC,OADA0sF,GAAO1W,EAAS5nE,EAAQgd,EAAU,CAAEv8C,MAAOi2H,QAAAA,EAAY,GAAM,CAAE,CAAC7+H,GAAM6+H,IAC/D15E,CACT,CAEO,SAAS45E,GACdC,EACAnvH,EACA4I,GAUA,OARAA,GAAO1B,SACLjU,OAAO8/C,OACL,IAAI5H,GACF,mCAAmC3oC,KAAKC,UAAUzC,MAEpD,CAAEovH,UAAWpvH,KAGV,CAAEuH,QAAS8nH,GACpB,CAEO,SAASC,GACdpvB,EACAlgG,EACA4I,EACA2mH,GAEA,GAAiB,MAAbA,GAAwC,oBAAnBvvH,EAAQs4B,OAC/B,OAAOi3F,EAAUrvB,EAASlgG,EAAS4I,GAErC,GAAuB,sBAAnB5I,EAAQs4B,OAMV,OALA1vB,EAAM3B,QAAQ,CACZuoH,UAAU,EACVvuC,UAAWjhF,EAAQyqD,OAAO11D,KAAK06H,WAC/BC,aAAc1vH,EAAQyqD,OAAO11D,KAAK46H,YAE7B,CAAEpoH,QAAS8nH,IAEpB,GAAuB,kBAAnBrvH,EAAQs4B,QACwB,mBAA9Bt4B,EAAQyqD,OAAO11D,KAAK8P,MAEtB,OADA+D,EAAM3B,QAAQ,CAAEuoH,UAAU,IACnB,CAAEjoH,QAAS8nH,IAGtB,GAAqB,MAAjBrvH,EAAQjH,MAAe,CACzB,MAAM62H,EAAQ5vH,EAAQjH,MAAMhE,KAAKpF,KAAKzK,GAAMA,EAAElH,OAQ9C,OAPI4xI,EAAMx1H,SAAS,MACjBwO,EAAM1B,OAAO,IAAIgiC,EAAyB,yBACjC0mF,EAAMx1H,SAAS,MACxBwO,EAAM1B,OAAO,IAAI2hC,EAAqB,8BAEtCjgC,EAAM1B,OAAO,IAAI+jC,GAAuBjrC,EAAQjH,MAAMiH,UAEjD,CAAEuH,QAAS8nH,GACpB,CACA,OAAOH,GAAwBhvB,EAASlgG,EAAS4I,EACnD,CAEO,SAASinH,GACd3vB,EACAlgG,GAEA,GAAuB,kBAAnBA,EAAQs4B,OAA4B,CACtC,MAAMw3F,EAA4B9vH,EAAQyqD,OAAO11D,KAAK8P,MAEtD,IAAIkrH,EAAmC,KAGvC,MAF0B,mBAAtBD,IAAwCC,EAAa,YAC/B,oBAAtBD,IAAyCC,EAAa,cACxC,MAAdA,GACFtC,GAAavtB,EAAS6vB,GACf,CAAExoH,QAASyoH,KAGc,0BAA9BhwH,EAAQyqD,OAAO11D,KAAK8P,MACf,CAAE0C,QAAS0oH,IAEc,WAA9BjwH,EAAQyqD,OAAO11D,KAAK8P,OACtBq7F,EAAQgwB,OAASlwH,EAAQyqD,OAAO11D,KAAKo7H,OAC9B,CAAE5oH,QAASsoH,KAEb,CAAEtoH,QAASsoH,GACpB,CACA,GAAuB,mBAAnB7vH,EAAQs4B,OAEV,OADAzyB,GAAKq6F,EAAS,QAAS,IAAIj1D,GAAuBjrC,GAAS6uD,SAAS7uD,UAC7D,CAAEuH,QAAS6oH,GAEtB,CAEOj4E,eAAek4E,GACpBnwB,EACAlgG,EACA4I,GAEA,MAAuB,kBAAnB5I,EAAQs4B,QAA4D,WAA9Bt4B,EAAQyqD,OAAO11D,KAAK8P,OAC5Dq7F,EAAQgwB,OAASlwH,EAAQyqD,OAAO11D,KAAKo7H,OAC9B,CACL5oH,QAAS,SACPgJ,EACA+/G,EACAC,GAEA,MACsB,kBAApBD,EAASh4F,QACsB,0BAA/Bg4F,EAAS7lE,OAAO11D,KAAK8P,MAEd,CAAE0C,QAAS0oH,IACbf,GAAwBhvB,EAASowB,EAAUC,EACpD,IAGGrB,GAAwBhvB,EAASlgG,EAAS4I,EACnD,CAEOuvC,eAAeq4E,GACpBtwB,EACAlgG,EACA4I,GAEA,GAAuB,kBAAnB5I,EAAQs4B,QAA4D,WAA9Bt4B,EAAQyqD,OAAO11D,KAAK8P,MAAoB,CAChFq7F,EAAQgwB,OAASlwH,EAAQyqD,OAAO11D,KAAKo7H,OACrC,MAAM,SAAEnB,SAAmB9uB,EAAQt3F,QAEnC,OADAglH,GAAY1tB,EAAqB,MAAZ8uB,EAAmB,GAAKnzD,GAAQmzD,IAC9C,CAAEznH,QAAS8nH,GACpB,CACA,OAAOH,GAAwBhvB,EAASlgG,EAAS4I,EACnD,CAEOuvC,eAAe63E,GACpB9vB,EACAlgG,GAEA,MAAMgwB,EAAgC,cAA1BkwE,EAAQntF,SAAS09G,KAAuB,iBAAmB,iBACvE,GAAIzwH,EAAQs4B,SAAW,iBAAiBtI,IAItC,aAHM++F,GAAc7uB,EAAS,YAAYlwE,IAAOhwB,EAAQyqD,OAAO11D,MAAMojD,SACnE+nD,EAAQntF,SAASjrB,KAAKkoC,EAAK9F,KAEtB,CAAE3iB,QAASmpH,GAEtB,CAEO,SAASA,GACdxwB,EACAlgG,GAqBA,GAAuB,yBAAnBA,EAAQs4B,OAAmC,CAC7C,MAAM,KAAE8a,GAASpzC,EAAQyqD,OAAO11D,MAC1B,KAAE07H,GAASvwB,EAAQntF,SACzB,GACY,mBAATqgC,GAAsC,cAATq9E,GACpB,oBAATr9E,GAAuC,cAATq9E,EAE/B,MAAO,CAAElpH,QA1Bb,SAASopH,EAAuBpgH,EAAY+/G,GAC1C,GAAwB,kBAApBA,EAASh4F,OACX,OAAQg4F,EAAS7lE,OAAO11D,KAAK8P,OAC3B,IAAK,kBACL,IAAK,qBACH,MAAO,CAAE0C,QAASopH,GACpB,IAAK,iBACH,MAAO,CAAEppH,QAAS0oH,IAGxB,GAAwB,yBAApBK,EAASh4F,OAKX,OAJAzyB,GAAKq6F,EAAS,YAAaowB,EAAS7lE,OAAO11D,KAAKm1B,GAAI,CAClDkpB,KAAMk9E,EAAS7lE,OAAO11D,KAAKq+C,KAC3Bv+C,KAAMy7H,EAAS7lE,OAAO11D,KAAKF,OAEtB,CAAE0S,QAASopH,EAEtB,EAWA,CACA,GACqB,kBAAnB3wH,EAAQs4B,QACsB,mBAA9Bt4B,EAAQyqD,OAAO11D,KAAK8P,OACM,cAA1Bq7F,EAAQntF,SAAS09G,KAIjB,OAFAvwB,EAAQ0wB,WAAa5wH,EAAQyqD,OAAOomE,WACpCpD,GAAavtB,EAAS,UACf,CAAE34F,QAASmpH,GAEtB,CAEA,SAAST,GACP/vB,EACAlgG,EACA4I,GAEA,MAAuB,kBAAnB5I,EAAQs4B,QAA4D,SAA9Bt4B,EAAQyqD,OAAO11D,KAAK8P,OAC5Dq7F,EAAQ0wB,WAAa5wH,EAAQyqD,OAAOomE,WAC7B,CACLtpH,QAAS,SACPgJ,EACA+/G,EACAC,GAEA,MAAwB,oBAApBD,EAASh4F,QACXs1F,GAAY1tB,EAASowB,EAAS7lE,OAAO11D,KAAK6T,OACnC,CAAErB,QAAS8nH,KAEbH,GAAwBhvB,EAASowB,EAAUC,EACpD,IAGGrB,GAAwBhvB,EAASlgG,EAAS4I,EACnD,CAEOuvC,eAAek3E,GACpBnvB,EACAlgG,EACA4I,GAEA,OAAQ5I,EAAQs4B,QACd,IAAK,gBACH,OAAQt4B,EAAQyqD,OAAO11D,KAAK8P,OAC1B,IAAK,SACL,IAAK,mBACL,IAAK,kBACH,MAAO,CAAE0C,QAASupH,IACpB,IAAK,sBACL,IAAK,kBACL,IAAK,qBACL,IAAK,iBACL,IAAK,oBACL,IAAK,wBACL,IAAK,OAMH,OADAjrH,GAAKq6F,EAAS6sB,GAAc/sH,EAAQyqD,OAAO11D,KAAK8P,QACzC,CAAE0C,QAAS8nH,IACpB,IAAK,SAEH,OADAnvB,EAAQgwB,OAASlwH,EAAQyqD,OAAO11D,KAAKo7H,OAC9B,CAAE5oH,QAAS8nH,IACpB,IAAK,UACL,IAAK,eAWL,IAAK,WACH,MAAO,CAAE9nH,QAAS8nH,IAVpB,IAAK,UAEH,OADA5B,GAAavtB,EAAS,WACf,CAAE34F,QAAS8nH,IACpB,IAAK,mBAEH,OADA5B,GAAavtB,EAAS,UACf,CAAE34F,QAAS6oH,IACpB,IAAK,OAEH,OADA3C,GAAavtB,EAAS,QACf,CAAE34F,QAAS6oH,IAItB,MACF,IAAK,uBAKH,OAJAvqH,GAAKq6F,EAAS,YAAalgG,EAAQyqD,OAAO11D,KAAKm1B,GAAI,CACjDkpB,KAAMpzC,EAAQyqD,OAAO11D,KAAKq+C,KAC1Bv+C,KAAMmL,EAAQyqD,OAAO11D,KAAKF,OAErB,CAAE0S,QAAS8nH,IACpB,IAAK,iBAEH,MAAO,CAAE9nH,QAAS8nH,IACpB,IAAK,kBAEH,OADAzB,GAAY1tB,EAASlgG,EAAQyqD,OAAO11D,KAAK6T,OAClC,CAAErB,QAAS8nH,IACpB,IAAK,kCACH,OAAOyB,GAAsB5wB,EAASlgG,EAAS4I,GAErD,CAKAuvC,eAAe24E,GACb5wB,EACAlgG,EACA4I,GACqB,IAAAmoH,EACrB,MAAO,CAAE/gG,GAAwD,QAApD+gG,EAAG/wH,EAAQs4B,OAAOnpB,MAAM,oCAA4B,IAAA4hH,EAAAA,EAAI,GACrE,OAAW,MAAP/gG,EAAoBk/F,GAAwBhvB,EAASlgG,EAAS4I,SAC5CmmH,GAAc7uB,EAAS,YAAYlwE,IAAOhwB,EAAQyqD,OAAO11D,MAAMojD,SACnF+nD,EAAQntF,SAASjrB,KAAKkoC,EAAK9F,EAAI,CAAEmkG,QAASruH,EAAQyqD,OAAO11D,KAAKs5H,YAY/C,CAAE9mH,QATnB,SAASypH,EAAuBzgH,EAAY+/G,GAC1C,OAAsB,MAAlBA,EAASv3H,MACJ,CAAEwO,QAASypH,EAAwBpoH,SAEpB,sBAApB0nH,EAASh4F,OACJ,CAAE/wB,QAAS8nH,IAEbH,GAAwBhvB,EAASowB,EAAU1nH,EACpD,EACoDA,SAAU,CAAErB,QAAS8nH,GAC3E,CAEOl3E,eAAe84E,GACpB/wB,EACAlgG,EACA4I,GAEA,MAAuB,gCAAnB5I,EAAQs4B,OACH42F,GAAwBhvB,EAASlgG,EAAS4I,UAE7CmmH,GAAc7uB,EAAS,yBAA0BlgG,EAAQyqD,OAAO11D,MAAMojD,SAC1EvvC,EAAM9gB,KAAKoiC,KAEN,CACL3iB,OAAAA,CAAQgJ,EAAY+/G,GAClB,MAAwB,yBAApBA,EAASh4F,OACJ42F,GAAwBhvB,EAASowB,EAAU1nH,GAG7C,CAAErB,QAAS6oH,GAAexnH,QACnC,EACAA,SAEJ,CAEO,SAASsoH,GACdhxB,EACAlgG,EACA4I,GAEA,MAAuB,mBAAnB5I,EAAQs4B,QACV1vB,EAAM3B,QAAQ,CAAEy7D,UAAW1iE,EAAQyqD,OAAOomE,WAAY7B,SAAUhvH,EAAQyqD,OAAO11D,KAAK6T,QACpFovG,GAAW9X,GACJ,CAAE34F,QAAS6oH,KAEG,mBAAnBpwH,EAAQs4B,QACV1vB,EAAM1B,OAAO,IAAI+jC,GAAuBjrC,EAAQjL,KAAKiL,UAC9C,CAAEuH,QAAS8nH,KAEbH,GAAwBhvB,EAASlgG,EAAS4I,EACnD,CAEO,SAASwnH,GACdjB,EACAnvH,EACA4I,GAEA,OAAa,MAATA,EAAsB,CAAErB,QAAS6oH,IACH,YAA9BpwH,EAAQyqD,OAAO11D,KAAK8P,MAA4B,CAAE0C,QAAS6oH,GAAexnH,SAC7C,mBAA7B5I,EAAQyqD,OAAO11D,KAAKq+C,MACtBxqC,EAAMuoH,QAAUnxH,EAAQyqD,OAAO11D,KAAKm1B,GAC7B,CAAE3iB,QAAS6oH,GAAexnH,UAED,qBAA9B5I,EAAQyqD,OAAO11D,KAAK8P,OACtB+D,EAAM3B,QAAQ2B,EAAMuoH,SACb,CAAE5pH,QAAS6oH,KAEb,CAAE7oH,QAAS6oH,GAAexnH,QACnC,CAnFAymH,GAAY9B,MAASrtB,IACnButB,GAAavtB,EAAS,OAAO,E,uLCnS/B,IAAIkxB,GAAiB,EAErB,IAAAC,GAAA,IAAArjH,QAqBe,MAAM8/C,GAiCT5rE,WAAAA,G,QAAc4wH,GAAA,qBAhCR,IAAI3tG,OAAc2tG,GAAA,yBAId,GAACA,GAAA,qBAEL,IAAIplG,KAAwColG,GAAA,qBAI1B,IAAEA,GAAA,8BAEZ,GAAKA,GAAA,oBAEG,IAAEA,GAAA,6BAEX,GAAKA,GAAA,eAEH,gBAAcA,GAAA,cAMJ,I,mJAInCvtC,CAAA,KAAS8rD,QAAQ,GAKfD,IAAkB,E,EACFA,I,EAAXC,I,SAALvtI,M,EACF,CAEAupI,MAAAA,IAAUvoI,G,OACoB,IAAxBhB,KAAKivB,SAASsgC,OAClB7hD,QAAQ6hD,MAAM,Y,EAAiBg+E,G,WAALvtI,YAAoBgB,EAChD,CAKA,uBAAa4qH,CAAW/8F,GACtB,OAAOm7C,GAAQwjE,YAAY,IAAIxjE,GAAWn7C,EAC5C,CAEA,wBAAa2+G,CAA+BpxB,EAAYvtF,GAAqC,IAAA4+G,EAC3F,MAAMC,EAAoE,OAAlC,QAAtBD,EAAC5+G,EAAQ8+G,qBAAa,IAAAF,EAAAA,EAAI5+G,EAAQ++G,mBACpD,GAAIF,IAAuC,MAAzB7+G,EAAQ8+G,eAAsD,MAA7B9+G,EAAQ++G,mBACzD,MAAM,IAAI7oF,EACR,0EAGJ,MAAM8oF,EACJjsH,GAAiC,IAAxBiN,EAAQi/G,YAAuB,sBAAwB,wBAOlE,aF6TGz5E,eACL+nD,EACA2xB,EACAC,GACA,IAAEp6E,KAAQq6E,IAEV7xB,EAAQntF,SAAW,CAAE2kC,SAAQq6E,GAE7B,MAAMC,EAAQ,IAAIr6E,IAAID,GACtBzkD,OAAOgqC,QAAQ80F,GACZz/F,QAAO,EAAEniC,MAAU,CAAC,OAAQ,SAASiK,SAASjK,KAC9CkkB,SAAQ,EAAElkB,EAAKqD,KAAWw+H,EAAMp6E,aAAa1xD,IAAkBiK,EDxbzDlM,QAAQ,UAAWkrB,GAAU,IAAIA,EAAM5qB,kBCwbwBiP,EAAMrR,cAC9E6vI,EAAMp6E,aAAa1xD,IAAI,WAAY,YACnCunI,GAAavtB,EAAS,cACtBA,EAAQ6tB,WAAa,IAAI1+F,GAAa2iG,EAAM7vI,kBACtC,IAAI6kB,SAAc,CAACC,EAASC,KAChCjU,OAAO8/C,OAAOmtD,EAAQ6tB,WAAY,CAChCkE,QAAS/qH,EACTgrH,OAAQ/5E,UACNlxC,IACAwmH,GAAavtB,EAAS,YAAar7F,GACnCsoH,GAAWjtB,EAAS,CAAE34F,QAASsqH,IAC/BtD,GAAKruB,EAAQ,EAEfiyB,QAAUttH,IACR4oH,GAAavtB,EAAS,eAAgBr7F,GACtC2Q,aAAa0qF,EAAQouB,eAAe,EAEtC8D,UAAWA,EAAGr9H,UA3EpB,SAAmBmrG,EAAkBnrG,GACnC,MAAMiL,EAAUu5G,GAAQ3mG,MAAM7d,GAE9B,GADAmrG,EAAQmtB,OAAO,mBAAoBrtH,EAAQs4B,OAAQt4B,EAAQyqD,QACzC,MAAdzqD,EAAQtb,GAaW,qBAAnBsb,EAAQs4B,OAIW,yBAAnBt4B,EAAQs4B,QAMZ4nE,EAAQmyB,cAAc30I,KAAKsiB,GA1D7Bm4C,eAA8B+nD,GAC5B,IAAIA,EAAQoyB,sBAAZ,CAEA,IADApyB,EAAQoyB,uBAAwB,EACzBpyB,EAAQmyB,cAAch1I,OAAS,GAAG,CACvC,MAAM2iB,EAAUkgG,EAAQmyB,cAActoH,QACtC,GAAe,MAAX/J,EAAiB,MAAM,IAAIiqC,GAC/B,UACQkkF,GAAcjuB,EAASlgG,EAC/B,CAAE,MAAOjH,GACPsyD,GAAYtyD,GACZ8M,GAAKq6F,EAAS,QAAS,IAAI90D,GAA4BryC,EAAOiH,GAChE,CACF,CACAkgG,EAAQoyB,uBAAwB,CAZS,CAa3C,CA6COC,CAAeryB,IANdlgG,EAAQyqD,OAAOomE,aAAe3wB,EAAQ0wB,YAAoC,MAAtB1wB,EAAQ0wB,YAC9DrC,GAAKruB,GALPr6F,GAAKq6F,EAAS,UAAWlgG,EAAQyqD,OAAO11D,KAAKiL,aAd/C,CACE,MAAMwhD,EAAW0+C,EAAQuuB,cAAcv1H,IAAI8G,EAAQtb,IACnD,GAAgB,MAAZ88D,EAEF,YADA37C,GAAKq6F,EAAS,QAAS,IAAIh4D,EAAa,8BAA8BloC,EAAQtb,OAGhF,IACE88D,EAASxhD,EACX,CAAE,QACAkgG,EAAQuuB,cAAcr8E,OAAOpyC,EAAQtb,GACvC,CAEF,CAaF,CA+CiD8tI,CAAUtyB,EAASnrG,IAC9D,GAEN,CElWU26G,CACJxP,EACAsxB,EAAYG,EAAmBjsH,GAC/BA,EACAiN,GAEKutF,CACT,CAwBA95F,EAAAA,CAAkCioG,EAAc7sD,GAC9C19D,KAAKopI,cAAc9mH,GAAGioG,EAAW7sD,EACnC,CAOAl7C,GAAAA,CAAmC+nG,EAAc7sD,GAC/C19D,KAAKopI,cAAc/mH,eAAekoG,EAAW7sD,EAC/C,CAKAw2D,UAAAA,GACE,OAAOya,GAAkB3uI,KAC3B,CAKAu0D,MAAAA,GACE,OAAOv0D,KAAK6pI,OACd,CAKA,WAAM/kH,GAMJ,MAAM/Q,GA/J0B1R,QAoKvBS,GAAK9C,KAAM,8BAA+B,CAAC,GAnK/CmP,OAAOgqC,QAAQ92C,GAAKuc,QACzB,CAACuI,GAAS9a,EAAKY,MAAS,IACnBka,EACH,CAAC8hH,GAAc58H,IAAOY,KAExB,CAAC,IANL,IAAoC5K,EAqKhC,MAAO,CACL0iF,MAAOpO,GAAY5iE,EAAIgxE,UACE,KAArBhxE,EAAI66H,cAAuB,CAAEA,aAAc92D,GAAS/jE,EAAI66H,aAAcphE,GAAIkO,cACzD,KAAjB3nE,EAAIm3H,UAAmB,CAAEA,SAAUpzD,GAAS/jE,EAAIm3H,SAAU19D,GAAIkO,WAClEmzD,MAAOl4D,GAAY5iE,EAAI86H,OAE3B,CAQAvuI,KAAAA,GACE,GAAoB,KAAhBN,KAAKgqI,OACP,OAAO,KAET,MAAMrjE,EAASmR,GAAS93E,KAAKgqI,OAAQx8D,GAAIkO,UAAUvD,UACnD,OAAQxR,EAAOz6B,KACb,KAAKshC,GAAIyQ,gBACP,OAAO,EACT,KAAKzQ,GAAI+K,kBACT,KAAK/K,GAAI4R,kBACT,KAAK5R,GAAI2R,iBACP,OAAOxY,EAAOrmE,MAChB,QACE,OAAO,KAEb,CAMAM,EAAAA,GACE,GAAuB,MAAnBZ,KAAK8sI,WAAoB,MAAM,IAAI1oF,EAAa,8BACpD,OAAOpkD,KAAK8sI,UACd,CAMAgC,KAAAA,GACE,GAAmB,MAAf9uI,KAAKosI,OAAgB,MAAM,IAAIhoF,EAAa,8BAChD,OAAOpkD,KAAKosI,MACd,CAEA,mBAAgB2C,CACdroB,GAEA,OFoFGryD,eACL+nD,EACAguB,EACA1jB,GAEA,MAAMxa,EAAU,IAAIhpF,SAAQ,CAACC,EAASC,KACpCg5F,EAAQ+tB,aAAavwI,KAAK,CACxBwwI,QACA1jB,MAAAA,GACE,MAAM3yG,EAAM2yG,IACZ,MAAO,IAAK3yG,EAAK+Q,MAAO,IAAK/Q,EAAI+Q,MAAO3B,UAASC,UACnD,GACA,IAGJ,OADKsmH,GAActtB,GACZlQ,CACT,CEpGW6iC,CAAc/uI,MAAM,CAACo8G,EAASt3F,IAAUA,GAAOrB,UAAY7B,IAAsB8kG,EAC1F,CAqBA,WAAMsoB,GACJ,OAAOhvI,KAAK+uI,eAAc,KACxBjc,GAAO9yH,KAAM,kBACN,CAAEyjB,QAAS7B,MAEtB,CAgBA,cAAMqtH,CAASjrI,GACb,OAAOhE,KAAK+uI,eAAc,KACxBjc,GAAO9yH,KAAM,qBACN,CACLyjB,QAAS7B,GACTkD,MAAO,CAAE9gB,WAGf,ECjRa,MAAMkrI,WAAqBllE,GA8BxC,YAAMh0C,CACJvmB,EACA60E,EACA97B,EACAxkD,EACA6xC,EAAqB,IAOrB,OAAO71C,KAAK+uI,eAAc,KACxBjc,GAAO9yH,KAAM,sBAAuB,CAClCyP,OACA60E,KACA97B,SACA73B,KAAMklB,IAGR,MAAMs5F,EAAqB96E,MACzB5nC,EACAvQ,EACA4I,IAEuB,yBAAnB5I,EAAQs4B,aACYy2F,GACpBjrI,KACA,kBACAkc,EAAQyqD,OAAO11D,MACfojD,SAAcrwD,EAAKoiC,EAAI,CAAEmkG,QAASruH,EAAQyqD,OAAO11D,KAAKs5H,YAEpC,CAAE9mH,QAAS0rH,EAAoBrqH,SAC5C,CACLrB,QAASA,CAAC2rH,EAAa5C,IACrBhB,GAAmBxrI,KAAMwsI,EAAU1nH,GAAO,KACxCglH,GAAY9pI,KAAMwsI,EAAS7lE,OAAO11D,KAAK6T,OACvCA,EAAM3B,QAAQ,CAAEuoH,UAAU,EAAMR,SAAUsB,EAAS7lE,OAAO11D,KAAK6T,QACxD,CAAErB,QAAS8nH,OAEtBzmH,SAGmB,mBAAnB5I,EAAQs4B,QACV1vB,EAAM1B,OAAO,IAAI+jC,GAAuBjrC,EAAQjL,KAAKiL,UAC9C,CAAEuH,QAAS8nH,KAEbC,GAAmBxrI,KAAMkc,EAAS4I,GAG3C,MAAO,CAAErB,QAAS0rH,EAAoB,GAE1C,CAsBA,SAAMlwD,EAAI,SACR/L,EAAQ,UACR+R,IAKA,MAAM,IAAEhG,SAAoCn8E,GAAK9C,KAAM,mBAAoB,CACzEkzE,WACA+R,cAEF,OAAOtO,GAAYsI,EACrB,CAuBA,cAAMowD,CACJn8D,GAEA,OAAO/jE,OAAO83D,mBACLnkE,GAAK9C,KAAM,wBAAyB,CAAEkzE,cAAarnE,KACvDw7D,GAA+D,CAC9DA,EAAKo8C,QACLp8C,EAAKsK,WAIb,CAEA,sBAAc29D,CACZ5oB,EACAxqG,EACA4I,GAEA,GAAI5I,EAAQs4B,SAAW,iBAAiBkyE,OACtC,OAAO0kB,GAAwBprI,EAAMkc,EAAS4I,GAGhD,MAAMyqH,EAA2BA,CAAC9iH,EAAY+/G,KAC5C,GAAwB,yBAApBA,EAASh4F,OAEX,OADA1vB,EAAM0qH,cAAchD,EAAS7lE,OAAO11D,KAAKm1B,IAClC,CAAE3iB,QAAS8rH,EAA0BzqH,SAE9C,GACsB,kBAApB0nH,EAASh4F,QACT,CAAC,OAAOkyE,WAAiB,GAAGA,YAAiBpwG,SAASk2H,EAAS7lE,OAAO11D,KAAK8P,OAC3E,CACA,MAAM0uH,EAAoB,YAAX/oB,EAAuB,UAAY,WAC5C76F,EAAiB2gH,EAAS7lE,OAAO11D,KAAK8P,MAAM6uC,WAAW,QAE7D,OADA9qC,EAAM,KAAK+G,EAAQ,MAAQ,KAAK4jH,eACzB,CAAEhsH,QAAS8rH,EAA0BzqH,QAC9C,CACA,OAAO0mH,GAAmBxrI,KAAMwsI,EAAU1nH,GAAO,KAC/CglH,GAAY9pI,KAAMwsI,EAAS7lE,OAAO11D,KAAK6T,OACvCA,EAAM3B,QAAQ,CAAEuoH,UAAU,EAAMR,SAAUsB,EAAS7lE,OAAO11D,KAAK6T,QACxD,CAAErB,QAAS8nH,MAClB,GAGE,KAAEvnI,GAAS8gB,EAIjB,aAHMmmH,GAAcjrI,KAAM,YAAY0mH,OAAaxqG,EAAQyqD,OAAO11D,MAAMojD,SACtErwD,EAAKoiC,EAAI,CAAEmkG,QAASruH,EAAQyqD,OAAO11D,KAAKs5H,YAEnC,CAAE9mH,QAAS8rH,EAA0BzqH,QAC9C,CA+CA,cAAM4qH,CACJlnF,EACAxkD,GACA,YACEwrI,EAAW,oBACXG,EAAmB,iBACnBC,GACkF,CAAC,GAErF,OAAO5vI,KAAK+uI,eAAc,KACxBjc,GAAO9yH,KAAM,oBAAqB,CAAEwoD,WAC7B,CACL/kC,QAAS4wC,MACP5nC,EACAvQ,EACA4I,IACwB9kB,KAAKsvI,iBAAiB,WAAYpzH,EAAS4I,GACrEA,MAAO,CACL9gB,OACAwrI,cACAG,sBACAC,uBAIR,CAgDA,aAAM1yD,CACJ10B,EACAxkD,GACA,YACEwrI,EAAW,mBACXK,EAAkB,gBAClBC,GACgF,CAAC,GAEnF,OAAO9vI,KAAK+uI,eAAc,KACxBjc,GAAO9yH,KAAM,mBAAoB,CAAEwoD,WAC5B,CACL/kC,QAAS4wC,MACP5nC,EACAvQ,EACA4I,IACwB9kB,KAAKsvI,iBAAiB,UAAWpzH,EAAS4I,GACpEA,MAAO,CACL9gB,OACAwrI,cACAK,qBACAC,sBAIR,CAqBA,iBAAM1c,CAAYl3G,EAA0B+nG,GAC1C,MAAM30D,EAA0B,iBAAZpzC,EAAuBwC,KAAKC,UAAUzC,GAAWA,EAC/C,eAAlBlc,KAAKu0D,iBACD,IAAIrxC,SAAeC,IACvB,MAAM4sH,EAAmBx7E,IACR,eAAXA,IACJpxC,IACAnjB,KAAKwiB,IAAI,gBAAiButH,GAAgB,EAE5C/vI,KAAKsiB,GAAG,gBAAiBytH,EAAgB,UAIrCjpE,GAAM,MAEdgsD,GAAO9yH,KAAM,mBAAoB,CAAEsvD,OAAMg1B,GAAI2/B,GAC/C,EC3WF,SAAS+rB,GAA2B3tI,GAClC,OAAO8M,OAAOgqC,QAAQ92C,GAAKuc,QACzB,CAACuI,GAAS9a,EAAKY,MAAS,IACnBka,EACH,CAAC8hH,GAAc58H,IAAOY,KAExB,CAAC,EAEL,CA4Ce,MAAMgjI,WAAwBf,GAC3C,uBAAsBtjB,CAAW/8F,GAC/B,OAAOm7C,GAAQwjE,YAAY,IAAIyC,GAAmBphH,EACpD,CAoCA,oBAAMqhH,EACJ,KACEh2I,EAAI,SACJijF,EAAQ,QACRD,EAAO,UACPzI,EAAS,WACTE,GAQF3wE,GAMA,OAAOhE,KAAK+uI,eAAc,KACxBjc,GAAO9yH,KAAM,+BAAgC,CAC3C9F,OACAi2I,UAAWhzD,EACXD,UACAkzD,WAAY37D,EACZ47D,YAAa17D,IAER,CACLlxD,QAAS4wC,MACP5nC,EACAvQ,EACA4I,IAEuB,yBAAnB5I,EAAQs4B,OACH42F,GAAwBprI,EAAMkc,EAAS4I,UAE1CmmH,GAAcjrI,KAAM,kBAAmBkc,EAAQyqD,OAAO11D,MAAMojD,SAChEvvC,EAAM9gB,KAAKoiC,KAEN,CACL3iB,QAASA,CAAC2rH,EAAa5C,EAA0BC,IAC/CjB,GAAmBxrI,KAAMwsI,EAAUC,GAAQ,KACzC,MAAM9lE,EAASmR,GAAS00D,EAAS7lE,OAAO11D,KAAK6T,MAAO0oD,GAAIkO,UAAUvD,UAClE,GAAIxR,EAAOz6B,MAAQshC,GAAI+K,kBACrB,MAAM,IAAIn0B,EACR,iBAAiBopB,GAAIA,GAAI+K,2BAA2B/K,GAAI7G,EAAOz6B,gBAGnE,MAAMokG,EACmB,cAAvBtwI,KAAKivB,SAAS09G,KAAuB,cAAgB,cACjDj/D,EAAQ1tE,KAAKivB,SAASqhH,GAC5BxG,GAAY9pI,KAAMwsI,EAAS7lE,OAAO11D,KAAK6T,OACvC,MAAMuhC,EAAUonB,GAAgBC,EAAO/G,EAAOrmE,OAG9C,OAFAyhB,GAAK/hB,KAAM,cAAeqmD,GAC1BomF,EAAOtpH,QAAQ,CAAEuoH,UAAU,EAAMrlF,UAAS6kF,SAAUsB,EAAS7lE,OAAO11D,KAAK6T,QAClE,CAAErB,QAAS8nH,GAAa,IAEnCzmH,UAGJA,MAAO,CAAE9gB,WAGf,CAoCA,kBAAMusI,EACJ,OAAE/nF,EAAM,SAAE20B,EAAQ,SAAEyH,EAAQ,WAAEjQ,GAC9B3wE,GAEA,OAAOhE,KAAK+uI,eAAc,KACxBjc,GAAO9yH,KAAM,gCAAiC,CAC5CwoD,SACA2nF,UAAWhzD,EACXqzD,YAAa5rD,EACbyrD,YAAa17D,IAER,CACLlxD,QAAS4wC,MACP5nC,EACAvQ,EACA4I,IAEuB,yBAAnB5I,EAAQs4B,OACH42F,GAAwBprI,EAAMkc,EAAS4I,UAE1CmmH,GAAcjrI,KAAM,kBAAmBkc,EAAQyqD,OAAO11D,MAAMojD,SAChEvvC,EAAM9gB,KAAKoiC,EAAI,CAAEmkG,QAASruH,EAAQyqD,OAAO11D,KAAKs5H,YAEzC,CACL9mH,QAASA,CAAC2rH,EAAa5C,EAA0BC,IAC/CjB,GAAmBxrI,KAAMwsI,EAAUC,GAAQ,KACzC3C,GAAY9pI,KAAMwsI,EAAS7lE,OAAO11D,KAAK6T,OACvC2nH,EAAOtpH,QAAQ,CAAEuoH,UAAU,EAAMR,SAAUsB,EAAS7lE,OAAO11D,KAAK6T,QACzD,CAAErB,QAAS8nH,OAEtBzmH,UAGJA,MAAO,CAAE9gB,WAGf,CAyBA,mBAAMysI,EACJ,OACEjoF,EAAM,SACN20B,EAAQ,SACRyH,EAAQ,WACRjQ,EAAU,SACViF,EAAW,IAAO,SAClB5C,EAAWjK,IAKb/oE,GACA,YAAEwrI,GAAmD,CAAC,GAMtD,OAAOxvI,KAAK+uI,eAAc,KACxBjc,GAAO9yH,KAAM,0BAA2B,CACtCwoD,SACA2nF,UAAWhzD,EACXqzD,YAAa5rD,EACbyrD,YAAa17D,EACb+7D,UAAW15D,EACX+mB,IAAKnkB,IAEA,CACLn2D,QAAS4wC,MACP5nC,EACAvQ,EACA4I,IAEuB,oCAAnB5I,EAAQs4B,OACH42F,GAAwBprI,EAAMkc,EAAS4I,UAE1CmmH,GACJjrI,KACA,+BACAkc,EAAQyqD,OAAO11D,MACfojD,SAAcvvC,EAAM9gB,KAAKoiC,EAAI,CAAEmkG,QAASruH,EAAQyqD,OAAO11D,KAAKs5H,YAEvD,CACL9mH,QAASA,CAAC2rH,EAAa5C,EAA0BC,KACvB,yBAApBD,EAASh4F,SACXi4F,EAAO+C,cAAchD,EAAS7lE,OAAO11D,KAAKm1B,IAC1CrkB,GAAK/hB,KAAM,YAAawsI,EAAS7lE,OAAO11D,KAAKm1B,GAAI,CAC/CkpB,KAAMk9E,EAAS7lE,OAAO11D,KAAKq+C,KAC3Bv+C,KAAMy7H,EAAS7lE,OAAO11D,KAAKF,OAE7B07H,EAAOtpH,QAAQ,CAAEuoH,UAAU,EAAMtlG,GAAIomG,EAAS7lE,OAAO11D,KAAKm1B,MAGrDglG,GAAwBprI,EAAMwsI,EAAUC,IAEjD3nH,UAGJA,MAAO,CAAE9gB,OAAMwrI,kBAGrB,CA2BA,wBAAMmB,EAAmB,OACvBnoF,EAAM,SACN20B,EAAQ,SACRyH,EAAQ,WACRjQ,IAEA,OAAOq7D,SACCltI,GAAK9C,KAAM,iCAAkC,CACjDwoD,SACA2nF,UAAWhzD,EACXqzD,YAAa5rD,EACbyrD,YAAa17D,IAGnB,CAuBA,qBAAMi8D,EAAgB,OACpBjsD,EAAM,SACNC,EAAQ,MACRtkF,IAMA,OAAO0vI,SACCltI,GAAK9C,KAAM,6BAA8B,CAC7C6wI,UAAWlsD,EACX6rD,YAAa5rD,EACbtkF,UAGN,CAeA,sBAAMwwI,CACJlsD,GAEA,MAAMz9D,QAAerkB,GAAK9C,KAAM,wBAAyB,CAAEyiG,OAAQ7d,IACnE,OAAOorD,GAAqB,IACvB7oH,EACHy9D,SAAUorD,GAAqB7oH,EAAOy9D,WAE1C,CAUA,wBAAMmsD,GACJ,OAAO/wI,KAAK+uI,eAAc,KACxBjc,GAAO9yH,KAAM,iCACN,CACLyjB,OAAAA,CAAQgJ,EAAYvQ,EAAyB4I,GAC3C,MAAuB,gCAAnB5I,EAAQs4B,QACV1vB,EAAM3B,UACC,CAAEM,QAAS8nH,MAEpBzmH,EAAM1B,OAAO,IAAIikC,GAA8B,gCACxC,CAAE5jC,QAAS6oH,IACpB,KAGN,ECrdF,IAAI0E,GAAK,KAEgB,oBAAd5lG,UACT4lG,GAAK5lG,UAC4B,oBAAjBC,aAChB2lG,GAAK3lG,kBACsB,IAAX,EAAAxT,EAChBm5G,GAAK,EAAAn5G,EAAOuT,WAAa,EAAAvT,EAAOwT,aACL,oBAAXhrB,OAChB2wH,GAAK3wH,OAAO+qB,WAAa/qB,OAAOgrB,aACP,oBAATjzC,OAChB44I,GAAK54I,KAAKgzC,WAAahzC,KAAKizC,cAG9B,U,+aCdgF,IAU3E4lG,GAAM,SAANA,GAAM,OAANA,EAAM,iBAANA,EAAM,YAANA,EAAM,UAANA,CAAM,EAANA,IAAM,IAMJ,MAAMC,WAAkCltF,EAC7C5lD,WAAAA,CAAY8d,GACVJ,MAAMI,GACNlc,KAAKlD,KAAO,2BACd,EAGK,MAAMq0I,WAAyCD,GACpD9yI,WAAAA,CAAqBgzI,GACnBt1H,MAAM,qBAAqB,KADRs1H,WAAAA,EAEnBpxI,KAAKlD,KAAO,kCACd,EAGF,IAAAu0I,GAAA,IAAAnnH,QAAAonH,GAAA,IAAApnH,QAAAqnH,GAAA,IAAArnH,QAAAsnH,GAAA,IAAApnH,QAGe,MAAMqnH,GAQnB,aAAIC,GACF,OAAOnwD,GAAKgwD,GAALvxI,KACT,CA8BA5B,WAAAA,CAAqBw1D,G,SAAa,K,EAAA49E,I,MAAA,MAvClC/vD,GAAA,KAAA4vD,GACE,IAEF5vD,GAAA,KAAS6vD,GAA+D,IAExE7vD,GAAA,KAAA8vD,QAAU,GAAa,KAkCF39E,IAAAA,CAAc,CAanC,eAAM85E,GACJvrD,GAAAqvD,GAAAxxI,KAAK2xI,IAAW7uI,KAAhB9C,MACA0hF,GAAK6vD,GAALvxI,WAAwB,IAAIkjB,SAASC,IACnC,MAAMuuH,EAAY,IAAItmG,GAAUprC,KAAK4zD,KACrCzkD,OAAO8/C,OAAOyiF,EAAW,CACvBtD,OAAQA,IAAMjrH,EAAQuuH,GACtBvD,QAAUyD,IACRzvD,GAAAqvD,GAAAxxI,KAAK6xI,IAAK/uI,KAAV9C,MAAW,KAAM,QAAM6Q,EAAW+gI,EAAW38H,MAAM,EAErDq5H,UAAYvtH,IACV,GAA0B,iBAAfA,EAAM9P,KACf,MAAM,IAAIi1C,GAAc,yCAAyCnlC,EAAM9P,MAEzEkxE,GAAAqvD,GAAAxxI,KAAK8xI,IAAehvI,KAApB9C,KAAqB0e,KAAKoQ,MAAM/N,EAAM9P,MAAM,EAE9Co9H,QAAUttH,IACRohE,GAAAqvD,GAAAxxI,KAAK6xI,IAAK/uI,KAAV9C,MAAW,KAAM,QAAM6Q,EAAW,IAAIsgI,GAAiCpwH,IACvEohE,GAAAqvD,GAAAxxI,KAAK2xI,IAAW7uI,KAAhB9C,MAAiB,EAAK,GAExB,WAEEkjB,QAAQsL,IAAI,IAAIujH,GAAAP,GAAAxxI,KAAKgyI,KAAUnmI,KAAKoK,GAAWksE,GAAAqvD,GAAAxxI,KAAKiyI,IAAcnvI,KAAnB9C,MAAoB,EAAMiW,KACjF,CAuCAi8H,kBAAAA,CAAmBl1B,GACjB,OAAO76B,GAAAqvD,GAAAxxI,KAAKmyI,IAAUrvI,KAAf9C,KAAgB,YAAaixI,GAAOmB,WAAYp1B,EACzD,CAEAq1B,sBAAAA,CAAuBr1B,GACrB,OAAO76B,GAAAqvD,GAAAxxI,KAAKmyI,IAAUrvI,KAAf9C,KAAgB,YAAaixI,GAAO1pC,KAAMyV,EACnD,CAEAs1B,qBAAAA,CAAsBt1B,GACpB,OAAO76B,GAAAqvD,GAAAxxI,KAAKmyI,IAAUrvI,KAAf9C,KAAgB,YAAaixI,GAAOtS,IAAK3hB,EAClD,CAEAu1B,oBAAAA,CAAqBv1B,GACnB,OAAO76B,GAAAqvD,GAAAxxI,KAAKmyI,IAAUrvI,KAAf9C,KAAgB,cAAeixI,GAAOmB,WAAYp1B,EAC3D,CAEAw1B,wBAAAA,CAAyBx1B,GACvB,OAAO76B,GAAAqvD,GAAAxxI,KAAKmyI,IAAUrvI,KAAf9C,KAAgB,cAAeixI,GAAO1pC,KAAMyV,EACrD,CAEAy1B,uBAAAA,CAAwBz1B,GACtB,OAAO76B,GAAAqvD,GAAAxxI,KAAKmyI,IAAUrvI,KAAf9C,KAAgB,cAAeixI,GAAOtS,IAAK3hB,EACpD,CAEA01B,qBAAAA,CAAsB11B,GACpB,OAAO76B,GAAAqvD,GAAAxxI,KAAKmyI,IAAUrvI,KAAf9C,KAAgB,eAAgBixI,GAAOmB,WAAYp1B,EAC5D,CAEA21B,yBAAAA,CAA0B31B,GACxB,OAAO76B,GAAAqvD,GAAAxxI,KAAKmyI,IAAUrvI,KAAf9C,KAAgB,eAAgBixI,GAAO1pC,KAAMyV,EACtD,CAEA41B,wBAAAA,CAAyB51B,GACvB,OAAO76B,GAAAqvD,GAAAxxI,KAAKmyI,IAAUrvI,KAAf9C,KAAgB,eAAgBixI,GAAOtS,IAAK3hB,EACrD,CAEA61B,eAAAA,CACE58H,EASA+mG,GAEA,OAAO76B,GAAAqvD,GAAAxxI,KAAKmyI,IAAUrvI,KAAf9C,KAAgBiW,EAAQg7H,GAAOmB,WAAYp1B,EACpD,CAEA81B,mBAAAA,CACE78H,EASA+mG,GAEA,OAAO76B,GAAAqvD,GAAAxxI,KAAKmyI,IAAUrvI,KAAf9C,KAAgBiW,EAAQg7H,GAAO1pC,KAAMyV,EAC9C,CAEA+1B,kBAAAA,CACE98H,EASA+mG,GAEA,OAAO76B,GAAAqvD,GAAAxxI,KAAKmyI,IAAUrvI,KAAf9C,KAAgBiW,EAAQg7H,GAAOtS,IAAK3hB,EAC7C,EACD,SAAAg1B,GAAAgB,GArLG,OAAO,IAAIjpH,IAAIw3D,GAAK8vD,GAAc2B,GAACnnI,KAAI,EAAEoK,KAAYA,IACvD,CAAC,SAAAg9H,GAEY/2H,GACX,GAAuB,MAAnBqlE,GAAKgwD,GAALvxI,MAAyB,MAAM,IAAImmD,GACvCo7B,GAAKgwD,GAALvxI,MAAgBgiI,KAAKtjH,KAAKC,UAAUzC,GACtC,CAAC,SAAA+1H,GAEciB,EAAsBj9H,GACnC,GAAuB,MAAnBsrE,GAAKgwD,GAALvxI,MAAyB,OAC7B,MAAM+qE,EAAU,CAAC,YAAa,cAAe,gBAAgBz0D,SAASL,GAClEA,EACA,SACJksE,GAAAqvD,GAAAxxI,KAAKizI,IAAYnwI,KAAjB9C,KAAkB,CAChBk+F,GAAIg1C,EAAc,YAAc,cAChCnoE,aACgB,WAAZA,GAAwB,CAAE90D,YAEhCsrE,GAAK+vD,GAALtxI,MAAmBpG,KAAK,CAACs5I,EAAaj9H,GACxC,CAAC,SAAA47H,GAEKhjC,EAAwDvsG,EAAY7F,GACxE8kF,GAAK8vD,GAALrxI,MACGwuC,QAAO,EAAEv4B,EAAQka,KAAY0+E,EAAU54F,EAAQka,KAC/CI,SAAQ,EAAE,CAAC,CAAGysF,KAAQA,EAAG16G,EAAG7F,IACjC,CAAC,SAAAk1I,GAIWwB,GAAY,GACC,MAAnB5xD,GAAKgwD,GAALvxI,QACCmzI,GAAW5xD,GAAKgwD,GAALvxI,MAAgBu6C,QAChCprC,OAAO8/C,OAAOsyB,GAAKgwD,GAALvxI,MAAiB,CAC7BouI,YAAQv9H,EACRs9H,aAASt9H,EACTy9H,eAAWz9H,IAEb6wE,GAAK6vD,GAALvxI,UAAkB6Q,GACpB,CAAC,SAAAihI,GA0Be51H,GACd,GAAuB,iBAAZA,GAAwBjiB,MAAM+W,QAAQkL,GAAU,CACzD,MAAMuwC,EAAU80B,GAAK+vD,GAALtxI,MAAmBimB,QACnC,GAAe,MAAXwmC,EAAiB,MAAM,IAAIvG,GAAc,0BAC7C,MAAOgtF,EAAaj9H,GAAUw2C,EAC9B,IAAIx3C,EAQJ,MAPuB,iBAAZiH,IAAsBjH,EAAQ,IAAIi8H,GAA0Bh1H,IACnEA,EAAQ5F,SAASL,KAAYi9H,IAC/Bj+H,EAAQ,IAAIixC,GACV,YAAYjwC,UAAei9H,EAAc,GAAK,wBAAwBh3H,WAG7D,MAATjH,GAAektE,GAAAqvD,GAAAxxI,KAAK6xI,IAAK/uI,KAAV9C,MAAYkI,GAAM+N,IAAW/N,QAAG2I,EAAWoE,GAEhE,CACAktE,GAAAqvD,GAAAxxI,KAAK6xI,IAAK/uI,KAAV9C,MACE,CAACiW,EAAQka,MACNla,IAAWiG,EAAQm7G,cAAgBphH,IAAWiG,EAAQjG,QACtDka,IAAWjU,EAAQiU,QAAUA,IAAW8gH,GAAOtS,MAClDziH,EAAQ6uD,QAEZ,CAAC,SAAAonE,GAEUl8H,EAAgBka,EAAgB6sF,GACzC,MAAMqa,EAAe,CAACphH,EAAQka,EAAQ6sF,GAItC,OAH2B,IAAvB+0B,GAAAP,GAAAxxI,KAAKgyI,IAASxkI,MAAYxN,KAAK0tI,YAC9BqE,GAAAP,GAAAxxI,KAAKgyI,IAASxxH,IAAIvK,IAASksE,GAAAqvD,GAAAxxI,KAAKiyI,IAAcnvI,KAAnB9C,MAAoB,EAAMiW,GAC1DsrE,GAAK8vD,GAALrxI,MAAoBpG,KAAKy9H,GAClB,KACL31C,GAAK2vD,GAALrxI,KAAsBuhF,GAAK8vD,GAALrxI,MAAoBwuC,QAAQ64B,GAASA,IAASgwD,KAC/D0a,GAAAP,GAAAxxI,KAAKgyI,IAASxxH,IAAIvK,IAASksE,GAAAqvD,GAAAxxI,KAAKiyI,IAAcnvI,KAAnB9C,MAAoB,EAAOiW,GAChC,IAAvB87H,GAAAP,GAAAxxI,KAAKgyI,IAASxkI,MAAY20E,GAAAqvD,GAAAxxI,KAAK2xI,IAAW7uI,KAAhB9C,KAAI,CAEtC,CC3IK,MAAMknG,GAA6B,CACxCnX,cAAe,SACf5H,OAAQ,CACNhN,aAAc,mBACdwO,YAAY,EACZpC,eAAgB,SAChBx2E,KAAM,CACJjU,KAAM,YAKCqqG,GAA+B,CAC1CpX,cAAe,QACf5H,OAAQ,CACNZ,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV26F,cAAc,GAGHjb,GAAmC,CAC9CuT,cAAe,YACf5H,OAAQ,CACNK,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,YAmCC2d,GAAiC,CAC5Cs1E,cAAe,CAAC,UAAW,SAC3B5H,OAAQ,CACNhN,aAAc,GACdqN,YAAa,CACXG,iBAAkB,IAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,YAKCs2I,GAAiC,CAC5CrjD,cAAe,CAAC,UAAW,SAC3B5H,OAAQ,CACNK,YAAa,CACXU,QAAS,IAAIp/E,OAAO,uBAEtBy9E,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,YA2BC8nF,GAAoC,CAC/CmL,cAAe,CAAC,UAAW,YAC3B5H,OAAQ,CACNK,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,WAChBx2E,KAAM,CACJjU,KAAM,YAiDCoC,GAAkC,CAC7C6wF,cAAe,CAAC,UAAW,UAC3B5H,OAAQ,CACNZ,eAAgB,SAChBx2E,KAAM,CACJjU,KAAM,YAKCu2I,GAAiC,CAC5CtjD,cAAe,CAAC,UAAW,SAC3B5H,OAAQ,CACNZ,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,YAgBCg3E,GAAoC,CAC/Cic,cAAe,aACf5H,OAAQ,CACNK,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,YA4DCw2I,GAAqC,CAChDvjD,cAAe,CAAC,UAAW,QAC3B5H,OAAQ,CACNK,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,OAChBx2E,KAAM,CACJjU,KAAM,YAKCwnF,GAA8B,CACzCyL,cAAe,CAAC,UAAW,MAC3B5H,OAAQ,CACNK,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,KAChBx2E,KAAM,CACJjU,KAAM,YAKC8D,GAA4B,CACvCmvF,cAAe,KACf5H,OAAQ,CACNK,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,KAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,YAsCCy2I,GAA+B,CAC1CxjD,cAAe,CAAC,UAAW,MAC3B5H,OAAQ,CACNZ,eAAgB,KAChBx2E,KAAM,CACJjU,KAAM,YAKCwgG,GAAqC,CAChDvN,cAAe,CAAC,UAAW,aAC3B5H,OAAQ,CACNK,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,aAChBx2E,KAAM,CACJjU,KAAM,YAKC45B,GAAgC,CAC3Cq5D,cAAe,CAAC,UAAW,QAC3B5H,OAAQ,CACNK,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,OAChBx2E,KAAM,CACJjU,KAAM,YAsCC02I,GAA6B,CACxCzjD,cAAe,KACf5H,OAAQ,CACNK,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,KAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,YAgBC22I,GAAuC,CAClD1jD,cAAe,CAAC,UAAW,cAC3B5H,OAAQ,CACNK,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,cAChBx2E,KAAM,CACJjU,KAAM,YAwFC42I,GAAqC,CAChD3jD,cAAe,aACf5H,OAAQ,CACNK,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,YAgBC62I,GAAkC,CAC7C5jD,cAAe,CAAC,UAAW,SAC3B5H,OAAQ,CACNK,YAAa,CACXU,QAAS,IAAIp/E,OAAO,yBAEtBy9E,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,YAsCC82I,GAAmC,CAC9C7jD,cAAe,YACf5H,OAAQ,CACNK,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,YAsCC+2I,GAAmC,CAC9C9jD,cAAe,YACf5H,OAAQ,CACNZ,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,YAgBCg3I,GAA+B,CAC1C/jD,cAAe,OACf5H,OAAQ,CACNK,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,YAKCi3I,GAAmC,CAC9ChkD,cAAe,CAAC,UAAW,WAC3B5H,OAAQ,CACNK,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,WAChBx2E,KAAM,CACJjU,KAAM,YAKCk3I,GAAkC,CAC7CjkD,cAAe,CAAC,UAAW,SAC3B5H,OAAQ,CACNZ,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,YA2BCm3I,GAA6B,CACxClkD,cAAe,KACf5H,OAAQ,CACNZ,eAAgB,KAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,YAuECo3I,GAA6B,CACxCnkD,cAAe,KACf5H,OAAQ,CACNK,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,KAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,YAsCCq3I,GAAwC,CACnDpkD,cAAe,CAAC,UAAW,gBAC3B5H,OAAQ,CACNZ,eAAgB,iBAChBx2E,KAAM,CACJjU,KAAM,YAKCs3I,GAAwC,CACnDrkD,cAAe,CAAC,UAAW,gBAC3B5H,OAAQ,CACNZ,eAAgB,iBAChBx2E,KAAM,CACJjU,KAAM,YA2MCs7E,GAAkC,CAC7C2X,cAAe,CAAC,UAAW,UAC3B5H,OAAQ,CACNZ,eAAgB,UAChBx2E,KAAM,CACJjU,KAAM,YAoFC2mH,GAAmC,CAC9C1zB,cAAe,CAAC,UAAW,WAC3B5H,OAAQ,CACNK,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,UAChBx2E,KAAM,CACJjU,KAAM,YAKCs/G,GAAmC,CAC9CrsB,cAAe,CAAC,UAAW,WAC3B5H,OAAQ,CACNK,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,UAChBx2E,KAAM,CACJjU,KAAM,YAKCu3I,GAAkC,CAC7CtkD,cAAe,CAAC,UAAW,UAC3B5H,OAAQ,CACNK,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,SAChBx2E,KAAM,CACJjU,KAAM,YAKC8wE,GAAoC,CAC/CmiB,cAAe,CAAC,UAAW,YAC3B5H,OAAQ,CACNK,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,YAKCu/E,GAAuC,CAClD0T,cAAe,CAAC,UAAW,eAC3B5H,OAAQ,CACNK,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,eAChBx2E,KAAM,CACJjU,KAAM,YAeCw3I,GAAkC,CAC7CvkD,cAAe,CAAC,UAAW,SAC3B5H,OAAQ,CACNK,YAAa,CACXU,QAAS,IAAIp/E,OAAO,4BAEtBy9E,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,YAgBCy3I,GAA+B,CAC1CxkD,cAAe,CAAC,UAAW,MAC3B5H,OAAQ,CACNK,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,KAChBx2E,KAAM,CACJjU,KAAM,YAgBC03I,GAA+B,CAC1CzkD,cAAe,OACf5H,OAAQ,CACNK,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,YCxxCC23I,GACX,CACE1jI,KAAM,CACJjU,KAAM,YACNiuF,UACE,4FACF1D,gBAAiB,CACfp2E,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,kBASd2pD,GAAuC,CAClD3jI,KAAM,CACJjU,KAAM,YACNiuF,UAAW,WACX1D,gBAAiB,CACfiW,UAAW,CACT9U,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV63I,UAAW,CACTptD,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,aAGV0oD,OAAQ,CACN+hC,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGViU,KAAM,CACJw2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CACb,eACA,wBACA,sBACA,qBACA,wBACA,sBACA,mBACA,sBACA,oBACA,oBACA,wBACA,sBACA,kBACA,gBACA,uBACA,wBACA,yBACA,8BACA,4BACA,0BACA,sBACA,uBACA,6BACA,6BACA,yBACA,gCACA,sBAINlf,QAAS,CACPwc,eAAgB,UAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,uBAOR6pD,GAA8C,CACzD7jI,KAAM,CACJjU,KAAM,YACNiuF,UAAW,kBACX1D,gBAAiB,CACfiW,UAAW,CACT9U,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,aAChBx2E,KAAM,CACJjU,KAAM,WAGVg0E,YAAa,CACXyW,eAAgB,eAChBx2E,KAAM,CACJjU,KAAM,WAGVq7E,UAAW,CACTqQ,YAAa,CACXU,QAAS,IAAIp/E,OAAO,cAEtBy9E,eAAgB,aAChBx2E,KAAM,CACJjU,KAAM,WAGV45B,KAAM,CACJ8xD,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,OAChBx2E,KAAM,CACJjU,KAAM,WAGV+3I,WAAY,CACVttD,eAAgB,cAChBx2E,KAAM,CACJjU,KAAM,WAGVg4I,UAAW,CACTvtD,eAAgB,aAChBx2E,KAAM,CACJjU,KAAM,aAGVo/E,WAAY,CACVqL,eAAgB,aAChBx2E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPyzC,YAAa,CACXU,QAAS,IAAIp/E,OAAO,cAEtBiH,KAAM,CACJjU,KAAM,aAKdspC,GAAI,CACFmhD,eAAgB,KAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,OAGfviC,OAAQ,CACN++B,eAAgB,SAChBx2E,KAAM,CAEJjU,KAAM,WAGVg3E,WAAY,CACV0U,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,cAChBx2E,KAAM,CACJjU,KAAM,WAGVi4I,OAAQ,CACNxtD,eAAgB,UAChBx2E,KAAM,CACJjU,KAAM,WAGVu/E,YAAa,CACXmM,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,eAChBx2E,KAAM,CACJjU,KAAM,WAGV8wE,SAAU,CACR4a,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,WAGVktD,OAAQ,CACNw+B,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,UAChBx2E,KAAM,CACJjU,KAAM,WAGVmnH,UAAW,CACTz7B,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,WAGVk4I,OAAQ,CACNxsD,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,SAChBx2E,KAAM,CACJjU,KAAM,WAGVm4I,QAAS,CACP1tD,eAAgB,WAChBx2E,KAAM,CACJjU,KAAM,WAGVo4I,eAAgB,CACd1sD,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,mBAChBx2E,KAAM,CACJjU,KAAM,WAGVq4I,WAAY,CACV3sD,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,eAChBx2E,KAAM,CACJjU,KAAM,WAGVooI,SAAU,CACR39C,eAAgB,WAChBx2E,KAAM,CACJjU,KAAM,WAGVs4I,WAAY,CACV7tD,eAAgB,cAChBx2E,KAAM,CACJjU,KAAM,aACN4S,MAAO,CAAEqB,KAAM,CAAEjU,KAAM,UAG3B0oD,OAAQ,CACN+hC,eAAgB,SAChBx2E,KAAM,CACJjU,KAAM,WAGVmjD,KAAM,CACJsnC,eAAgB,OAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CACb,sBACA,mBACA,mBACA,gBACA,mBACA,iBACA,aACA,eACA,oBACA,gBACA,kBACA,iBACA,mBAINorD,UAAW,CACT7sD,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,cAChBx2E,KAAM,CACJjU,KAAM,cAOHygG,GAAiC,CAC5CxsF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,KACX1D,gBAAiB,CACfhL,YAAa,CACXkL,eAAgB,eAChBx2E,KAAM,CACJjU,KAAM,WAGV0rD,OAAQ,CACNggC,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,SAChBx2E,KAAM,CAEJjU,KAAM,WAGVu8E,IAAK,CACHmP,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVi0E,IAAK,CACHyX,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WAGV8wE,SAAU,CACR2Z,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,WAGVmsC,MAAO,CACLu/C,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,WAGViuE,QAAS,CACPwc,eAAgB,UAChBx2E,KAAM,CACJjU,KAAM,WAGV0gG,YAAa,CACXjW,eAAgB,eAChBx2E,KAAM,CACJjU,KAAM,WAGVqhF,gBAAiB,CACfqK,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,mBAChBx2E,KAAM,CAEJjU,KAAM,WAGV2gG,YAAa,CACXlW,eAAgB,eAChBx2E,KAAM,CACJjU,KAAM,WAGVuhF,gBAAiB,CACfmK,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,mBAChBx2E,KAAM,CAEJjU,KAAM,WAGVwhF,eAAgB,CACdkK,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,kBAChBx2E,KAAM,CAEJjU,KAAM,WAGVyhF,WAAY,CACViK,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,cAChBx2E,KAAM,CACJjU,KAAM,WAGV4hF,UAAW,CACT6I,eAAgB,aAChBx2E,KAAM,CACJjU,KAAM,WAGV4gG,YAAa,CACXnW,eAAgB,eAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,cAGfnM,UAAW,CACT2I,eAAgB,aAChBx2E,KAAM,CACJjU,KAAM,WAGV+hF,OAAQ,CACN0I,eAAgB,UAChBx2E,KAAM,CACJjU,KAAM,WAGVwD,MAAO,CACLkoF,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,WAGVuiF,KAAM,CACJkI,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,WAGVk5B,OAAQ,CACNuxD,eAAgB,SAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,mBAGf4S,cAAe,CACbpW,eAAgB,iBAChBx2E,KAAM,CACJjU,KAAM,WAGVgiF,qBAAsB,CACpB0J,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,yBAChBx2E,KAAM,CACJjU,KAAM,WAGViiF,qBAAsB,CACpByJ,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,yBAChBx2E,KAAM,CACJjU,KAAM,WAGVmiF,IAAK,CACHsI,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WAGV0hF,qBAAsB,CACpB+I,eAAgB,yBAChBx2E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,aAKd2hF,qBAAsB,CACpB8I,eAAgB,yBAChBx2E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,aAKdugF,YAAa,CACXkK,eAAgB,eAChBx2E,KAAM,CACJjU,KAAM,WAGVwgF,eAAgB,CACdiK,eAAgB,kBAChBx2E,KAAM,CACJjU,KAAM,WAGV89E,SAAU,CACR4N,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,YAChBx2E,KAAM,CAEJjU,KAAM,WAGV8gG,UAAW,CACTrW,eAAgB,aAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,gBAGfvO,UAAW,CACT+K,eAAgB,aAChBx2E,KAAM,CACJjU,KAAM,WAGV63E,WAAY,CACV6T,YAAa,CACXG,iBAAkB,MAClBC,iBAAkB,GAEpBrB,eAAgB,cAChBx2E,KAAM,CACJjU,KAAM,WAGV+wE,SAAU,CACR0Z,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,WAGV6gF,MAAO,CACL4J,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,WAGV+gG,SAAU,CACRtW,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,QAGf+S,YAAa,CACXvW,eAAgB,eAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,gBAGf/M,QAAS,CACPuJ,eAAgB,WAChBx2E,KAAM,CACJjU,KAAM,WAGVq3D,SAAU,CACRozB,eAAgB,WAChBx2E,KAAM,CACJjU,KAAM,WAGV2/E,aAAc,CACZ8K,eAAgB,gBAChBx2E,KAAM,CACJjU,KAAM,WAGVA,KAAM,CACJyqF,eAAgB,OAChBx2E,KAAM,CACJjU,KAAM,WAGV6/E,SAAU,CACR6L,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,WAGV2pD,QAAS,CACP+hC,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,WAChBx2E,KAAM,CAEJjU,KAAM,WAGV+/E,OAAQ,CACN0K,eAAgB,UAChBx2E,KAAM,CACJjU,KAAM,WAGVg/E,QAAS,CACP0M,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,WAChBx2E,KAAM,CACJjU,KAAM,WAGVw3E,SAAU,CACRiT,eAAgB,WAChBx2E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,kBAKnBlP,UAAW,CACT2M,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,aAChBx2E,KAAM,CACJjU,KAAM,WAGVkgF,QAAS,CACPuK,eAAgB,WAChBx2E,KAAM,CACJjU,KAAM,WAGV5C,KAAM,CACJqtF,eAAgB,OAChBx2E,KAAM,CACJjU,KAAM,WAGV23E,UAAW,CACT+T,YAAa,CACXG,iBAAkB,MAClBC,iBAAkB,GAEpBrB,eAAgB,aAChBx2E,KAAM,CACJjU,KAAM,WAGVogF,QAAS,CACPsL,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,UAChBx2E,KAAM,CAEJjU,KAAM,WAGVihG,IAAK,CACHvV,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WAGVk6E,SAAU,CACRwR,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,YAChBx2E,KAAM,CAEJjU,KAAM,WAGVqgF,SAAU,CACRoK,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,WAGVsgF,SAAU,CACRmK,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,WAGVg3E,WAAY,CACVyT,eAAgB,cAChBx2E,KAAM,CACJjU,KAAM,WAGV2iF,QAAS,CACP+I,YAAa,CACXU,QAAS,IAAIp/E,OAAO,2BAEtBy9E,eAAgB,WAChBx2E,KAAM,CACJjU,KAAM,WAGV4iF,KAAM,CACJ6H,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,WAGV6iF,SAAU,CACR4H,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,WAGVspC,GAAI,CACFmhD,eAAgB,KAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,aAGfnL,QAAS,CACP2H,eAAgB,WAChBx2E,KAAM,CACJjU,KAAM,WAGV81B,QAAS,CACP41D,YAAa,CACXG,iBAAkB,WAClBC,iBAAkB,GAEpBrB,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGViU,KAAM,CACJw2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CACb,UACA,kBACA,mBACA,oBACA,yBACA,uBACA,qBACA,iBACA,kBACA,wBACA,wBACA,mBACA,iBACA,gBACA,kBACA,iBACA,cACA,eACA,iBACA,eACA,mBACA,iBACA,aACA,WACA,oBAQC+T,GAAwC,CACnDjtF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,YACX1D,gBAAiB,CACfnJ,UAAW,CACTqJ,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,aAKdshF,UAAW,CACTmJ,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,gBASPmhG,GAA6C,CACxD1W,eAAgB,iBAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,iBACXkE,WAAY,iBACZvC,yBAA0B,CACxBnF,eAAgB,KAChBoF,WAAY,MAEdtF,gBAAiB,CACf6W,GAAI,CACF3W,eAAgB,KAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHqhG,GAA0C,CACrDptF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,cACX1D,gBAAiB,CACft2E,KAAM,CACJoqE,aAAc,QACdwO,YAAY,EACZpC,eAAgB,OAChBx2E,KAAM,CACJjU,KAAM,WAGV4S,MAAO,CACL84E,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHshG,GAAkC,CAC7CrtF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,MACX1D,gBAAiB,CACft2E,KAAM,CACJw2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,QAAS,WAG7Bv6E,MAAO,CACL84E,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHuhG,GAA0C,CACrDttF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,cACX1D,gBAAiB,CACfh7E,IAAK,CACHk7E,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVwhG,WAAY,CACV/W,eAAgB,cAChBx2E,KAAM,CACJjU,KAAM,WAGV8D,GAAI,CACF2mF,eAAgB,KAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOH4+E,GAAuC,CAClD3qE,KAAM,CACJjU,KAAM,YACNiuF,UAAW,WACX1D,gBAAiB,CACfjhD,GAAI,CACFmhD,eAAgB,KAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,OAGfja,YAAa,CACX0X,YAAa,CACXG,iBAAkB,oBAClBC,kBAAmB,GAErBrB,eAAgB,eAChBx2E,KAAM,CACJjU,KAAM,WAGVwgG,UAAW,CACT/V,eAAgB,aAChBx2E,KAAM,CACJjU,KAAM,WAGV45B,KAAM,CACJ6wD,eAAgB,OAChBx2E,KAAM,CACJjU,KAAM,WAGVq7E,UAAW,CACToP,eAAgB,aAChBx2E,KAAM,CACJjU,KAAM,WAGVo/E,WAAY,CACVqL,eAAgB,aAChBx2E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,gBASPw4I,GAAgD,CAC3DvkI,KAAM,CACJjU,KAAM,YACNiuF,UAAW,oBACX1D,gBAAiB,CACfx3D,KAAM,CACJ03D,eAAgB,OAChBqC,UAAU,EACV1C,UAAU,EACVn2E,KAAM,CACJjU,KAAM,WAGV+jD,KAAM,CACJ0mC,eAAgB,OAChBqC,UAAU,EACV1C,UAAU,EACVn2E,KAAM,CACJjU,KAAM,cAOHy4I,GAA4C,CACvDxkI,KAAM,CACJjU,KAAM,YACNiuF,UAAW,gBACX1D,gBAAiB,CACfpyE,MAAO,CACLsyE,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOH04I,GACX,CACEzkI,KAAM,CACJjU,KAAM,YACNiuF,UACE,+FACF1D,gBAAiB,CACfp2E,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,6BASd0qD,GAAkD,CAC7D1kI,KAAM,CACJjU,KAAM,YACNiuF,UAAW,sBACX1D,gBAAiB,CACfvT,WAAY,CACV0U,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVkgF,QAAS,CACPwL,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,WAChBx2E,KAAM,CACJjU,KAAM,WAGVm4I,QAAS,CACP1tD,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOH44I,GACX,CACE3kI,KAAM,CACJjU,KAAM,YACNiuF,UACE,8FACF1D,gBAAiB,CACfp2E,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,6BASd4qD,GAAkD,CAC7D5kI,KAAM,CACJjU,KAAM,YACNiuF,UAAW,sBACX1D,gBAAiB,CACf7+B,OAAQ,CACN++B,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVwgG,UAAW,CACT/V,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVg3E,WAAY,CACV0U,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV84I,SAAU,CACRruD,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV0oD,OAAQ,CACN+hC,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV+4I,UAAW,CACTtuD,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVg5I,YAAa,CACXvuD,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVktD,OAAQ,CACNw+B,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVi5I,QAAS,CACPxuD,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVs7E,OAAQ,CACNmP,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHk5I,GACX,CACEjlI,KAAM,CACJjU,KAAM,YACNiuF,UACE,2FACF1D,gBAAiB,CACfp2E,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,iBASdkrD,GAAsC,CACjDllI,KAAM,CACJjU,KAAM,YACNiuF,UAAW,UACX1D,gBAAiB,CACf6uD,QAAS,CACP3uD,eAAgB,UAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,mBAGf27B,OAAQ,CACNn/B,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,OAAQ,MAAO,UAGnCtF,OAAQ,CACN6D,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVq5I,UAAW,CACT5uD,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVs5I,QAAS,CACP7uD,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVi4I,OAAQ,CACNxtD,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVu5I,UAAW,CACT7tD,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVktD,OAAQ,CACNw+B,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVw5I,aAAc,CACZ9tD,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,gBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVy5I,WAAY,CACV/tD,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV05I,WAAY,CACVjvD,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGV25I,SAAU,CACRlvD,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGV45I,aAAc,CACZnvD,eAAgB,gBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV65I,WAAY,CACVpvD,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVg4I,UAAW,CACTvtD,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,aAGV0oD,OAAQ,CACN+hC,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOH85I,GAA6C,CACxD7lI,KAAM,CACJjU,KAAM,YACNiuF,UAAW,iBACX1D,gBAAiB,CACfwvD,UAAW,CACTtvD,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVg6I,UAAW,CACTvvD,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVi6I,WAAY,CACVxvD,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVk6I,WAAY,CACVzvD,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,cAOHm6I,GACX,CACElmI,KAAM,CACJjU,KAAM,YACNiuF,UACE,8FACF1D,gBAAiB,CACfp2E,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,mBASdmsD,GAAwC,CACnDnmI,KAAM,CACJjU,KAAM,YACNiuF,UAAW,YACX1D,gBAAiB,CACf8vD,WAAY,CACV5vD,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVs6I,aAAc,CACZ5uD,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,iBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVu6I,aAAc,CACZ9vD,eAAgB,iBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVwgG,UAAW,CACT9U,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV0oD,OAAQ,CACN+hC,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVspC,GAAI,CACFmhD,eAAgB,KAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,gBAGfusD,eAAgB,CACd/vD,eAAgB,kBAChBx2E,KAAM,CACJjU,KAAM,eAOH4/E,GAA0C,CACrD3rE,KAAM,CACJjU,KAAM,YACNiuF,UAAW,cACX1D,gBAAiB,CACfvqF,KAAM,CACJyqF,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV6/E,SAAU,CACR6L,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV2pD,QAAS,CACP+hC,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,WAChBx2E,KAAM,CAEJjU,KAAM,WAGVu8E,IAAK,CACHmP,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVi0E,IAAK,CACHyX,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WAGV0/E,UAAW,CACT+K,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVmsC,MAAO,CACLu/C,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,cAOHy6I,GAA+C,CAC1DxmI,KAAM,CACJjU,KAAM,YACNiuF,UAAW,mBACX1D,gBAAiB,CACfpyE,MAAO,CACLsyE,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOH06I,GACX,CACEzmI,KAAM,CACJjU,KAAM,YACNiuF,UACE,+FACF1D,gBAAiB,CACfp2E,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,iBASd0sD,GAAsC,CACjD1mI,KAAM,CACJjU,KAAM,YACNiuF,UAAW,UACX1D,gBAAiB,CACf5D,OAAQ,CACN8D,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,YAGVA,KAAM,CACJ0rF,YAAa,CACXU,QAAS,IAAIp/E,OAAO,mBAEtBy9E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVuP,IAAK,CACHk7E,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVwgG,UAAW,CACT9U,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVspC,GAAI,CACFmhD,eAAgB,KAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,iBAGfssD,aAAc,CACZ9vD,eAAgB,iBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVs6I,aAAc,CACZ5uD,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,iBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVg0E,YAAa,CACXyW,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV63I,UAAW,CACTptD,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,gBAOH8/E,GAA2C,CACtD7rE,KAAM,CACJjU,KAAM,YACNiuF,UAAW,eACX1D,gBAAiB,CACfxK,OAAQ,CACN0K,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVg/E,QAAS,CACP0M,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVw3E,SAAU,CACRiT,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,kBAKnBlP,UAAW,CACT2M,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVu8E,IAAK,CACHmP,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVi0E,IAAK,CACHyX,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WAGV0/E,UAAW,CACT+K,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVmsC,MAAO,CACLu/C,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,cAOH46I,GACX,CACE3mI,KAAM,CACJjU,KAAM,YACNiuF,UACE,6FACF1D,gBAAiB,CACfswD,iBAAkB,CAChBpwD,eAAgB,qBAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,oCAGf6sD,eAAgB,CACdrwD,eAAgB,mBAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UACE,uHAGN8sD,WAAY,CACVtwD,eAAgB,eAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UACE,oHAGNs2C,SAAU,CACR95C,eAAgB,aAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UACE,iHAGN+sD,qBAAsB,CACpBvwD,eAAgB,0BAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UACE,6HAGNgtD,mBAAoB,CAClBxwD,eAAgB,wBAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UACE,4HAGNitD,gBAAiB,CACfzwD,eAAgB,oBAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UACE,wHAGNktD,iBAAkB,CAChB1wD,eAAgB,qBAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UACE,0HAGNmtD,uBAAwB,CACtB3wD,eAAgB,4BAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UACE,gIAGNotD,sBAAuB,CACrB5wD,eAAgB,2BAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UACE,8HAGNqtD,gBAAiB,CACf7wD,eAAgB,oBAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UACE,wHAGNstD,eAAgB,CACd9wD,eAAgB,mBAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UACE,uHAGNutD,sBAAuB,CACrB/wD,eAAgB,2BAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UACE,8HAGNwtD,kBAAmB,CACjBhxD,eAAgB,sBAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UACE,2HAGNytD,YAAa,CACXjxD,eAAgB,gBAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UACE,oHAGN0tD,eAAgB,CACdlxD,eAAgB,mBAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UACE,wHAGN2tD,aAAc,CACZnxD,eAAgB,iBAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UACE,qHAGN4tD,eAAgB,CACdpxD,eAAgB,mBAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UACE,uHAGN6tD,aAAc,CACZrxD,eAAgB,iBAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UACE,qHAGN8tD,eAAgB,CACdtxD,eAAgB,mBAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UACE,wHAGNijC,cAAe,CACbzmC,eAAgB,kBAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UACE,uHAGN+tD,iBAAkB,CAChBvxD,eAAgB,qBAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UACE,yHAGNguD,iBAAkB,CAChBxxD,eAAgB,qBAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UACE,0HAGNiuD,YAAa,CACXzxD,eAAgB,gBAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UACE,qHAGNkuD,QAAS,CACP1xD,eAAgB,WAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UACE,gHAGNmuD,kBAAmB,CACjB3xD,eAAgB,sBAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UACE,0HAGNjzB,MAAO,CACLyvB,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOLq8I,GAA8D,CACzEpoI,KAAM,CACJjU,KAAM,YACNiuF,UAAW,kCACX1D,gBAAiB,CACfrK,QAAS,CACPuK,eAAgB,WAChBx2E,KAAM,CACJjU,KAAM,cAOHs8I,GACX,CACEroI,KAAM,CACJjU,KAAM,YACNiuF,UACE,qHACF1D,gBAAiB,CACfvT,WAAY,CACVyT,eAAgB,cAChBx2E,KAAM,CACJjU,KAAM,WAGVsgF,SAAU,CACRmK,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,cAOLu8I,GACX,CACEtoI,KAAM,CACJjU,KAAM,YACNiuF,UACE,kHACF1D,gBAAiB,CACfrK,QAAS,CACPuK,eAAgB,WAChBx2E,KAAM,CACJjU,KAAM,cAOLw8I,GACX,CACEvoI,KAAM,CACJjU,KAAM,YACNiuF,UACE,+GACF1D,gBAAiB,CACf3H,KAAM,CACJ6H,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,cAOLy8I,GACX,CACExoI,KAAM,CACJjU,KAAM,YACNiuF,UACE,2HACF1D,gBAAiB,CACfzI,UAAW,CACT2I,eAAgB,aAChBx2E,KAAM,CACJjU,KAAM,WAGV+hF,OAAQ,CACN0I,eAAgB,UAChBx2E,KAAM,CACJjU,KAAM,cAOL08I,GACX,CACEzoI,KAAM,CACJjU,KAAM,YACNiuF,UACE,0HACF1D,gBAAiB,CACfzI,UAAW,CACT2I,eAAgB,aAChBx2E,KAAM,CACJjU,KAAM,WAGV+hF,OAAQ,CACN0I,eAAgB,UAChBx2E,KAAM,CACJjU,KAAM,cAOL28I,GACX,CACE1oI,KAAM,CACJjU,KAAM,YACNiuF,UACE,sHACF1D,gBAAiB,CACfmW,YAAa,CACXjW,eAAgB,eAChBx2E,KAAM,CACJjU,KAAM,WAGV2gG,YAAa,CACXlW,eAAgB,eAChBx2E,KAAM,CACJjU,KAAM,cAOL48I,GACX,CACE3oI,KAAM,CACJjU,KAAM,YACNiuF,UACE,wHACF1D,gBAAiB,CACfzI,UAAW,CACT2I,eAAgB,aAChBx2E,KAAM,CACJjU,KAAM,WAGV+hF,OAAQ,CACN0I,eAAgB,UAChBx2E,KAAM,CACJjU,KAAM,cAOL68I,GACX,CACE5oI,KAAM,CACJjU,KAAM,YACNiuF,UACE,8HACF1D,gBAAiB,CACfzI,UAAW,CACT2I,eAAgB,aAChBx2E,KAAM,CACJjU,KAAM,WAGV+hF,OAAQ,CACN0I,eAAgB,UAChBx2E,KAAM,CACJjU,KAAM,cAOL88I,GACX,CACE7oI,KAAM,CACJjU,KAAM,YACNiuF,UACE,4HACF1D,gBAAiB,CACfzI,UAAW,CACT2I,eAAgB,aAChBx2E,KAAM,CACJjU,KAAM,WAGV+hF,OAAQ,CACN0I,eAAgB,UAChBx2E,KAAM,CACJjU,KAAM,cAOL+8I,GACX,CACE9oI,KAAM,CACJjU,KAAM,YACNiuF,UACE,sHACF1D,gBAAiB,CACfzI,UAAW,CACT2I,eAAgB,aAChBx2E,KAAM,CACJjU,KAAM,WAGV+hF,OAAQ,CACN0I,eAAgB,UAChBx2E,KAAM,CACJjU,KAAM,cAOLg9I,GACX,CACE/oI,KAAM,CACJjU,KAAM,YACNiuF,UACE,qHACF1D,gBAAiB,CACfzI,UAAW,CACT2I,eAAgB,aAChBx2E,KAAM,CACJjU,KAAM,WAGV+hF,OAAQ,CACN0I,eAAgB,UAChBx2E,KAAM,CACJjU,KAAM,cAOLi9I,GACX,CACEhpI,KAAM,CACJjU,KAAM,YACNiuF,UACE,4HACF1D,gBAAiB,CACfzI,UAAW,CACT2I,eAAgB,aAChBx2E,KAAM,CACJjU,KAAM,WAGV+hF,OAAQ,CACN0I,eAAgB,UAChBx2E,KAAM,CACJjU,KAAM,cAOLk9I,GACX,CACEjpI,KAAM,CACJjU,KAAM,YACNiuF,UACE,yHACF1D,gBAAiB,CACfzI,UAAW,CACT2I,eAAgB,aAChBx2E,KAAM,CACJjU,KAAM,WAGVuiF,KAAM,CACJkI,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,cAOLm9I,GACX,CACElpI,KAAM,CACJjU,KAAM,YACNiuF,UACE,kHACF1D,gBAAiB,CACf7K,UAAW,CACT+K,eAAgB,aAChBx2E,KAAM,CACJjU,KAAM,cAOLo9I,GACX,CACEnpI,KAAM,CACJjU,KAAM,YACNiuF,UACE,sHACF1D,gBAAiB,CACf7K,UAAW,CACT+K,eAAgB,aAChBx2E,KAAM,CACJjU,KAAM,WAGV2/E,aAAc,CACZ8K,eAAgB,gBAChBx2E,KAAM,CACJjU,KAAM,cAOLq9I,GACX,CACEppI,KAAM,CACJjU,KAAM,YACNiuF,UACE,mHACF1D,gBAAiB,CACf7K,UAAW,CACT+K,eAAgB,aAChBx2E,KAAM,CACJjU,KAAM,WAGV+/E,OAAQ,CACN0K,eAAgB,UAChBx2E,KAAM,CACJjU,KAAM,cAOLs9I,GACX,CACErpI,KAAM,CACJjU,KAAM,YACNiuF,UACE,qHACF1D,gBAAiB,CACfhL,YAAa,CACXkL,eAAgB,eAChBx2E,KAAM,CACJjU,KAAM,WAGV0/E,UAAW,CACT+K,eAAgB,aAChBx2E,KAAM,CACJjU,KAAM,WAGV+/E,OAAQ,CACN0K,eAAgB,UAChBx2E,KAAM,CACJjU,KAAM,cAOLu9I,GACX,CACEtpI,KAAM,CACJjU,KAAM,YACNiuF,UACE,mHACF1D,gBAAiB,CACf7K,UAAW,CACT+K,eAAgB,aAChBx2E,KAAM,CACJjU,KAAM,WAGV+/E,OAAQ,CACN0K,eAAgB,UAChBx2E,KAAM,CACJjU,KAAM,cAOLw9I,GACX,CACEvpI,KAAM,CACJjU,KAAM,YACNiuF,UACE,sHACF1D,gBAAiB,CACfxZ,SAAU,CACR0Z,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,cAOLy9I,GACX,CACExpI,KAAM,CACJjU,KAAM,YACNiuF,UACE,qHACF1D,gBAAiB,CACfzZ,SAAU,CACR2Z,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,WAGV+wE,SAAU,CACR0Z,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,cAOL09I,GACX,CACEzpI,KAAM,CACJjU,KAAM,YACNiuF,UACE,uHACF1D,gBAAiB,CACf7K,UAAW,CACT+K,eAAgB,aAChBx2E,KAAM,CACJjU,KAAM,cAOL29I,GACX,CACE1pI,KAAM,CACJjU,KAAM,YACNiuF,UACE,wHACF1D,gBAAiB,CACfxZ,SAAU,CACR0Z,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,cAOL49I,GACX,CACE3pI,KAAM,CACJjU,KAAM,YACNiuF,UACE,mHACF1D,gBAAiB,CACfzH,QAAS,CACP2H,eAAgB,WAChBx2E,KAAM,CACJjU,KAAM,cAOL69I,GACX,CACE5pI,KAAM,CACJjU,KAAM,YACNiuF,UACE,8GACF1D,gBAAiB,CACfzZ,SAAU,CACR2Z,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,WAGVu/E,YAAa,CACXkL,eAAgB,eAChBx2E,KAAM,CACJjU,KAAM,cAOL89I,GACX,CACE7pI,KAAM,CACJjU,KAAM,YACNiuF,UACE,wHACF1D,gBAAiB,CACfzI,UAAW,CACT2I,eAAgB,aAChBx2E,KAAM,CACJjU,KAAM,cAOL+9I,GACX,CACE9pI,KAAM,CACJjU,KAAM,YACNiuF,UACE,uEACF1D,gBAAiB,CACfp2E,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,wBASd+vD,GAA6C,CACxD/pI,KAAM,CACJjU,KAAM,YACNiuF,UAAW,iBACX1D,gBAAiB,CACf8S,QAAS,CACP5S,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVg3E,WAAY,CACV0U,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVo4I,eAAgB,CACd1sD,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,mBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVi+I,WAAY,CACVxzD,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,aAKdk+I,OAAQ,CACNzzD,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,aACN4S,MAAO,CAAEqB,KAAM,CAAEjU,KAAM,UAG3Bm+I,QAAS,CACP1zD,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,YAGVo+I,aAAc,CACZ3zD,eAAgB,gBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,aAGVg0E,YAAa,CACXyW,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHq+I,GACX,CACEpqI,KAAM,CACJjU,KAAM,YACNiuF,UACE,0FACF1D,gBAAiB,CACfp2E,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,iCASdqwD,GAAsD,CACjErqI,KAAM,CACJjU,KAAM,YACNiuF,UAAW,0BACX1D,gBAAiB,CACfvT,WAAY,CACV0U,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVu+I,QAAS,CACP9zD,eAAgB,UAChBx2E,KAAM,CACJjU,KAAM,aACN4S,MAAO,CAAEqB,KAAM,CAAEjU,KAAM,UAG3Bi4I,OAAQ,CACNxtD,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVw+I,WAAY,CACV/zD,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVktD,OAAQ,CACNw+B,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHy+I,GACX,CACExqI,KAAM,CACJjU,KAAM,YACNiuF,UACE,0GACF1D,gBAAiB,CACfp2E,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,sCASdywD,GAA2D,CACtEzqI,KAAM,CACJjU,KAAM,YACNiuF,UAAW,+BACX1D,gBAAiB,CACfrK,QAAS,CACPwL,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVi4I,OAAQ,CACNxtD,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVm4I,QAAS,CACP1tD,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVktD,OAAQ,CACNw+B,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOH2+I,GACX,CACE1qI,KAAM,CACJjU,KAAM,YACNiuF,UACE,wFACF1D,gBAAiB,CACfp2E,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,6BASd2wD,GAAwD,CACnE3qI,KAAM,CACJjU,KAAM,YACNiuF,UAAW,4BACX1D,gBAAiB,CACfvT,WAAY,CACV0U,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVkgF,QAAS,CACPwL,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVm4I,QAAS,CACP1tD,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV+4C,SAAU,CACR0xC,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,aACN4S,MAAO,CAAEqB,KAAM,CAAEjU,KAAM,aAOpB6+I,GACX,CACE5qI,KAAM,CACJjU,KAAM,YACNiuF,UACE,2FACF1D,gBAAiB,CACfp2E,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,6BASd6wD,GAAkD,CAC7D7qI,KAAM,CACJjU,KAAM,YACNiuF,UAAW,sBACX1D,gBAAiB,CACfvW,YAAa,CACXyW,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVg3E,WAAY,CACV0U,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVi4I,OAAQ,CACNxtD,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV+3I,WAAY,CACVttD,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVg4I,UAAW,CACTvtD,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,aAGVmnH,UAAW,CACTz7B,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVk4I,OAAQ,CACNxsD,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVm4I,QAAS,CACP1tD,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVktD,OAAQ,CACNw+B,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOH++I,GACX,CACE9qI,KAAM,CACJjU,KAAM,YACNiuF,UACE,sEACF1D,gBAAiB,CACfp2E,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,sBASd+wD,GAA2C,CACtD/qI,KAAM,CACJjU,KAAM,YACNiuF,UAAW,eACX1D,gBAAiB,CACfvT,WAAY,CACV0U,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVo4I,eAAgB,CACd1sD,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,mBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVi/I,cAAe,CACbx0D,eAAgB,iBAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVk/I,YAAa,CACXz0D,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGV84I,SAAU,CACRruD,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVi+I,WAAY,CACVxzD,eAAgB,aAChBx2E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,aAKdm/I,QAAS,CACP10D,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVA,KAAM,CACJyqF,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV6gD,OAAQ,CACN4pC,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVm+I,QAAS,CACP1zD,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,eAOHo/I,GACX,CACEnrI,KAAM,CACJjU,KAAM,YACNiuF,UACE,qEACF1D,gBAAiB,CACfp2E,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOLq/I,GACX,CACEprI,KAAM,CACJjU,KAAM,YACNiuF,UACE,uFACF1D,gBAAiB,CACfp2E,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,qCASdqxD,GAA0D,CACrErrI,KAAM,CACJjU,KAAM,YACNiuF,UAAW,8BACX1D,gBAAiB,CACf7K,UAAW,CACTgM,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV0rD,OAAQ,CACN++B,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVwgG,UAAW,CACT/V,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVg3E,WAAY,CACVyT,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV0oD,OAAQ,CACN+hC,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVu/I,WAAY,CACV7zD,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVw/I,WAAY,CACV/0D,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHy/I,GACX,CACExrI,KAAM,CACJjU,KAAM,YACNiuF,UACE,yFACF1D,gBAAiB,CACfo8B,QAAS,CACPj7B,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV0rD,OAAQ,CACN++B,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGV8nF,SAAU,CACR4D,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOL0/I,GACX,CACEzrI,KAAM,CACJjU,KAAM,YACNiuF,UACE,wGACF1D,gBAAiB,CACfp2E,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,uDASd0xD,GACX,CACE1rI,KAAM,CACJjU,KAAM,YACNiuF,UAAW,gDACX1D,gBAAiB,CACfo8B,QAAS,CACPj7B,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV0rD,OAAQ,CACN++B,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGV8nF,SAAU,CACR4D,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV0oD,OAAQ,CACN+hC,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOL4/I,GACX,CACE3rI,KAAM,CACJjU,KAAM,YACNiuF,UACE,yEACF1D,gBAAiB,CACfp2E,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,iBASd/gB,GAAsC,CACjDj5D,KAAM,CACJjU,KAAM,YACNiuF,UAAW,UACX1D,gBAAiB,CACf5D,OAAQ,CACN8D,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,YAGV0rD,OAAQ,CACN++B,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVs/G,QAAS,CACP5zB,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVwhF,eAAgB,CACdiJ,eAAgB,kBAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGV4gG,YAAa,CACXnW,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,aACN4S,MAAO,CAAEqB,KAAM,CAAEjU,KAAM,UAG3BohF,UAAW,CACTsK,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVqhF,gBAAiB,CACfoJ,eAAgB,mBAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGV6/I,kBAAmB,CACjBp1D,eAAgB,sBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV8/I,kBAAmB,CACjBr1D,eAAgB,uBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV+/I,gBAAiB,CACft1D,eAAgB,oBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,aAGVggJ,kBAAmB,CACjBt0D,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,uBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVyhF,WAAY,CACVgJ,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVonF,YAAa,CACXqD,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVshF,UAAW,CACToK,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVuhF,gBAAiB,CACfkJ,eAAgB,mBAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVwD,MAAO,CACLinF,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVmnF,UAAW,CACTsD,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV4hF,UAAW,CACT8J,YAAa,CACXU,QAAS,IAAIp/E,OAAO,cAEtBy9E,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVigJ,aAAc,CACZx1D,eAAgB,gBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHkgJ,GACX,CACEjsI,KAAM,CACJjU,KAAM,YACNiuF,UACE,gFACF1D,gBAAiB,CACfp2E,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,sBASd7H,GAA2C,CACtDnyE,KAAM,CACJjU,KAAM,YACNiuF,UAAW,eACX1D,gBAAiB,CACfiW,UAAW,CACT9U,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVq4I,WAAY,CACV3sD,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVg3E,WAAY,CACV0U,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVo4I,eAAgB,CACd1sD,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,mBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVooI,SAAU,CACR39C,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV0oD,OAAQ,CACN+hC,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVs4I,WAAY,CACV7tD,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,aACN4S,MAAO,CAAEqB,KAAM,CAAEjU,KAAM,UAG3BmgJ,SAAU,CACR11D,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV+3I,WAAY,CACVttD,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHogJ,GACX,CACEnsI,KAAM,CACJjU,KAAM,YACNiuF,UACE,+EACF1D,gBAAiB,CACfp2E,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,qBASdoyD,GAA0C,CACrDpsI,KAAM,CACJjU,KAAM,YACNiuF,UAAW,cACX1D,gBAAiB,CACfrmF,KAAM,CACJumF,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,aAKdwgG,UAAW,CACT9U,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV63I,UAAW,CACTptD,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,aAGVq4I,WAAY,CACV3sD,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVg3E,WAAY,CACV0U,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVo4I,eAAgB,CACd1sD,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,mBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVmU,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVsgJ,UAAW,CACT71D,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVytH,UAAW,CACThjC,eAAgB,aAChBqC,UAAU,EACV1C,UAAU,EACVn2E,KAAM,CACJjU,KAAM,WAGVugJ,oBAAqB,CACnB70D,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,yBAChBqC,UAAU,EACV1C,UAAU,EACVn2E,KAAM,CACJjU,KAAM,WAGVwgJ,wBAAyB,CACvB90D,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,8BAChBqC,UAAU,EACV1C,UAAU,EACVn2E,KAAM,CACJjU,KAAM,WAGV0oD,OAAQ,CACN+hC,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVi4I,OAAQ,CACNxtD,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV+3I,WAAY,CACVttD,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVygJ,iBAAkB,CAChBh2D,eAAgB,qBAChBqC,UAAU,EACV1C,UAAU,EACVn2E,KAAM,CACJjU,KAAM,cAOHgmF,GAAuC,CAClD/xE,KAAM,CACJjU,KAAM,YACNiuF,UAAW,WACX1D,gBAAiB,CACfm2D,SAAU,CACRj2D,eAAgB,YAChBqC,UAAU,EACV1C,UAAU,EACVn2E,KAAM,CACJjU,KAAM,WAGVwgG,UAAW,CACT9U,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV8nF,SAAU,CACR4D,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVs6I,aAAc,CACZ5uD,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,iBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVu6I,aAAc,CACZ9vD,eAAgB,iBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV2gJ,SAAU,CACRl2D,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,wBAORvS,GAA+C,CAC1DznE,KAAM,CACJjU,KAAM,YACNiuF,UAAW,mBACX1D,gBAAiB,CACfrK,QAAS,CACPuK,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVmsC,MAAO,CACLu/C,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,WAGV5C,KAAM,CACJqtF,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV23E,UAAW,CACT+T,YAAa,CACXG,iBAAkB,MAClBC,iBAAkB,GAEpBrB,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV63E,WAAY,CACV6T,YAAa,CACXG,iBAAkB,MAClBC,iBAAkB,GAEpBrB,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVogF,QAAS,CACPsL,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGV0rD,OAAQ,CACNggC,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVihG,IAAK,CACHvV,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVk6E,SAAU,CACRwR,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVu8E,IAAK,CACHmP,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVi0E,IAAK,CACHyX,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WAGVqgF,SAAU,CACRoK,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOH4gJ,GACX,CACE3sI,KAAM,CACJjU,KAAM,YACNiuF,UACE,yEACF1D,gBAAiB,CACfp2E,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,iBASd4yD,GACX,CACE5sI,KAAM,CACJjU,KAAM,YACNiuF,UACE,mFACF1D,gBAAiB,CACfp2E,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,iBASd6yD,GACX,CACE7sI,KAAM,CACJjU,KAAM,YACNiuF,UACE,kFACF1D,gBAAiB,CACfp2E,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,mBASd8yD,GAAwC,CACnD9sI,KAAM,CACJjU,KAAM,YACNiuF,UAAW,YACX1D,gBAAiB,CACfga,MAAO,CACL9Z,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV0b,MAAO,CACL+uE,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVkP,KAAM,CACJu7E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVvD,OAAQ,CACNguF,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV2tC,KAAM,CACJ88C,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVghJ,cAAe,CACbv2D,eAAgB,kBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVihJ,gBAAiB,CACfx2D,eAAgB,oBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVykG,WAAY,CACVha,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVkhJ,eAAgB,CACdz2D,eAAgB,mBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVwmH,WAAY,CACV/7B,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,iCASZkzD,GAAsD,CACjEltI,KAAM,CACJjU,KAAM,YACNiuF,UAAW,0BACX1D,gBAAiB,CACfusD,UAAW,CACTrsD,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,WAGVohJ,MAAO,CACL32D,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,cAOHqhJ,GACX,CACEptI,KAAM,CACJjU,KAAM,YACNiuF,UACE,mFACF1D,gBAAiB,CACfp2E,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,kBASdqzD,GAAuC,CAClDrtI,KAAM,CACJjU,KAAM,YACNiuF,UAAW,WACX1D,gBAAiB,CACf7hC,OAAQ,CACN+hC,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVuhJ,OAAQ,CACN92D,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHwhJ,GACX,CACEvtI,KAAM,CACJjU,KAAM,YACNiuF,UACE,sFACF1D,gBAAiB,CACfp2E,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,mBASdwzD,GAAwC,CACnDxtI,KAAM,CACJjU,KAAM,YACNiuF,UAAW,YACX1D,gBAAiB,CACfga,MAAO,CACL9Z,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV82I,UAAW,CACTrsD,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV0hJ,YAAa,CACXj3D,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV2hJ,UAAW,CACTl3D,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV4hJ,cAAe,CACbn3D,eAAgB,iBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV6hJ,eAAgB,CACdp3D,eAAgB,kBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,aACN4S,MAAO,CAAEqB,KAAM,CAAEjU,KAAM,gBAOpB8hJ,GACX,CACE7tI,KAAM,CACJjU,KAAM,YACNiuF,UACE,uGACF1D,gBAAiB,CACfp2E,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,kBASd8zD,GAAuC,CAClD9tI,KAAM,CACJjU,KAAM,YACNiuF,UAAW,WACX1D,gBAAiB,CACfga,MAAO,CACL9Z,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVgiJ,SAAU,CACRv3D,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVohJ,MAAO,CACL32D,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV82I,UAAW,CACTrsD,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHiiJ,GACX,CACEhuI,KAAM,CACJjU,KAAM,YACNiuF,UACE,0GACF1D,gBAAiB,CACfp2E,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,kBASdi0D,GACX,CACEjuI,KAAM,CACJjU,KAAM,YACNiuF,UACE,0EACF1D,gBAAiB,CACfp2E,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,0BASd6V,GAAuC,CAClD7vF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,WACX1D,gBAAiB,CACf3wD,KAAM,CACJ6wD,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV0oD,OAAQ,CACNgjC,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV+jG,SAAU,CACRtZ,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVgkG,YAAa,CACXvZ,eAAgB,gBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV4hF,UAAW,CACT6I,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVikG,MAAO,CACLxZ,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVkkG,YAAa,CACXzZ,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVmZ,OAAQ,CACNuyE,YAAa,CACXG,iBAAkB,WAClBC,iBAAkB,GAEpBrB,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVoH,IAAK,CACHskF,YAAa,CACXO,SAAU,GACVF,SAAU,IAEZtB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPyzC,YAAa,CACXG,iBAAkB,WAClBC,iBAAkB,GAEpB73E,KAAM,CACJjU,KAAM,aAKdmsC,MAAO,CACLu/C,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,WAGV2zE,KAAM,CACJ8W,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,aAGV81B,QAAS,CACP41D,YAAa,CACXG,iBAAkB,WAClBC,iBAAkB,GAEpBrB,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVwyD,KAAM,CACJi4B,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHmiJ,GACX,CACEluI,KAAM,CACJjU,KAAM,YACNiuF,UACE,8FACF1D,gBAAiB,CACfp2E,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,4BASdiX,GAA+C,CAC1DjxF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,mBACX1D,gBAAiB,CACf3wD,KAAM,CACJ6wD,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV0oD,OAAQ,CACNgjC,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVokG,QAAS,CACP3Z,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV+jG,SAAU,CACRtZ,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVgkG,YAAa,CACXvZ,eAAgB,gBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV4hF,UAAW,CACT6I,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVqkG,QAAS,CACP5Z,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVsvE,UAAW,CACTmb,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV2zE,KAAM,CACJ8W,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,aAGV81B,QAAS,CACP41D,YAAa,CACXG,iBAAkB,WAClBC,iBAAkB,GAEpBrB,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHoiJ,GACX,CACEnuI,KAAM,CACJjU,KAAM,YACNiuF,UACE,4FACF1D,gBAAiB,CACfp2E,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,qBASd7hB,GAA0C,CACrDn4D,KAAM,CACJjU,KAAM,YACNiuF,UAAW,cACX1D,gBAAiB,CACfiW,UAAW,CACT9U,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVg0E,YAAa,CACXyW,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVq7E,UAAW,CACTqQ,YAAa,CACXU,QAAS,IAAIp/E,OAAO,cAEtBy9E,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV45B,KAAM,CACJ8xD,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV+3I,WAAY,CACVttD,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVg4I,UAAW,CACTvtD,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,aAGVo/E,WAAY,CACVqL,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPyzC,YAAa,CACXU,QAAS,IAAIp/E,OAAO,cAEtBiH,KAAM,CACJjU,KAAM,aAKdspC,GAAI,CACFmhD,eAAgB,KAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,UAORo0D,GACX,CACEpuI,KAAM,CACJjU,KAAM,YACNiuF,UACE,sEACF1D,gBAAiB,CACfp2E,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,cASdrgB,GAAmC,CAC9C35D,KAAM,CACJjU,KAAM,YACNiuF,UAAW,OACX1D,gBAAiB,CACf5D,OAAQ,CACN8D,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,YAGV45B,KAAM,CACJ8xD,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVq6I,WAAY,CACV5vD,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVsiJ,0BAA2B,CACzB73D,eAAgB,8BAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,aAGVuiJ,sBAAuB,CACrB93D,eAAgB,0BAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,aAGVwiJ,aAAc,CACZ/3D,eAAgB,gBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVw3E,SAAU,CACRiT,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,kBAKnBw0D,QAAS,CACPh4D,eAAgB,UAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,YAGfy0D,eAAgB,CACdj4D,eAAgB,kBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV2iJ,UAAW,CACTl4D,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,kBAGfjuF,KAAM,CACJ0rF,YAAa,CACXU,QAAS,IAAIp/E,OAAO,mBAEtBy9E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV2pD,QAAS,CACP8gC,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGV8pH,OAAQ,CACNr/B,eAAgB,SAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,WAGf20D,YAAa,CACXn4D,eAAgB,eAChBx2E,KAAM,CACJjU,KAAM,cAOH6iJ,GAAsC,CACjD5uI,KAAM,CACJjU,KAAM,YACNiuF,UAAW,UACX1D,gBAAiB,CACfu4D,WAAY,CACVr4D,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV+iJ,eAAgB,CACdt4D,eAAgB,kBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,aAGVuiJ,sBAAuB,CACrB93D,eAAgB,0BAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,aAGVgjJ,QAAS,CACPv4D,eAAgB,WAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,mBAGfjuF,KAAM,CACJ0rF,YAAa,CACXU,QAAS,IAAIp/E,OAAO,mBAEtBy9E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV2pD,QAAS,CACP8gC,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGV4iJ,YAAa,CACXn4D,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHijJ,GAA6C,CACxDhvI,KAAM,CACJjU,KAAM,YACNiuF,UAAW,iBACX1D,gBAAiB,CACfiW,UAAW,CACT9U,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVg0E,YAAa,CACXyW,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVq7E,UAAW,CACTqQ,YAAa,CACXU,QAAS,IAAIp/E,OAAO,cAEtBy9E,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV45B,KAAM,CACJ8xD,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV+3I,WAAY,CACVttD,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVg4I,UAAW,CACTvtD,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,aAGVo/E,WAAY,CACVqL,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPyzC,YAAa,CACXU,QAAS,IAAIp/E,OAAO,cAEtBiH,KAAM,CACJjU,KAAM,aAKdspC,GAAI,CACFmhD,eAAgB,KAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,wBAORi1D,GACX,CACEjvI,KAAM,CACJjU,KAAM,YACNiuF,UACE,qEACF1D,gBAAiB,CACfxK,OAAQ,CACN2L,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGViU,KAAM,CACJw2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV81B,QAAS,CACP20D,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOLmjJ,GAA4C,CACvDlvI,KAAM,CACJjU,KAAM,YACNiuF,UAAW,gBACX1D,gBAAiB,CACfvrC,QAAS,CACP0sC,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,UAChBx2E,KAAM,CACJjU,KAAM,WAGVojJ,SAAU,CACR13D,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,WAChBx2E,KAAM,CACJjU,KAAM,cAOHqjJ,GAAqC,CAChDpvI,KAAM,CACJjU,KAAM,YACNiuF,UAAW,SACX1D,gBAAiB,CACfiW,UAAW,CACT9U,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVg0E,YAAa,CACXyW,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV45B,KAAM,CACJ8xD,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV+3I,WAAY,CACVttD,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVg4I,UAAW,CACTvtD,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,aAGVo/E,WAAY,CACVqL,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPyzC,YAAa,CACXU,QAAS,IAAIp/E,OAAO,cAEtBiH,KAAM,CACJjU,KAAM,aAKdspC,GAAI,CACFmhD,eAAgB,KAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,gBAORhO,GAA2C,CACtDhsE,KAAM,CACJjU,KAAM,YACNiuF,UAAW,eACX1D,gBAAiB,CACfxK,OAAQ,CACN0K,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVu8E,IAAK,CACHmP,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVi0E,IAAK,CACHyX,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WAGV0/E,UAAW,CACT+K,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVmsC,MAAO,CACLu/C,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,cAOHsjJ,GACX,CACErvI,KAAM,CACJjU,KAAM,YACNiuF,UAAW,mDACX1D,gBAAiB,CACft2E,KAAM,CACJw2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV81B,QAAS,CACP20D,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOLujJ,GACX,CACEtvI,KAAM,CACJjU,KAAM,YACNiuF,UACE,+EACF1D,gBAAiB,CACfp2E,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,iBASdu1D,GACX,CACEvvI,KAAM,CACJjU,KAAM,YACNiuF,UACE,gFACF1D,gBAAiB,CACfp2E,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,mBASdw1D,GACX,CACExvI,KAAM,CACJjU,KAAM,YACNiuF,UACE,8EACF1D,gBAAiB,CACfp2E,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,mBASdy1D,GACX,CACEzvI,KAAM,CACJjU,KAAM,YACNiuF,UACE,kFACF1D,gBAAiB,CACfp2E,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,sBASd01D,GAA2C,CACtD1vI,KAAM,CACJjU,KAAM,YACNiuF,UAAW,eACX1D,gBAAiB,CACf8vD,WAAY,CACV5vD,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVwgG,UAAW,CACT9U,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV0oD,OAAQ,CACN+hC,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVs6I,aAAc,CACZ5uD,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,iBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVu6I,aAAc,CACZ9vD,eAAgB,iBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVspC,GAAI,CACFmhD,eAAgB,KAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,mBAGfusD,eAAgB,CACd/vD,eAAgB,kBAChBx2E,KAAM,CACJjU,KAAM,eAOHggF,GAA6C,CACxD/rE,KAAM,CACJjU,KAAM,YACNiuF,UAAW,iBACX1D,gBAAiB,CACfxK,OAAQ,CACN0K,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVu/E,YAAa,CACXkL,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVu8E,IAAK,CACHmP,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVi0E,IAAK,CACHyX,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WAGV0/E,UAAW,CACT+K,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVmsC,MAAO,CACLu/C,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,cAOH4jJ,GACX,CACE3vI,KAAM,CACJjU,KAAM,YACNiuF,UACE,+EACF1D,gBAAiB,CACfp2E,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,oBASd41D,GAAyC,CACpD5vI,KAAM,CACJjU,KAAM,YACNiuF,UAAW,aACX1D,gBAAiB,CACf8vD,WAAY,CACV5vD,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVwgG,UAAW,CACT9U,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV0oD,OAAQ,CACN+hC,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVs6I,aAAc,CACZ5uD,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,iBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVu6I,aAAc,CACZ9vD,eAAgB,iBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVspC,GAAI,CACFmhD,eAAgB,KAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,iBAGfusD,eAAgB,CACd/vD,eAAgB,kBAChBx2E,KAAM,CACJjU,KAAM,eAOH8jJ,GACX,CACE7vI,KAAM,CACJjU,KAAM,YACNiuF,UACE,wEACF1D,gBAAiB,CACfp2E,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,gBASdzH,GAAqC,CAChDvyE,KAAM,CACJjU,KAAM,YACNiuF,UAAW,SACX1D,gBAAiB,CACf5D,OAAQ,CACN8D,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,YAGVq6I,WAAY,CACV5vD,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVuiJ,sBAAuB,CACrB93D,eAAgB,0BAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,aAGVwiJ,aAAc,CACZ/3D,eAAgB,gBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV+jJ,aAAc,CACZt5D,eAAgB,gBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,aAGVgkJ,eAAgB,CACdt4D,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,mBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV4D,OAAQ,CACN6mF,eAAgB,SAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,iBAGfspD,OAAQ,CACN7rD,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV89E,SAAU,CACR2M,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGV+vH,SAAU,CACRtlC,eAAgB,WAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,gBAORg2D,GAA2C,CACtDhwI,KAAM,CACJjU,KAAM,YACNiuF,UAAW,eACX1D,gBAAiB,CACf1J,MAAO,CACL4J,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVq3D,SAAU,CACRozB,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHkkJ,GAAuC,CAClDjwI,KAAM,CACJjU,KAAM,YACNiuF,UAAW,WACX1D,gBAAiB,CACfiW,UAAW,CACT9U,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVg0E,YAAa,CACXyW,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV45B,KAAM,CACJ8xD,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV+3I,WAAY,CACVttD,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVg4I,UAAW,CACTvtD,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,aAGVo/E,WAAY,CACVqL,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPyzC,YAAa,CACXU,QAAS,IAAIp/E,OAAO,cAEtBiH,KAAM,CACJjU,KAAM,aAKdq7E,UAAW,CACTqQ,YAAa,CACXU,QAAS,IAAIp/E,OAAO,cAEtBy9E,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVspC,GAAI,CACFmhD,eAAgB,KAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,kBAORvT,GAA+C,CAC1DzmE,KAAM,CACJjU,KAAM,YACNiuF,UAAW,mBACX1D,gBAAiB,CACfhK,YAAa,CACXkK,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVwgF,eAAgB,CACdiK,eAAgB,kBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV89E,SAAU,CACR4N,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGV8gG,UAAW,CACTrW,eAAgB,aAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,QAGfvO,UAAW,CACT+K,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVmsC,MAAO,CACLu/C,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,WAGVu8E,IAAK,CACHmP,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVi0E,IAAK,CACHyX,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WAGV63E,WAAY,CACV6T,YAAa,CACXG,iBAAkB,MAClBC,iBAAkB,GAEpBrB,eAAgB,cAChBx2E,KAAM,CACJjU,KAAM,cAOHmkJ,GACX,CACElwI,KAAM,CACJjU,KAAM,YACNiuF,UAAW,qDACX1D,gBAAiB,CACfxZ,SAAU,CACR2a,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGViU,KAAM,CACJw2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV81B,QAAS,CACP20D,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVktD,OAAQ,CACNw+B,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOLokJ,GACX,CACEnwI,KAAM,CACJjU,KAAM,YACNiuF,UACE,iFACF1D,gBAAiB,CACfp2E,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,sBASdo2D,GAA2C,CACtDpwI,KAAM,CACJjU,KAAM,YACNiuF,UAAW,eACX1D,gBAAiB,CACfiW,UAAW,CACT9U,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV0oD,OAAQ,CACN+hC,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVs6I,aAAc,CACZ5uD,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,iBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVu6I,aAAc,CACZ9vD,eAAgB,iBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVspC,GAAI,CACFmhD,eAAgB,KAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,sBAORtT,GAA6C,CACxD1mE,KAAM,CACJjU,KAAM,YACNiuF,UAAW,iBACX1D,gBAAiB,CACfhO,IAAK,CACHmP,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGV8gG,UAAW,CACTrW,eAAgB,aAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,gBAGfld,SAAU,CACR0Z,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVmsC,MAAO,CACLu/C,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,WAGVi0E,IAAK,CACHyX,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,cAOHskJ,GACX,CACErwI,KAAM,CACJjU,KAAM,YACNiuF,UACE,kFACF1D,gBAAiB,CACfp2E,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,qBASd5hB,GAA0C,CACrDp4D,KAAM,CACJjU,KAAM,YACNiuF,UAAW,cACX1D,gBAAiB,CACfiW,UAAW,CACT9U,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV63I,UAAW,CACTptD,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,aAGV0oD,OAAQ,CACN+hC,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVkhF,QAAS,CACPwK,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVq3D,SAAU,CACRozB,eAAgB,WAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,mBAGfqsD,aAAc,CACZ5uD,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,iBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVu6I,aAAc,CACZ9vD,eAAgB,iBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVu8E,IAAK,CACHkO,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVmsC,MAAO,CACLs+C,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV+wE,SAAU,CACR2a,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV6gF,MAAO,CACL4J,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV89E,SAAU,CACR2M,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGV+gG,SAAU,CACRtW,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,aACN4S,MAAO,CAAEqB,KAAM,CAAEjU,KAAM,UAG3BghG,YAAa,CACXvW,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,aACN4S,MAAO,CAAEqB,KAAM,CAAEjU,KAAM,UAG3B8wE,SAAU,CACR4a,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVi0E,IAAK,CACHwW,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHssE,GAA6C,CACxDr4D,KAAM,CACJjU,KAAM,YACNiuF,UAAW,iBACX1D,gBAAiB,CACfiW,UAAW,CACT9U,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV63I,UAAW,CACTptD,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,aAGV0oD,OAAQ,CACN+hC,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVkhF,QAAS,CACPwK,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV6gF,MAAO,CACL4J,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,gBAGfqsD,aAAc,CACZ5uD,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,iBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVu6I,aAAc,CACZ9vD,eAAgB,iBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVu8E,IAAK,CACHkO,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVmsC,MAAO,CACLs+C,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV+wE,SAAU,CACR2a,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVq3D,SAAU,CACRozB,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVghG,YAAa,CACXvW,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,aACN4S,MAAO,CAAEqB,KAAM,CAAEjU,KAAM,UAG3Bi0E,IAAK,CACHwW,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHukJ,GACX,CACEtwI,KAAM,CACJjU,KAAM,YACNiuF,UACE,oFACF1D,gBAAiB,CACfp2E,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,wBASdu2D,GAAoC,CAC/CvwI,KAAM,CACJjU,KAAM,YACNiuF,UAAW,QACX1D,gBAAiB,CACfk6D,YAAa,CACXh6D,eAAgB,eAChBx2E,KAAM,CACJjU,KAAM,WAGV0kJ,UAAW,CACTj6D,eAAgB,aAChBx2E,KAAM,CACJjU,KAAM,WAGV2kJ,+BAAgC,CAC9Bl6D,eAAgB,qCAChBx2E,KAAM,CACJjU,KAAM,WAGV4kJ,qBAAsB,CACpBn6D,eAAgB,yBAChBx2E,KAAM,CACJjU,KAAM,WAGV6kJ,yBAA0B,CACxBp6D,eAAgB,8BAChBx2E,KAAM,CACJjU,KAAM,WAGV8kJ,kCAAmC,CACjCp5D,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,yCAChBx2E,KAAM,CACJjU,KAAM,WAGV+kJ,kBAAmB,CACjBt6D,eAAgB,qBAChBx2E,KAAM,CACJjU,KAAM,cAOHglJ,GACX,CACE/wI,KAAM,CACJjU,KAAM,YACNiuF,UACE,oFACF1D,gBAAiB,CACfp2E,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,cASdg3D,GAAmC,CAC9ChxI,KAAM,CACJjU,KAAM,YACNiuF,UAAW,OACX1D,gBAAiB,CACf7iE,MAAO,CACL+iE,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVklJ,UAAW,CACTz6D,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVmlJ,QAAS,CACP16D,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHolJ,GACX,CACEnxI,KAAM,CACJjU,KAAM,YACNiuF,UACE,oFACF1D,gBAAiB,CACfp2E,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,cASdo3D,GACX,CACEpxI,KAAM,CACJjU,KAAM,YACNiuF,UACE,6EACF1D,gBAAiB,CACfp2E,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,cASdq3D,GACX,CACErxI,KAAM,CACJjU,KAAM,YACNiuF,UACE,+EACF1D,gBAAiB,CACfp2E,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,cASds3D,GACX,CACEtxI,KAAM,CACJjU,KAAM,YACNiuF,UACE,4EACF1D,gBAAiB,CACfp2E,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,mBASdu3D,GAAwC,CACnDvxI,KAAM,CACJjU,KAAM,YACNiuF,UAAW,YACX1D,gBAAiB,CACf7hC,OAAQ,CACN+hC,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVylJ,gBAAiB,CACfh7D,eAAgB,mBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV0lJ,YAAa,CACXj7D,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGV2lJ,iBAAkB,CAChBl7D,eAAgB,qBAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGV4lJ,eAAgB,CACdn7D,eAAgB,kBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV6lJ,eAAgB,CACdp7D,eAAgB,kBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV8lJ,iBAAkB,CAChBr7D,eAAgB,oBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV+lJ,UAAW,CACTt7D,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVgmJ,eAAgB,CACdv7D,eAAgB,kBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVimJ,aAAc,CACZx7D,eAAgB,gBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVkmJ,aAAc,CACZz7D,eAAgB,gBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVmmJ,eAAgB,CACd17D,eAAgB,kBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVomJ,kBAAmB,CACjB37D,eAAgB,qBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVu/I,WAAY,CACV7zD,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVqmJ,iBAAkB,CAChB57D,eAAgB,qBAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVsmJ,iBAAkB,CAChB77D,eAAgB,qBAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,cAOHumJ,GACX,CACEtyI,KAAM,CACJjU,KAAM,YACNiuF,UACE,iFACF1D,gBAAiB,CACfp2E,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,cASdu4D,GACX,CACEvyI,KAAM,CACJjU,KAAM,YACNiuF,UACE,8EACF1D,gBAAiB,CACfp2E,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,cASdw4D,GACX,CACExyI,KAAM,CACJjU,KAAM,YACNiuF,UACE,4EACF1D,gBAAiB,CACfp2E,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,eASdy4D,GAAoC,CAC/CzyI,KAAM,CACJjU,KAAM,YACNiuF,UAAW,QACX1D,gBAAiB,CACf0Z,MAAO,CACLvY,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV2mJ,YAAa,CACXl8D,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,cAOH4mJ,GACX,CACE3yI,KAAM,CACJjU,KAAM,YACNiuF,UACE,2EACF1D,gBAAiB,CACfp2E,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,cASd44D,GACX,CACE5yI,KAAM,CACJjU,KAAM,YACNiuF,UACE,4EACF1D,gBAAiB,CACfp2E,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,mBASd64D,GAAwC,CACnD7yI,KAAM,CACJjU,KAAM,YACNiuF,UAAW,YACX1D,gBAAiB,CACf7hC,OAAQ,CACN+hC,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVmoF,UAAW,CACTsC,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVqmJ,iBAAkB,CAChB57D,eAAgB,qBAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGV2lJ,iBAAkB,CAChBl7D,eAAgB,qBAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVsmJ,iBAAkB,CAChB77D,eAAgB,qBAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGV+mJ,eAAgB,CACdt8D,eAAgB,kBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVgnJ,YAAa,CACXv8D,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVinJ,cAAe,CACbx8D,eAAgB,iBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVknJ,cAAe,CACbz8D,eAAgB,iBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVmnJ,gBAAiB,CACf18D,eAAgB,mBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVonJ,aAAc,CACZ38D,eAAgB,gBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVqnJ,eAAgB,CACd58D,eAAgB,mBAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVsnJ,aAAc,CACZ78D,eAAgB,iBAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVunJ,iBAAkB,CAChB98D,eAAgB,qBAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVu/I,WAAY,CACV7zD,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHwnJ,GACX,CACEvzI,KAAM,CACJjU,KAAM,YACNiuF,UACE,mFACF1D,gBAAiB,CACfp2E,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,cASdw5D,GACX,CACExzI,KAAM,CACJjU,KAAM,YACNiuF,UACE,kFACF1D,gBAAiB,CACfp2E,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,cASd6X,GAAqC,CAChD7xF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,SACX1D,gBAAiB,CACfm9D,cAAe,CACbj9D,eAAgB,kBAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,wBAGf05D,iBAAkB,CAChBl9D,eAAgB,sBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV4nJ,UAAW,CACTn9D,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV6nJ,iBAAkB,CAChBp9D,eAAgB,qBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV8nJ,YAAa,CACXr9D,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV+nJ,UAAW,CACTt9D,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,YAGVgoJ,WAAY,CACVv9D,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,YAGVioJ,WAAY,CACVx9D,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVkoJ,WAAY,CACVz9D,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVmoJ,WAAY,CACV19D,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVooJ,aAAc,CACZ39D,eAAgB,gBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVwmG,aAAc,CACZ/b,eAAgB,gBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVqoJ,YAAa,CACX59D,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,YAGVumG,YAAa,CACX9b,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHsoJ,GAAkD,CAC7Dr0I,KAAM,CACJjU,KAAM,YACNiuF,UAAW,sBACX1D,gBAAiB,CACfg+D,UAAW,CACT99D,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVwoJ,eAAgB,CACd/9D,eAAgB,kBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVyoJ,aAAc,CACZh+D,eAAgB,gBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOH0oJ,GACX,CACEz0I,KAAM,CACJjU,KAAM,YACNiuF,UACE,6EACF1D,gBAAiB,CACfp2E,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,qBASd06D,GACX,CACE10I,KAAM,CACJjU,KAAM,YACNiuF,UACE,oFACF1D,gBAAiB,CACfp2E,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,4BASd26D,GAAiD,CAC5D30I,KAAM,CACJjU,KAAM,YACNiuF,UAAW,qBACX1D,gBAAiB,CACfiW,UAAW,CACT/V,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVg0E,YAAa,CACXyW,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVq7E,UAAW,CACTqQ,YAAa,CACXU,QAAS,IAAIp/E,OAAO,cAEtBy9E,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV6oJ,SAAU,CACRp+D,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV45B,KAAM,CACJ8xD,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVo/E,WAAY,CACVqL,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPyzC,YAAa,CACXU,QAAS,IAAIp/E,OAAO,cAEtBiH,KAAM,CACJjU,KAAM,aAKdspC,GAAI,CACFmhD,eAAgB,KAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,UAOR66D,GACX,CACE70I,KAAM,CACJjU,KAAM,YACNiuF,UACE,yEACF1D,gBAAiB,CACfp2E,KAAM,CACJs2E,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,YACNiuF,UAAW,kBASd86D,GAAuC,CAClD90I,KAAM,CACJjU,KAAM,YACNiuF,UAAW,WACX1D,gBAAiB,CACf7K,UAAW,CACTgM,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV0rD,OAAQ,CACN++B,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGV0oD,OAAQ,CACN+hC,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVmjD,KAAM,CACJsnC,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,aAAc,kBAGlC67D,aAAc,CACZt9D,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,iBAChBqC,UAAU,EACV1C,UAAU,EACVn2E,KAAM,CACJjU,KAAM,WAGVu4I,UAAW,CACT7sD,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,cAChBqC,UAAU,EACV1C,UAAU,EACVn2E,KAAM,CACJjU,KAAM,WAGVipJ,UAAW,CACTx+D,eAAgB,cAChBqC,UAAU,EACV1C,UAAU,EACVn2E,KAAM,CACJjU,KAAM,cAOHkpJ,GAAgD,CAC3Dj1I,KAAM,CACJjU,KAAM,YACNiuF,UAAW,oBACX1D,gBAAiB,CACf7+B,OAAQ,CACN++B,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVg0E,YAAa,CACXyW,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVg3E,WAAY,CACV0U,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVi4I,OAAQ,CACNxtD,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV+3I,WAAY,CACVttD,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVg4I,UAAW,CACTvtD,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,aAGVu/E,YAAa,CACXmM,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV8wE,SAAU,CACR4a,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVktD,OAAQ,CACNw+B,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHmpJ,GAAmD,CAC9Dl1I,KAAM,CACJjU,KAAM,YACNiuF,UAAW,uBACX1D,gBAAiB,CACf7+B,OAAQ,CACN++B,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVg0E,YAAa,CACXyW,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVopJ,QAAS,CACP3+D,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVg3E,WAAY,CACV0U,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVi4I,OAAQ,CACNxtD,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVg4I,UAAW,CACTvtD,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,aAGVmnH,UAAW,CACTz7B,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVk4I,OAAQ,CACNxsD,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHqpJ,GAAwD,CACnEp1I,KAAM,CACJjU,KAAM,YACNiuF,UAAW,4BACX1D,gBAAiB,CACf6tD,eAAgB,CACd1sD,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,mBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVg3E,WAAY,CACV0U,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVq4I,WAAY,CACV3sD,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,eAChBx2E,KAAM,CACJjU,KAAM,WAGVooI,SAAU,CACR39C,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVs4I,WAAY,CACV7tD,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,aACN4S,MAAO,CAAEqB,KAAM,CAAEjU,KAAM,UAG3B0oD,OAAQ,CACN+hC,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV+3I,WAAY,CACVttD,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVwgG,UAAW,CACT9U,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHspJ,GAAoD,CAC/Dr1I,KAAM,CACJjU,KAAM,YACNiuF,UAAW,wBACX1D,gBAAiB,CACf7+B,OAAQ,CACN++B,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVmjD,KAAM,CACJsnC,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CACb,sBACA,mBACA,mBACA,gBACA,mBACA,iBACA,aACA,eACA,oBACA,gBACA,kBACA,iBACA,mBAINorD,UAAW,CACT7sD,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHupJ,GAA6C,CACxDt1I,KAAM,CACJjU,KAAM,YACNiuF,UAAW,iBACX1D,gBAAiB,CACfr9B,OAAQ,CACNw+B,YAAa,CACXU,QAAS,IAAIp/E,OAAO,oBAEtBy9E,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVspC,GAAI,CACFmhD,eAAgB,KAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,aACN4S,MAAO,CAAEqB,KAAM,CAAEjU,KAAM,aAOpBs/E,GAAsC,CACjDrrE,KAAM,CACJjU,KAAM,YACNiuF,UAAW,UACX1D,gBAAiB,CACfhL,YAAa,CACXkL,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV0rD,OAAQ,CACNggC,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVu8E,IAAK,CACHmP,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVi0E,IAAK,CACHyX,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WAGV8wE,SAAU,CACR2Z,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVmsC,MAAO,CACLu/C,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,WAGViuE,QAAS,CACPwc,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHmhF,GAA8C,CACzDltE,KAAM,CACJjU,KAAM,YACNiuF,UAAW,kBACX1D,gBAAiB,CACfmW,YAAa,CACXjW,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVqhF,gBAAiB,CACfqK,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,mBAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGV2gG,YAAa,CACXlW,eAAgB,eAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVuhF,gBAAiB,CACfmK,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,mBAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVwhF,eAAgB,CACdkK,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,kBAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVyhF,WAAY,CACViK,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVi0E,IAAK,CACHyX,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WAGVu8E,IAAK,CACHmP,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVmsC,MAAO,CACLu/C,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,WAGV4hF,UAAW,CACT6I,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV4gG,YAAa,CACXnW,eAAgB,eAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,iBAOR5L,GAA+C,CAC1DpuE,KAAM,CACJjU,KAAM,YACNiuF,UAAW,mBACX1D,gBAAiB,CACfzI,UAAW,CACT2I,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV+hF,OAAQ,CACN0I,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV0rD,OAAQ,CACNggC,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVi0E,IAAK,CACHyX,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WAGVu8E,IAAK,CACHmP,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVmsC,MAAO,CACLu/C,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV4hF,UAAW,CACT6I,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVwD,MAAO,CACLkoF,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHsiF,GAAgD,CAC3DruE,KAAM,CACJjU,KAAM,YACNiuF,UAAW,oBACX1D,gBAAiB,CACfzI,UAAW,CACT2I,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVuiF,KAAM,CACJkI,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV0rD,OAAQ,CACNggC,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVi0E,IAAK,CACHyX,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WAGVu8E,IAAK,CACHmP,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVmsC,MAAO,CACLu/C,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV4hF,UAAW,CACT6I,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVwD,MAAO,CACLkoF,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHw7E,GAAqD,CAChEvnE,KAAM,CACJjU,KAAM,YACNiuF,UAAW,yBACX1D,gBAAiB,CACfzI,UAAW,CACT2I,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV+hF,OAAQ,CACN0I,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGViuE,QAAS,CACPwc,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVwD,MAAO,CACLkoF,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVk5B,OAAQ,CACNuxD,eAAgB,SAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,mBAGfrM,UAAW,CACT6I,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVi0E,IAAK,CACHyX,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WAGVu8E,IAAK,CACHmP,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVmsC,MAAO,CACLu/C,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,WAGV6gG,cAAe,CACbpW,eAAgB,iBAChBx2E,KAAM,CACJjU,KAAM,cAOH6hF,GAAmD,CAC9D5tE,KAAM,CACJjU,KAAM,YACNiuF,UAAW,uBACX1D,gBAAiB,CACfzI,UAAW,CACT2I,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV+hF,OAAQ,CACN0I,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVgiF,qBAAsB,CACpB0J,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,yBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGViiF,qBAAsB,CACpByJ,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,yBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVi0E,IAAK,CACHyX,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WAGVu8E,IAAK,CACHmP,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVmsC,MAAO,CACLu/C,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHkiF,GAAiD,CAC5DjuE,KAAM,CACJjU,KAAM,YACNiuF,UAAW,qBACX1D,gBAAiB,CACfzI,UAAW,CACT2I,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV+hF,OAAQ,CACN0I,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGViuE,QAAS,CACPwc,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVi0E,IAAK,CACHyX,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WAGVu8E,IAAK,CACHmP,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVmsC,MAAO,CACLu/C,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,WAGVmiF,IAAK,CACHsI,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHoiF,GAA6C,CACxDnuE,KAAM,CACJjU,KAAM,YACNiuF,UAAW,iBACX1D,gBAAiB,CACfzI,UAAW,CACT2I,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV+hF,OAAQ,CACN0I,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGViuE,QAAS,CACPwc,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVi0E,IAAK,CACHyX,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WAGVu8E,IAAK,CACHmP,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVmsC,MAAO,CACLu/C,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,WAGVmiF,IAAK,CACHsI,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHwiF,GAA8C,CACzDvuE,KAAM,CACJjU,KAAM,YACNiuF,UAAW,kBACX1D,gBAAiB,CACfzI,UAAW,CACT2I,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV+hF,OAAQ,CACN0I,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVgiF,qBAAsB,CACpB0J,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,yBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGViiF,qBAAsB,CACpByJ,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,yBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVi0E,IAAK,CACHyX,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WAGVu8E,IAAK,CACHmP,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVmsC,MAAO,CACLu/C,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOH0iF,GAAoD,CAC/DzuE,KAAM,CACJjU,KAAM,YACNiuF,UAAW,wBACX1D,gBAAiB,CACfzI,UAAW,CACT2I,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV+hF,OAAQ,CACN0I,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGViuE,QAAS,CACPwc,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVi0E,IAAK,CACHyX,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WAGVu8E,IAAK,CACHmP,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVmsC,MAAO,CACLu/C,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,cAOHgoG,GAAoD,CAC/D/zF,KAAM,CACJjU,KAAM,YACNiuF,UAAW,wBACX1D,gBAAiB,CACfzI,UAAW,CACT2I,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV+hF,OAAQ,CACN0I,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV0hF,qBAAsB,CACpB+I,eAAgB,yBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,aAKd2hF,qBAAsB,CACpB8I,eAAgB,yBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,aAKd4hF,UAAW,CACT6I,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVwD,MAAO,CACLkoF,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGViuE,QAAS,CACPwc,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVi0E,IAAK,CACHyX,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WAGVu8E,IAAK,CACHmP,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVmsC,MAAO,CACLu/C,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,cAOH46E,GAA4C,CACvD3mE,KAAM,CACJjU,KAAM,YACNiuF,UAAW,gBACX1D,gBAAiB,CACfxZ,SAAU,CACR0Z,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV6gF,MAAO,CACL4J,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV89E,SAAU,CACR4N,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGV+gG,SAAU,CACRtW,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,QAGf+S,YAAa,CACXvW,eAAgB,eAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,gBAGf1R,IAAK,CACHmP,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVi0E,IAAK,CACHyX,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WAGV8wE,SAAU,CACR2Z,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVmsC,MAAO,CACLu/C,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,cAOH66E,GAA8C,CACzD5mE,KAAM,CACJjU,KAAM,YACNiuF,UAAW,kBACX1D,gBAAiB,CACfrJ,QAAS,CACPuJ,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVq3D,SAAU,CACRozB,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVghG,YAAa,CACXvW,eAAgB,eAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,gBAGf1R,IAAK,CACHmP,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVi0E,IAAK,CACHyX,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WAGV+wE,SAAU,CACR0Z,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVmsC,MAAO,CACLu/C,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,cAOHy/E,GAA6C,CACxDxrE,KAAM,CACJjU,KAAM,YACNiuF,UAAW,iBACX1D,gBAAiB,CACf5K,aAAc,CACZ8K,eAAgB,gBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVu8E,IAAK,CACHmP,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVi0E,IAAK,CACHyX,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WAGV0/E,UAAW,CACT+K,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVmsC,MAAO,CACLu/C,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,cAOH24E,GAA6C,CACxD1kE,KAAM,CACJjU,KAAM,YACNiuF,UAAW,iBACX1D,gBAAiB,CACfjK,SAAU,CACRmK,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVmsC,MAAO,CACLu/C,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,WAGVg3E,WAAY,CACVyT,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV63E,WAAY,CACV6T,YAAa,CACXG,iBAAkB,MAClBC,iBAAkB,GAEpBrB,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVu8E,IAAK,CACHmP,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVi0E,IAAK,CACHyX,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WAGV0rD,OAAQ,CACNggC,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVihG,IAAK,CACHvV,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVk6E,SAAU,CACRwR,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVqgF,SAAU,CACRoK,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHooG,GAAyC,CACpDn0F,KAAM,CACJjU,KAAM,YACNiuF,UAAW,aACX1D,gBAAiB,CACfrK,QAAS,CACPuK,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVmsC,MAAO,CACLu/C,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,WAGV5C,KAAM,CACJqtF,eAAgB,OAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV23E,UAAW,CACT+T,YAAa,CACXG,iBAAkB,MAClBC,iBAAkB,GAEpBrB,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV63E,WAAY,CACV6T,YAAa,CACXG,iBAAkB,MAClBC,iBAAkB,GAEpBrB,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVihG,IAAK,CACHvV,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVk6E,SAAU,CACRwR,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVu8E,IAAK,CACHmP,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVi0E,IAAK,CACHyX,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WAGVqgF,SAAU,CACRoK,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV2iF,QAAS,CACP+I,YAAa,CACXU,QAAS,IAAIp/E,OAAO,2BAEtBy9E,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHqoG,GAAuC,CAClDp0F,KAAM,CACJjU,KAAM,YACNiuF,UAAW,WACX1D,gBAAiB,CACf3H,KAAM,CACJ6H,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV63E,WAAY,CACV6T,YAAa,CACXG,iBAAkB,MAClBC,iBAAkB,GAEpBrB,eAAgB,cAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVihG,IAAK,CACHvV,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVk6E,SAAU,CACRwR,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVu8E,IAAK,CACHmP,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVi0E,IAAK,CACHyX,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,MAChBx2E,KAAM,CACJjU,KAAM,WAGV6iF,SAAU,CACR4H,eAAgB,YAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVspC,GAAI,CACFmhD,eAAgB,KAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,gBAOR7S,GAA0C,CACrDnnE,KAAM,CACJjU,KAAM,YACNiuF,UAAW,cACX1D,gBAAiB,CACfzH,QAAS,CACP2H,eAAgB,WAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVu8E,IAAK,CACHmP,YAAa,CACXI,iBAAkB,GAEpBrB,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CAEJjU,KAAM,WAGVmsC,MAAO,CACLu/C,YAAa,CACXG,iBAAkB,oBAClBC,iBAAkB,GAEpBrB,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,WAGVspC,GAAI,CACFmhD,eAAgB,KAChBx2E,KAAM,CACJjU,KAAM,YACNiuF,UAAW,gBAORu7D,GACX,CACEv1I,KAAM,CACJjU,KAAM,YACNiuF,UACE,uFACF1D,gBAAiB,IACZotD,GACA1jI,KAAKs2E,mBACLiuD,GAAkBvkI,KAAKs2E,mBAKrBk/D,GACX,CACEx1I,KAAM,CACJjU,KAAM,YACNiuF,UACE,wFACF1D,gBAAiB,IACZmuD,GACAzkI,KAAKs2E,mBACLiuD,GAAkBvkI,KAAKs2E,mBAKrBm/D,GACX,CACEz1I,KAAM,CACJjU,KAAM,YACNiuF,UACE,wFACF1D,gBAAiB,IACZiuD,GAAkBvkI,KAAKs2E,mBACvBquD,GACA3kI,KAAKs2E,mBAKHo/D,GACX,CACE11I,KAAM,CACJjU,KAAM,YACNiuF,UACE,oFACF1D,gBAAiB,IACZ2uD,GACAjlI,KAAKs2E,mBACLiuD,GAAkBvkI,KAAKs2E,mBAKrBq/D,GACX,CACE31I,KAAM,CACJjU,KAAM,YACNiuF,UACE,wFACF1D,gBAAiB,IACZ4vD,GACAlmI,KAAKs2E,mBACLiuD,GAAkBvkI,KAAKs2E,mBAKrBs/D,GACX,CACE51I,KAAM,CACJjU,KAAM,YACNiuF,UACE,0FACF1D,gBAAiB,IACZmwD,GACAzmI,KAAKs2E,mBACLiuD,GAAkBvkI,KAAKs2E,mBAKrBu/D,GACX,CACE71I,KAAM,CACJjU,KAAM,YACNiuF,UACE,kEACF1D,gBAAiB,IACZwzD,GACA9pI,KAAKs2E,mBACLiuD,GAAkBvkI,KAAKs2E,mBAKrBw/D,GACX,CACE91I,KAAM,CACJjU,KAAM,YACNiuF,UACE,qFACF1D,gBAAiB,IACZ8zD,GACApqI,KAAKs2E,mBACLiuD,GAAkBvkI,KAAKs2E,mBAKrBy/D,GACX,CACE/1I,KAAM,CACJjU,KAAM,YACNiuF,UACE,qGACF1D,gBAAiB,IACZk0D,GACAxqI,KAAKs2E,mBACLiuD,GAAkBvkI,KAAKs2E,mBAKrB0/D,GACX,CACEh2I,KAAM,CACJjU,KAAM,YACNiuF,UACE,iFACF1D,gBAAiB,IACZo0D,GACA1qI,KAAKs2E,mBACLiuD,GAAkBvkI,KAAKs2E,mBAKrB2/D,GACX,CACEj2I,KAAM,CACJjU,KAAM,YACNiuF,UACE,qFACF1D,gBAAiB,IACZs0D,GACA5qI,KAAKs2E,mBACLiuD,GAAkBvkI,KAAKs2E,mBAKrB4/D,GACX,CACEl2I,KAAM,CACJjU,KAAM,YACNiuF,UACE,gEACF1D,gBAAiB,IACZw0D,GACA9qI,KAAKs2E,mBACLiuD,GAAkBvkI,KAAKs2E,mBAKrB6/D,GACX,CACEn2I,KAAM,CACJjU,KAAM,YACNiuF,UACE,kFACF1D,gBAAiB,IACZ80D,GACAprI,KAAKs2E,mBACLiuD,GAAkBvkI,KAAKs2E,mBAKrB8/D,GACX,CACEp2I,KAAM,CACJjU,KAAM,YACNiuF,UACE,kGACF1D,gBAAiB,IACZiuD,GAAkBvkI,KAAKs2E,mBACvBm1D,GACAzrI,KAAKs2E,mBAKH+/D,GACX,CACEr2I,KAAM,CACJjU,KAAM,YACNiuF,UACE,mEACF1D,gBAAiB,IACZq1D,GACA3rI,KAAKs2E,mBACLiuD,GAAkBvkI,KAAKs2E,mBAKrBggE,GACX,CACEt2I,KAAM,CACJjU,KAAM,YACNiuF,UACE,0EACF1D,gBAAiB,IACZ21D,GACAjsI,KAAKs2E,mBACLiuD,GAAkBvkI,KAAKs2E,mBAKrBigE,GACX,CACEv2I,KAAM,CACJjU,KAAM,YACNiuF,UACE,wEACF1D,gBAAiB,IACZ61D,GACAnsI,KAAKs2E,mBACLiuD,GAAkBvkI,KAAKs2E,mBAKrBkgE,GACX,CACEx2I,KAAM,CACJjU,KAAM,YACNiuF,UACE,oEACF1D,gBAAiB,IACZq2D,GACA3sI,KAAKs2E,mBACLiuD,GAAkBvkI,KAAKs2E,mBAKrBmgE,GACX,CACEz2I,KAAM,CACJjU,KAAM,YACNiuF,UACE,6EACF1D,gBAAiB,IACZs2D,GACA5sI,KAAKs2E,mBACLiuD,GAAkBvkI,KAAKs2E,mBAKrBogE,GACX,CACE12I,KAAM,CACJjU,KAAM,YACNiuF,UACE,4EACF1D,gBAAiB,IACZu2D,GACA7sI,KAAKs2E,mBACLiuD,GAAkBvkI,KAAKs2E,mBAKrBqgE,GACX,CACE32I,KAAM,CACJjU,KAAM,YACNiuF,UACE,8EACF1D,gBAAiB,IACZ82D,GACAptI,KAAKs2E,mBACLiuD,GAAkBvkI,KAAKs2E,mBAKrBsgE,GACX,CACE52I,KAAM,CACJjU,KAAM,YACNiuF,UACE,gFACF1D,gBAAiB,IACZi3D,GACAvtI,KAAKs2E,mBACLiuD,GAAkBvkI,KAAKs2E,mBAKrBugE,GACX,CACE72I,KAAM,CACJjU,KAAM,YACNiuF,UACE,kGACF1D,gBAAiB,IACZu3D,GACA7tI,KAAKs2E,mBACLiuD,GAAkBvkI,KAAKs2E,mBAKrBwgE,GACX,CACE92I,KAAM,CACJjU,KAAM,YACNiuF,UACE,qGACF1D,gBAAiB,IACZ03D,GACAhuI,KAAKs2E,mBACLiuD,GAAkBvkI,KAAKs2E,mBAKrBygE,GACX,CACE/2I,KAAM,CACJjU,KAAM,YACNiuF,UACE,oEACF1D,gBAAiB,IACZ23D,GACAjuI,KAAKs2E,mBACLiuD,GAAkBvkI,KAAKs2E,mBAKrB0gE,GACX,CACEh3I,KAAM,CACJjU,KAAM,YACNiuF,UACE,yFACF1D,gBAAiB,IACZ43D,GACAluI,KAAKs2E,mBACLiuD,GAAkBvkI,KAAKs2E,mBAKrB2gE,GACX,CACEj3I,KAAM,CACJjU,KAAM,YACNiuF,UACE,uFACF1D,gBAAiB,IACZ63D,GACAnuI,KAAKs2E,mBACLiuD,GAAkBvkI,KAAKs2E,mBAKrB4gE,GACX,CACEl3I,KAAM,CACJjU,KAAM,YACNiuF,UACE,iEACF1D,gBAAiB,IACZ83D,GACApuI,KAAKs2E,mBACLiuD,GAAkBvkI,KAAKs2E,mBAKrB6gE,GACX,CACEn3I,KAAM,CACJjU,KAAM,YACNiuF,UACE,wEACF1D,gBAAiB,IACZg5D,GACAtvI,KAAKs2E,mBACLiuD,GAAkBvkI,KAAKs2E,mBAKrB8gE,GACX,CACEp3I,KAAM,CACJjU,KAAM,YACNiuF,UACE,yEACF1D,gBAAiB,IACZk5D,GACAxvI,KAAKs2E,mBACLiuD,GAAkBvkI,KAAKs2E,mBAKrB+gE,GACX,CACEr3I,KAAM,CACJjU,KAAM,YACNiuF,UACE,2EACF1D,gBAAiB,IACZm5D,GACAzvI,KAAKs2E,mBACLiuD,GAAkBvkI,KAAKs2E,mBAKrBghE,GACX,CACEt3I,KAAM,CACJjU,KAAM,YACNiuF,UACE,0EACF1D,gBAAiB,IACZq5D,GACA3vI,KAAKs2E,mBACLiuD,GAAkBvkI,KAAKs2E,mBAKrBihE,GACX,CACEv3I,KAAM,CACJjU,KAAM,YACNiuF,UACE,mEACF1D,gBAAiB,IACZu5D,GACA7vI,KAAKs2E,mBACLiuD,GAAkBvkI,KAAKs2E,mBAKrBkhE,GACX,CACEx3I,KAAM,CACJjU,KAAM,YACNiuF,UACE,4EACF1D,gBAAiB,IACZ65D,GACAnwI,KAAKs2E,mBACLiuD,GAAkBvkI,KAAKs2E,mBAKrBmhE,GACX,CACEz3I,KAAM,CACJjU,KAAM,YACNiuF,UACE,2EACF1D,gBAAiB,IACZ+5D,GACArwI,KAAKs2E,mBACLiuD,GAAkBvkI,KAAKs2E,mBAKrBohE,GACX,CACE13I,KAAM,CACJjU,KAAM,YACNiuF,UACE,6EACF1D,gBAAiB,IACZg6D,GACAtwI,KAAKs2E,mBACLiuD,GAAkBvkI,KAAKs2E,mBAKrBqhE,GACX,CACE33I,KAAM,CACJjU,KAAM,YACNiuF,UACE,8EACF1D,gBAAiB,IACZy6D,GACA/wI,KAAKs2E,mBACLiuD,GAAkBvkI,KAAKs2E,mBAKrBshE,GACX,CACE53I,KAAM,CACJjU,KAAM,YACNiuF,UACE,8EACF1D,gBAAiB,IACZ66D,GACAnxI,KAAKs2E,mBACLiuD,GAAkBvkI,KAAKs2E,mBAKrBuhE,GACX,CACE73I,KAAM,CACJjU,KAAM,YACNiuF,UACE,uEACF1D,gBAAiB,IACZ86D,GACApxI,KAAKs2E,mBACLiuD,GAAkBvkI,KAAKs2E,mBAKrBwhE,GACX,CACE93I,KAAM,CACJjU,KAAM,YACNiuF,UACE,yEACF1D,gBAAiB,IACZ+6D,GACArxI,KAAKs2E,mBACLiuD,GAAkBvkI,KAAKs2E,mBAKrByhE,GACX,CACE/3I,KAAM,CACJjU,KAAM,YACNiuF,UACE,qEACF1D,gBAAiB,IACZg7D,GACAtxI,KAAKs2E,mBACLiuD,GAAkBvkI,KAAKs2E,mBAKrB0hE,GACX,CACEh4I,KAAM,CACJjU,KAAM,YACNiuF,UACE,2EACF1D,gBAAiB,IACZg8D,GACAtyI,KAAKs2E,mBACLiuD,GAAkBvkI,KAAKs2E,mBAKrB2hE,GACX,CACEj4I,KAAM,CACJjU,KAAM,YACNiuF,UACE,wEACF1D,gBAAiB,IACZi8D,GACAvyI,KAAKs2E,mBACLiuD,GAAkBvkI,KAAKs2E,mBAKrB4hE,GACX,CACEl4I,KAAM,CACJjU,KAAM,YACNiuF,UACE,sEACF1D,gBAAiB,IACZk8D,GACAxyI,KAAKs2E,mBACLiuD,GAAkBvkI,KAAKs2E,mBAKrB6hE,GACX,CACEn4I,KAAM,CACJjU,KAAM,YACNiuF,UACE,qEACF1D,gBAAiB,IACZq8D,GACA3yI,KAAKs2E,mBACLiuD,GAAkBvkI,KAAKs2E,mBAKrB8hE,GACX,CACEp4I,KAAM,CACJjU,KAAM,YACNiuF,UACE,qEACF1D,gBAAiB,IACZs8D,GACA5yI,KAAKs2E,mBACLiuD,GAAkBvkI,KAAKs2E,mBAKrB+hE,GACX,CACEr4I,KAAM,CACJjU,KAAM,YACNiuF,UACE,8EACF1D,gBAAiB,IACZi9D,GACAvzI,KAAKs2E,mBACLiuD,GAAkBvkI,KAAKs2E,mBAKrBgiE,GACX,CACEt4I,KAAM,CACJjU,KAAM,YACNiuF,UACE,6EACF1D,gBAAiB,IACZk9D,GACAxzI,KAAKs2E,mBACLiuD,GAAkBvkI,KAAKs2E,mBAKrBiiE,GACX,CACEv4I,KAAM,CACJjU,KAAM,YACNiuF,UACE,wEACF1D,gBAAiB,IACZm+D,GACAz0I,KAAKs2E,mBACLiuD,GAAkBvkI,KAAKs2E,mBAKrBkiE,GACX,CACEx4I,KAAM,CACJjU,KAAM,YACNiuF,UACE,8EACF1D,gBAAiB,IACZo+D,GACA10I,KAAKs2E,mBACLiuD,GAAkBvkI,KAAKs2E,mBAKrBmiE,GACX,CACEz4I,KAAM,CACJjU,KAAM,YACNiuF,UACE,oEACF1D,gBAAiB,IACZu+D,GACA70I,KAAKs2E,mBACLiuD,GAAkBvkI,KAAKs2E,mBAKrBoiE,GAA+C,CAC1D14I,KAAM,CACJjU,KAAM,YACNiuF,UAAW,mBACX1D,gBAAiB,IACZ3K,GAAY3rE,KAAKs2E,mBACjB24D,GAAmEjvI,KACnEs2E,mBAKIqiE,GAA+C,CAC1D34I,KAAM,CACJjU,KAAM,YACNiuF,UAAW,mBACX1D,gBAAiB,IACZuZ,GAAS7vF,KAAKs2E,gBACjBsiE,kBAAmB,CACjBpiE,eAAgB,qBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVuoB,MAAO,CACLmjE,YAAa,CACXU,QAAS,IAAIp/E,OAAO,cAEtBy9E,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV8sJ,iBAAkB,CAChBriE,eAAgB,qBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV+sJ,kBAAmB,CACjBtiE,eAAgB,qBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHgtJ,GAAiD,CAC5D/4I,KAAM,CACJjU,KAAM,YACNiuF,UAAW,qBACX1D,gBAAiB,IACZ2a,GAAiBjxF,KAAKs2E,gBACzB0iE,gBAAiB,CACfxiE,eAAgB,oBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGV+sJ,kBAAmB,CACjBtiE,eAAgB,qBAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVihG,IAAK,CACHxW,eAAgB,MAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,WAGVuoB,MAAO,CACLmjE,YAAa,CACXU,QAAS,IAAIp/E,OAAO,cAEtBy9E,eAAgB,QAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,cAOHktJ,GAAuC,CAClDj5I,KAAM,CACJjU,KAAM,YACNiuF,UAAW,WACX1D,gBAAiB,IACZtK,GAAahsE,KAAKs2E,mBAClB+4D,GAAiDrvI,KAAKs2E,mBAKlD4iE,GAAyC,CACpDl5I,KAAM,CACJjU,KAAM,YACNiuF,UAAW,aACX1D,gBAAiB,IACZ7P,GAAiBzmE,KAAKs2E,mBACtB45D,GAAmDlwI,KACnDs2E,mBAKF,IAAI8H,GAAiB,CAC1B,gCAAiC8O,ICviT5B,MAAMm0C,WAAmB5qC,GAQ9BppG,WAAAA,CAAY+oG,EAAet4E,GAAoC,IAAA4gD,EAAAg4B,EAC7D,QAAc52F,IAAVs2F,EACF,MAAM,IAAIhtG,MAAM,0BAIb00B,IACHA,EAAU,CAAC,GAEb,MAIM64E,EAAiB,mCACjBroC,EACJxwC,EAAQ0wC,kBAAoB1wC,EAAQ0wC,iBAAiBF,gBACjD,GAAGxwC,EAAQ0wC,iBAAiBF,mBAAmBqoC,IAC/C,GAAGA,IAUT5rF,MAR4B,CAT1B49E,mBAAoB,qCAWjB7qE,EACH0wC,iBAAkB,CAChBF,mBAEFu6B,SAA6C,QAArCnqB,EAAkB,QAAlBg4B,EAAE54E,EAAQ+qE,gBAAQ,IAAA6N,EAAAA,EAAI54E,EAAQsoE,eAAO,IAAA1nB,EAAAA,EAAI,YAInDzvE,KAAKmnG,MAAQA,CACf,CAOA+iD,oBAAAA,CACE1tE,EACA3tD,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAE1d,YAAW3tD,WACbs7H,GAEJ,CAOAC,oBAAAA,CACE5tE,EACA3tD,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAE1d,YAAW3tD,WACbw7H,GAEJ,CAOAC,sBAAAA,CACE9tE,EACA3tD,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAE1d,YAAW3tD,WACb07H,GAEJ,CAOAC,kBAAAA,CACEhuE,EACA3tD,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAE1d,YAAW3tD,WACb47H,GAEJ,CAOAC,oBAAAA,CACEluE,EACA3tD,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAE1d,YAAW3tD,WACb87H,GAEJ,CAOAC,kBAAAA,CACEpuE,EACA3tD,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAE1d,YAAW3tD,WACbg8H,GAEJ,CAOAC,2BAAAA,CACEtuE,EACA3tD,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAE1d,YAAW3tD,WACbk8H,GAEJ,CAMAC,wBAAAA,CACEn8H,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAErrE,WACFo8H,GAEJ,CAOAC,0BAAAA,CACEp3E,EACAjlD,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAEpmB,aAAYjlD,WACds8H,GAEJ,CAQAC,uBAAAA,CACEt3E,EACAwnE,EACAzsH,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAEpmB,aAAYwnE,aAAYzsH,WAC1Bw8H,GAEJ,CAOAC,uBAAAA,CACEx3E,EACAjlD,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAEpmB,aAAYjlD,WACd08H,GAEJ,CAQAC,mBAAAA,CACE13E,EACAmhE,EACApmH,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAEpmB,aAAYmhE,UAASpmH,WACvB48H,GAEJ,CAOAC,0BAAAA,CACE53E,EACAjlD,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAEpmB,aAAYjlD,WACd88H,GAEJ,CAOAC,mBAAAA,CACEhrJ,EACAiuB,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAEt5F,KAAIiuB,WACNg9H,GAEJ,CAMAC,mBAAAA,CACEj9H,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAErrE,WACFk9H,GAEJ,CAMAC,kBAAAA,CACEn9H,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAErrE,WACFo9H,GAEJ,CAOAC,uBAAAA,CACEp4E,EACAjlD,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAEpmB,aAAYjlD,WACds9H,GAEJ,CAQAC,6BAAAA,CACEt4E,EACA0I,EACA3tD,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAEpmB,aAAY0I,YAAW3tD,WACzBw9H,GAEJ,CAQAC,oCAAAA,CACEx4E,EACA0I,EACA3tD,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAEpmB,aAAY0I,YAAW3tD,WACzB09H,GAEJ,CAOAC,iBAAAA,CACE5rJ,EACAiuB,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAEt5F,KAAIiuB,WACN49H,GAEJ,CAMAC,WAAAA,CACE79H,GAEA,OAAO7uB,KAAKk6F,qBAAqB,CAAErrE,WAAW89H,GAChD,CAOAC,UAAAA,CACEhsJ,EACAiuB,GAEA,OAAO7uB,KAAKk6F,qBAAqB,CAAEt5F,KAAIiuB,WAAWg+H,GACpD,CAMAC,gBAAAA,CACEj+H,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAErrE,WACFk+H,GAEJ,CAMAC,eAAAA,CACEn+H,GAEA,OAAO7uB,KAAKk6F,qBAAqB,CAAErrE,WAAWo+H,GAChD,CAOAj5E,WAAAA,CACEpzE,EACAiuB,GAEA,OAAO7uB,KAAKk6F,qBAAqB,CAAEt5F,KAAIiuB,WAAWw5E,GACpD,CAMA6kD,WAAAA,CACEr+H,GAEA,OAAO7uB,KAAKk6F,qBAAqB,CAAErrE,WAAWs+H,GAChD,CAOAC,uBAAAA,CACEt5E,EACAjlD,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAEpmB,aAAYjlD,WACdw+H,GAEJ,CAMAC,SAAAA,CAAUz+H,GACR,OAAO7uB,KAAKk6F,qBAAqB,CAAErrE,WAAW0+H,GAChD,CAMAC,WAAAA,CACE3+H,GAEA,OAAO7uB,KAAKk6F,qBAAqB,CAAErrE,WAAW4+H,GAChD,CAMAC,YAAAA,CACE7+H,GAEA,OAAO7uB,KAAKk6F,qBAAqB,CAAErrE,WAAW8+H,GAChD,CAOAC,WAAAA,CACEpoG,EACA32B,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAE10C,SAAQ32B,WACVg/H,GAEJ,CAMAC,aAAAA,CACEj/H,GAEA,OAAO7uB,KAAKk6F,qBAAqB,CAAErrE,WAAWk/H,GAChD,CAOAC,YAAAA,CACEpa,EACA/kH,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAE05C,YAAW/kH,WACbo/H,GAEJ,CAOAC,qBAAAA,CACEta,EACA/kH,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAE05C,YAAW/kH,WACbs/H,GAEJ,CAOAC,wBAAAA,CACExa,EACA/kH,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAE05C,YAAW/kH,WACbw/H,GAEJ,CAMAC,YAAAA,CACEz/H,GAEA,OAAO7uB,KAAKk6F,qBAAqB,CAAErrE,WAAW0/H,GAChD,CAOAl8E,WAAAA,CACEwhE,EACAhlH,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAE25C,YAAWhlH,WACb2/H,GAEJ,CAOAC,sBAAAA,CACE5a,EACAhlH,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAE25C,YAAWhlH,WACb6/H,GAEJ,CAOAC,aAAAA,CACEj4H,EACA7H,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAExjE,OAAM7H,WACR+/H,GAEJ,CAOA18E,yBAAAA,CACEx7C,EACA7H,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAExjE,OAAM7H,WACRggI,GAEJ,CAMAC,QAAAA,CAASjgI,GACP,OAAO7uB,KAAKk6F,qBAAqB,CAAErrE,WAAWkgI,GAChD,CAMAC,gBAAAA,CACEngI,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAErrE,WACFogI,GAEJ,CAOAC,cAAAA,CACEtuJ,EACAiuB,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAEt5F,KAAIiuB,WACNsgI,GAEJ,CAOAC,oBAAAA,CACExuJ,EACAiuB,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAEt5F,KAAIiuB,WACNwgI,GAEJ,CAMAC,aAAAA,CACEzgI,GAEA,OAAO7uB,KAAKk6F,qBAAqB,CAAErrE,WAAW0gI,GAChD,CAOAt7E,OAAAA,CACErzE,EACAiuB,GAEA,OAAO7uB,KAAKk6F,qBAAqB,CAAEt5F,KAAIiuB,WAAW2gI,GACpD,CAOAC,aAAAA,CACE7uJ,EACAiuB,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAEt5F,KAAIiuB,WACN6gI,GAEJ,CAOAC,gBAAAA,CACE/uJ,EACAiuB,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAEt5F,KAAIiuB,WACN+gI,GAEJ,CAOAC,cAAAA,CACEjvJ,EACAiuB,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAEt5F,KAAIiuB,WACNihI,GAEJ,CAMAC,UAAAA,CAAWlhI,GACT,OAAO7uB,KAAKk6F,qBAAqB,CAAErrE,WAAWmhI,GAChD,CAOAC,SAAAA,CACErvJ,EACAiuB,GAEA,OAAO7uB,KAAKk6F,qBAAqB,CAAEt5F,KAAIiuB,WAAWqhI,GACpD,CAOAC,gBAAAA,CACEvvJ,EACAiuB,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAEt5F,KAAIiuB,WACNuhI,GAEJ,CAOAC,gBAAAA,CACEzvJ,EACAiuB,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAEt5F,KAAIiuB,WACNyhI,GAEJ,CAOAC,kBAAAA,CACE3vJ,EACAiuB,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAEt5F,KAAIiuB,WACN2hI,GAEJ,CAMAC,QAAAA,CAAS5hI,GACP,OAAO7uB,KAAKk6F,qBAAqB,CAAErrE,WAAW6hI,GAChD,CAMAC,sBAAAA,CACE9hI,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAErrE,WACF+hI,GAEJ,CAMAC,qBAAAA,CACEhiI,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAErrE,WACFiiI,GAEJ,CAMAC,cAAAA,CACEliI,GAEA,OAAO7uB,KAAKk6F,qBAAqB,CAAErrE,WAAWmiI,GAChD,CAMAC,iBAAAA,CACEpiI,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAErrE,WACFqiI,GAEJ,CAMAC,aAAAA,CACEtiI,GAEA,OAAO7uB,KAAKk6F,qBAAqB,CAAErrE,WAAWuiI,GAChD,CAMAC,kBAAAA,CACExiI,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAErrE,WACFyiI,GAEJ,CAMAC,gBAAAA,CACE1iI,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAErrE,WACF2iI,GAEJ,CAMAC,aAAAA,CACE5iI,GAEA,OAAO7uB,KAAKk6F,qBAAqB,CAAErrE,WAAW6iI,GAChD,CAMAC,aAAAA,CACE9iI,GAEA,OAAO7uB,KAAKk6F,qBAAqB,CAAErrE,WAAW+iI,GAChD,CAMAC,aAAAA,CACEhjI,GAEA,OAAO7uB,KAAKk6F,qBAAqB,CAAErrE,WAAWijI,GAChD,CAMAC,qBAAAA,CACEljI,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAErrE,WACFmjI,GAEJ,CAMAC,oBAAAA,CACEpjI,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAErrE,WACFqjI,GAEJ,CAMAlnD,SAAAA,CAAUn8E,GACR,OAAO7uB,KAAKk6F,qBAAqB,CAAErrE,WAAWo8E,GAChD,CAMAknD,eAAAA,CACEtjI,GAEA,OAAO7uB,KAAKk6F,qBAAqB,CAAErrE,WAAWujI,GAChD,CAMAC,oBAAAA,CACExjI,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAErrE,WACFyjI,GAEJ,CAMAC,sBAAAA,CACE1jI,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAErrE,WACF2jI,GAEJ,CAMAC,2BAAAA,CACE5jI,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAErrE,WACF6jI,GAEJ,CAOAC,cAAAA,CACEj8H,EACA7H,GAEA,OAAO7uB,KAAKk6F,qBACV,CAAExjE,OAAM7H,WACR+jI,GAEJ,CAMAC,YAAAA,CACEhkI,GAEA,OAAO7uB,KAAKk6F,qBAAqB,CAAErrE,WAAWikI,GAChD,EAGF,MAAMloE,GAAa8D,GAAiBid,GAAqB,GAEnDw+C,GAA8D,CAClEz9G,KAAM,sCACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WACE2kB,IAEJ,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6mC,gBAAiB,CF9mC+B,CAChDtI,cAAe,CAAC,UAAW,aAC3B5H,OAAQ,CACNZ,eAAgB,aAChBx2E,KAAM,CACJjU,KAAM,aAKsC,CAChDizF,cAAe,CAAC,UAAW,QAC3B5H,OAAQ,CACNZ,eAAgB,OAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CACb,eACA,OACA,OACA,SACA,WACA,YACA,SACA,YEylCJ2hB,GACAA,GFxjC8C,CAChD7b,cAAe,CAAC,UAAW,aAC3B5H,OAAQ,CACNZ,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,UAAW,gBEqjC/BoN,cAAe,CAACuU,GAAkBA,IAClC5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAENy/D,GAA8D,CAClE39G,KAAM,yCACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WACE2kB,IAEJ,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6mC,gBAAiB,CACfuT,GFlkC+C,CACjD7b,cAAe,CAAC,UAAW,aAC3B5H,OAAQ,CACNZ,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,UAAW,eE8jC7B2hB,IAEFvU,cAAe,CAACuU,GAAkBA,IAClC5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAEN2/D,GAAgE,CACpE79G,KAAM,yCACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WACE2kB,IAEJ,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,GAAkBA,IAClC5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAEN6/D,GAA4D,CAChE/9G,KAAM,qCACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WACE2kB,IAEJ,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6mC,gBAAiB,CFhlCgC,CACjDtI,cAAe,CAAC,UAAW,aAC3B5H,OAAQ,CACNZ,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,UAAW,gBE2kC/BoN,cAAe,CAACuU,GAAkBA,IAClC5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAEN+/D,GAA8D,CAClEj+G,KAAM,wCACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WACE2kB,IAEJ,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6mC,gBAAiB,CAACuT,GAAkBA,GFvlCa,CACjD7b,cAAe,CAAC,UAAW,aAC3B5H,OAAQ,CACNZ,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,UAAW,gBEklC/BoN,cAAe,CAACuU,GAAkBA,IAClC5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAENigE,GAA4D,CAChEn+G,KAAM,0CACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WACE2kB,IAEJ,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,GAAkBA,IAClC5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAENmgE,GAAqE,CACzEr+G,KAAM,8CACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WACE2kB,IAEJ,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,GAAkBA,IAClC5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAENqgE,GAAkE,CACtEv+G,KAAM,aACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WACE2kB,IAEJ,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6mC,gBAAiB,CACfuT,GFjoC+C,CACjD7b,cAAe,CAAC,UAAW,aAC3B5H,OAAQ,CACNZ,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,UAAW,eAKU,CACzC8F,cAAe,CAAC,UAAW,MAC3B5H,OAAQ,CACNZ,eAAgB,KAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,WAAY,OAAQ,aEmnCtC2hB,GACAA,IAEFvU,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAENugE,GAAoE,CACxEz+G,KAAM,oCACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WACE2kB,IAEJ,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6mC,gBAAiB,CAACuT,GF9mC+B,CACjD7b,cAAe,CAAC,UAAW,aAC3B5H,OAAQ,CACNZ,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,UAAW,gBEymC/BoN,cAAe,CAACuU,GAAkBA,IAClC5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAENygE,GAAiE,CACrE3+G,KAAM,wDACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WACE2kB,IAEJ,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6mC,gBAAiB,CAACuT,GFvmC+B,CACjD7b,cAAe,CAAC,UAAW,aAC3B5H,OAAQ,CACNZ,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,UAAW,gBEkmC/BoN,cAAe,CACbuU,GACAA,GF/lC6C,CAC/C7b,cAAe,aACf5H,OAAQ,CACNZ,eAAgB,aAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,aE4lCVk2F,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAEN2gE,GAAiE,CACrE7+G,KAAM,iCACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WACE2kB,IAEJ,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6mC,gBAAiB,CAACuT,GFvmC+B,CACjD7b,cAAe,CAAC,UAAW,aAC3B5H,OAAQ,CACNZ,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,UAAW,gBEkmC/BoN,cAAe,CAACuU,GAAkBA,IAClC5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAEN6gE,GAA6D,CACjE/+G,KAAM,2CACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,GAAkBA,GF7mCU,CAC5C7b,cAAe,UACf5H,OAAQ,CACNZ,eAAgB,UAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,aEwmCVk2F,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAEN+gE,GAAoE,CACxEj/G,KAAM,oCACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WACE2kB,IAEJ,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6mC,gBAAiB,CACfuT,GFpnC+C,CACjD7b,cAAe,CAAC,UAAW,aAC3B5H,OAAQ,CACNZ,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,UAAW,eEgnC7B2hB,GACAA,IAEFvU,cAAe,CAACuU,GAAkBA,IAClC5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAENihE,GAA6D,CACjEn/G,KAAM,kBACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,GAAkBA,IAClC5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAENmhE,GAA6D,CACjEr/G,KAAM,WACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WACE2kB,IAEJ,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6mC,gBAAiB,CACfuT,GACAA,GACAA,GF1mC+C,CACjD7b,cAAe,CAAC,UAAW,aAC3B5H,OAAQ,CACNZ,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,UAAW,eAKW,CAC1C8F,cAAe,CAAC,UAAW,MAC3B5H,OAAQ,CACNZ,eAAgB,KAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,WAAY,OAAQ,cE6lCxCoN,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAENqhE,GAA4D,CAChEv/G,KAAM,iBACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WACE2kB,KAGNtU,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAENuhE,GAAiE,CACrEz/G,KAAM,iCACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WACE2kB,IAEJ,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6mC,gBAAiB,CACfuT,GFvnCgD,CAClD7b,cAAe,CAAC,UAAW,aAC3B5H,OAAQ,CACNZ,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,UAAW,eEmnC7B2hB,GACAA,IAEFvU,cAAe,CAACuU,GAAkBA,IAClC5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAENyhE,GAAuE,CAC3E3/G,KAAM,6CACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WACE2kB,IAEJ,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6mC,gBAAiB,CAACuT,IAClBvU,cAAe,CACbuU,GACAA,GACAA,IAEF5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAEN2hE,GACJ,CACE7/G,KAAM,qDACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WACE2kB,IAEJ,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6mC,gBAAiB,CACfuT,GACAA,GFvnC8C,CAClD7b,cAAe,CAAC,UAAW,aAC3B5H,OAAQ,CACNZ,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,UAAW,gBEonC7BoN,cAAe,CACbuU,GACAA,GACAA,IAEF5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAER6hE,GAA2D,CAC/D//G,KAAM,gBACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,GAAkBA,IAClC5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAEN+hE,GAAqD,CACzDjgH,KAAM,eACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WACE2kB,IAEJ,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6mC,gBAAiB,CACfuT,GACAA,GFtpCgD,CAClD7b,cAAe,CAAC,UAAW,aAC3B5H,OAAQ,CACNZ,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,UAAW,eAKa,CAC5C8F,cAAe,CAAC,UAAW,SAC3B5H,OAAQ,CACNZ,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,SAAU,gBEyoC9BoN,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAENiiE,GAAoD,CACxDngH,KAAM,oBACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,GAEX,IAAK,CACHw1B,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,GAAkBA,IAClC5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAENmiE,GAA0D,CAC9DrgH,KAAM,sBACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WACE2kB,IAEJ,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6mC,gBAAiB,CAACuT,GAAkBA,GF3pCc,CAClD7b,cAAe,CAAC,UAAW,aAC3B5H,OAAQ,CACNZ,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,UAAW,gBEspC/BoN,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAENqiE,GAAyD,CAC7DvgH,KAAM,qBACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WACE2kB,IAEJ,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6mC,gBAAiB,CACfuT,GACAA,GACAA,GFxpC0C,CAC5C7b,cAAe,CAAC,UAAW,SAC3B5H,OAAQ,CACNZ,eAAgB,QAChBx2E,KAAM,CACJjU,KAAM,YAK0C,CACpDizF,cAAe,CAAC,UAAW,YAC3B5H,OAAQ,CACNZ,eAAgB,WAChBx2E,KAAM,CACJjU,KAAM,YAK2C,CACrDizF,cAAe,CAAC,UAAW,kBAC3B5H,OAAQ,CACNZ,eAAgB,kBAChBx2E,KAAM,CACJjU,KAAM,YAKiC,CAC3CizF,cAAe,CAAC,UAAW,QAC3B5H,OAAQ,CACNZ,eAAgB,OAChBx2E,KAAM,CACJjU,KAAM,YAKqC,CAC/CizF,cAAe,CAAC,UAAW,YAC3B5H,OAAQ,CACNZ,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,aAKwC,CAClDizF,cAAe,CAAC,UAAW,aAC3B5H,OAAQ,CACNZ,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,UAAW,gBEwmC/BoN,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAENyd,GAAqD,CACzD37D,KAAM,qBACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,GAEX,IAAK,CACHw1B,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,GAAkBA,IAClC5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAENuiE,GAAqD,CACzDzgH,KAAM,gBACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WACE2kB,IAEJ,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6mC,gBAAiB,CFxoCiC,CAClDtI,cAAe,CAAC,UAAW,aAC3B5H,OAAQ,CACNZ,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,UAAW,gBEmoC/BoN,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAENyiE,GAAiE,CACrE3gH,KAAM,8BACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WACE2kB,IAEJ,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6mC,gBAAiB,CF/oCiC,CAClDtI,cAAe,CAAC,UAAW,aAC3B5H,OAAQ,CACNZ,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,UAAW,gBE0oC/BoN,cAAe,CAACuU,GAAkBA,IAClC5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAEN2iE,GAAmD,CACvD7gH,KAAM,wBACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WACE2kB,IAEJ,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6mC,gBAAiB,CACfuT,GFzoCgD,CAClD7b,cAAe,CAAC,UAAW,aAC3B5H,OAAQ,CACNZ,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,UAAW,eEqoC7B2hB,IAEFvU,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAEN6iE,GAAqD,CACzD/gH,KAAM,4BACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAEN+iE,GAAsD,CAC1DjhH,KAAM,0BACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WACE2kB,IAEJ,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6mC,gBAAiB,CACfuT,GACAA,GFxpCgD,CAClD7b,cAAe,CAAC,UAAW,aAC3B5H,OAAQ,CACNZ,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,UAAW,gBEqpC/BoN,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAENijE,GAAqD,CACzDnhH,KAAM,0CACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,GFhqC2B,CAC3C7b,cAAe,SACf5H,OAAQ,CACNZ,eAAgB,SAChBqC,UAAU,EACV74E,KAAM,CACJjU,KAAM,aE2pCVk2F,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAENmjE,GAAuD,CAC3DrhH,KAAM,4BACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WACE2kB,IAEJ,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6mC,gBAAiB,CACfuT,GACAA,GFxqCgD,CAClD7b,cAAe,CAAC,UAAW,aAC3B5H,OAAQ,CACNZ,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,UAAW,gBEqqC/BoN,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAENqjE,GAAsD,CAC1DvhH,KAAM,wCACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,GAAkBA,IAClC5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAENujE,GAA+D,CACnEzhH,KAAM,kDACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WACE2kB,IAEJ,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6mC,gBAAiB,CACfuT,GACAA,GFrrCgD,CAClD7b,cAAe,CAAC,UAAW,aAC3B5H,OAAQ,CACNZ,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,UAAW,gBEkrC/BoN,cAAe,CAACuU,GAAkBA,IAClC5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAENyjE,GAAkE,CACtE3hH,KAAM,sDACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WACE2kB,IAEJ,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6mC,gBAAiB,CACfuT,GACAA,GFhsCgD,CAClD7b,cAAe,CAAC,UAAW,aAC3B5H,OAAQ,CACNZ,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,UAAW,gBE6rC/BoN,cAAe,CAACuU,GAAkBA,IAClC5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAEN2jE,GAAsD,CAC1D7hH,KAAM,iBACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WACE2kB,IAEJ,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6mC,gBAAiB,CAACuT,GAAkBA,GFzsCc,CAClD7b,cAAe,CAAC,UAAW,aAC3B5H,OAAQ,CACNZ,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,UAAW,gBEosC/BoN,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAEN4jE,GAAqD,CACzD9hH,KAAM,+BACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,GAEX,IAAK,CACHw1B,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,GAAkBA,IAClC5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAEN8jE,GAAgE,CACpEhiH,KAAM,4CACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WACE2kB,IAEJ,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6mC,gBAAiB,CAACuT,GAAkBA,GFztCc,CAClD7b,cAAe,CAAC,UAAW,aAC3B5H,OAAQ,CACNZ,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,UAAW,gBEotC/BoN,cAAe,CAACuU,GAAkBA,IAClC5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAENgkE,GAAuD,CAC3DliH,KAAM,0BACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,GAEX,IAAK,CACHw1B,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,GAAkBA,IAClC5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAENikE,GAAmE,CACvEniH,KAAM,uCACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WACE2kB,IAEJ,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,GAAkBA,IAClC5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAENmkE,GAAkD,CACtDriH,KAAM,YACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WACE2kB,IAEJ,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6mC,gBAAiB,CACfuT,GACAA,GACAA,GACAA,GACAA,GFruCgD,CAClD7b,cAAe,CAAC,UAAW,aAC3B5H,OAAQ,CACNZ,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,UAAW,gBEkuC/BoN,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAENqkE,GAA0D,CAC9DviH,KAAM,qBACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WACE2kB,IAEJ,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6mC,gBAAiB,CAACuT,GAAkBA,GF9uCc,CAClD7b,cAAe,CAAC,UAAW,aAC3B5H,OAAQ,CACNZ,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,UAAW,gBEyuC/BoN,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAENukE,GAAwD,CAC5DziH,KAAM,0BACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,GAEX,IAAK,CACHw1B,WAAY2kB,GACZn6C,SAAS,IAGb6mC,gBAAiB,CAACuT,GAAkBA,GF7uCc,CAClD7b,cAAe,CAAC,UAAW,aAC3B5H,OAAQ,CACNZ,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,UAAW,gBEwuC/BoN,cAAe,CAACuU,GAAkBA,IAClC5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAENykE,GAA8D,CAClE3iH,KAAM,iCACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WACE2kB,IAEJ,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6mC,gBAAiB,CAACuT,GAAkBA,GFpvCc,CAClD7b,cAAe,CAAC,UAAW,aAC3B5H,OAAQ,CACNZ,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,UAAW,gBE+uC/BoN,cAAe,CAACuU,GAAkBA,IAClC5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAEN2kE,GAAuD,CAC3D7iH,KAAM,kBACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY,CAAEj2E,KAAM,CAAEjU,KAAM,YAE9B,IAAK,CACHkqF,WAAY2kB,GACZn6C,SAAS,IAGb6mC,gBAAiB,CAACuT,IAClBvU,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAEN4kE,GAAiD,CACrD9iH,KAAM,iBACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,GAEX,IAAK,CACHw1B,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,GAAkBA,IAClC5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAEN8kE,GAAuD,CAC3DhjH,KAAM,wBACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WACE2kB,IAEJ,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6mC,gBAAiB,CAACuT,GAAkBA,GFhyCc,CAClD7b,cAAe,CAAC,UAAW,aAC3B5H,OAAQ,CACNZ,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,UAAW,gBE2xC/BoN,cAAe,CAACuU,GAAkBA,IAClC5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAENglE,GAA0D,CAC9DljH,KAAM,2BACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WACE2kB,IAEJ,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6mC,gBAAiB,CAACuT,GAAkBA,GFvyCc,CAClD7b,cAAe,CAAC,UAAW,aAC3B5H,OAAQ,CACNZ,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,UAAW,gBEkyC/BoN,cAAe,CAACuU,GAAkBA,IAClC5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAENklE,GAAwD,CAC5DpjH,KAAM,yBACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WACE2kB,IAEJ,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6mC,gBAAiB,CAACuT,GAAkBA,GF9yCc,CAClD7b,cAAe,CAAC,UAAW,aAC3B5H,OAAQ,CACNZ,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,UAAW,gBEyyC/BoN,cAAe,CAACuU,GAAkBA,IAClC5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAENolE,GAAoD,CACxDtjH,KAAM,cACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WACE2kB,IAEJ,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6mC,gBAAiB,CACfuT,GACAA,GACAA,GFxzCgD,CAClD7b,cAAe,CAAC,UAAW,aAC3B5H,OAAQ,CACNZ,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,UAAW,gBEqzC/BoN,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAENslE,GAAmD,CACvDxjH,KAAM,mBACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,GAEX,IAAK,CACHw1B,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,GAAkBA,IAClC5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAENwlE,GAA0D,CAC9D1jH,KAAM,2BACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WACE2kB,IAEJ,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,GAEX,IAAK,CACHw1B,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,GAAkBA,IAClC5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAEN0lE,GAA0D,CAC9D5jH,KAAM,2BACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WACE2kB,IAEJ,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,GAEX,IAAK,CACHw1B,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,GAAkBA,IAClC5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAEN4lE,GAA4D,CAChE9jH,KAAM,6BACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WACE2kB,IAEJ,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,GAEX,IAAK,CACHw1B,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,GAAkBA,IAClC5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAEN8lE,GAAkD,CACtDhkH,KAAM,YACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAENgmE,GAAgE,CACpElkH,KAAM,4BACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WACE2kB,IAEJ,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6mC,gBAAiB,CACfuT,GFv5C+C,CACjD7b,cAAe,CAAC,UAAW,cAC3B5H,OAAQ,CACNZ,eAAgB,cAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,MAAO,OAAQ,YAKe,CAClD8F,cAAe,CAAC,UAAW,aAC3B5H,OAAQ,CACNZ,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,UAAW,gBE04C/BoN,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAENkmE,GAA+D,CACnEpkH,KAAM,2BACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WACE2kB,IAEJ,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6mC,gBAAiB,CACfuT,GFv5CgD,CAClD7b,cAAe,CAAC,UAAW,cAC3B5H,OAAQ,CACNZ,eAAgB,cAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,MAAO,OAAQ,YEm5CjC2hB,GACAA,GF33CgD,CAClD7b,cAAe,CAAC,UAAW,aAC3B5H,OAAQ,CACNZ,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,UAAW,gBEw3C/BoN,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAENomE,GAAwD,CAC5DtkH,KAAM,mBACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WACE2kB,IAEJ,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6mC,gBAAiB,CACfuT,GACAA,GACAA,GFv4CgD,CAClD7b,cAAe,CAAC,UAAW,cAC3B5H,OAAQ,CACNZ,eAAgB,cAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,MAAO,OAAQ,YAKc,CACjD8F,cAAe,CAAC,UAAW,QAC3B5H,OAAQ,CACNZ,eAAgB,OAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,MAAO,YAKuB,CAClD8F,cAAe,CAAC,UAAW,aAC3B5H,OAAQ,CACNZ,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,UAAW,gBEg3C/BoN,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAENsmE,GAA2D,CAC/DxkH,KAAM,sBACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WACE2kB,IAEJ,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6mC,gBAAiB,CACfuT,GACAA,GACAA,GF/3CgD,CAClD7b,cAAe,CAAC,UAAW,cAC3B5H,OAAQ,CACNZ,eAAgB,cAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,MAAO,OAAQ,YAKe,CAClD8F,cAAe,CAAC,UAAW,aAC3B5H,OAAQ,CACNZ,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,UAAW,gBEk3C/BoN,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAENwmE,GAAuD,CAC3D1kH,KAAM,kBACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WACE2kB,IAEJ,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6mC,gBAAiB,CAACuT,GAAkBA,GF93Cc,CAClD7b,cAAe,CAAC,UAAW,aAC3B5H,OAAQ,CACNZ,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,UAAW,gBEy3C/BoN,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAEN0mE,GAA4D,CAChE5kH,KAAM,uBACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WACE2kB,IAEJ,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6mC,gBAAiB,CACfuT,GACAA,GACAA,GFx4CgD,CAClD7b,cAAe,CAAC,UAAW,cAC3B5H,OAAQ,CACNZ,eAAgB,cAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,MAAO,OAAQ,YAKe,CAClD8F,cAAe,CAAC,UAAW,aAC3B5H,OAAQ,CACNZ,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,UAAW,gBE23C/BoN,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAEN4mE,GAA0D,CAC9D9kH,KAAM,qBACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WACE2kB,IAEJ,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6mC,gBAAiB,CACfuT,GACAA,GACAA,GF14CgD,CAClD7b,cAAe,CAAC,UAAW,cAC3B5H,OAAQ,CACNZ,eAAgB,cAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,MAAO,OAAQ,YAKe,CAClD8F,cAAe,CAAC,UAAW,aAC3B5H,OAAQ,CACNZ,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,UAAW,gBE63C/BoN,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAEN8mE,GAAuD,CAC3DhlH,KAAM,mBACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WACE2kB,IAEJ,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6mC,gBAAiB,CAACuT,GFz4CgC,CAClD7b,cAAe,CAAC,UAAW,aAC3B5H,OAAQ,CACNZ,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,UAAW,gBEo4C/BoN,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAENgnE,GAAuD,CAC3DllH,KAAM,kBACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WACE2kB,IAEJ,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6mC,gBAAiB,CACfuT,GACAA,GACAA,GFn5CgD,CAClD7b,cAAe,CAAC,UAAW,cAC3B5H,OAAQ,CACNZ,eAAgB,cAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,MAAO,OAAQ,YAKe,CAClD8F,cAAe,CAAC,UAAW,aAC3B5H,OAAQ,CACNZ,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,UAAW,gBEs4C/BoN,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAENknE,GAAuD,CAC3DplH,KAAM,kBACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WACE2kB,IAEJ,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6mC,gBAAiB,CAACuT,GAAkBA,GFl5Cc,CAClD7b,cAAe,CAAC,UAAW,aAC3B5H,OAAQ,CACNZ,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,UAAW,gBE64C/BoN,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAENonE,GAA+D,CACnEtlH,KAAM,2BACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WACE2kB,IAEJ,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6mC,gBAAiB,CACfuT,GF15CgD,CAClD7b,cAAe,CAAC,UAAW,cAC3B5H,OAAQ,CACNZ,eAAgB,cAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,MAAO,OAAQ,YAKe,CAClD8F,cAAe,CAAC,UAAW,aAC3B5H,OAAQ,CACNZ,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,UAAW,gBE64C/BoN,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAENsnE,GAA8D,CAClExlH,KAAM,yBACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WACE2kB,IAEJ,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6mC,gBAAiB,CACfuT,GACAA,GACAA,GF55CgD,CAClD7b,cAAe,CAAC,UAAW,cAC3B5H,OAAQ,CACNZ,eAAgB,cAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,MAAO,OAAQ,YEw5CjC2hB,GFz4CgD,CAClD7b,cAAe,CAAC,UAAW,aAC3B5H,OAAQ,CACNZ,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,UAAW,gBEs4C/BoN,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAENqgB,GAAmD,CACvDv+D,KAAM,aACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,KAGhBtU,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAENwnE,GAAyD,CAC7D1lH,KAAM,mBACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WACE2kB,IAEJ,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6mC,gBAAiB,CACfuT,GACAA,GFh6C+C,CACjD7b,cAAe,CAAC,UAAW,QAC3B5H,OAAQ,CACNZ,eAAgB,OAChBx2E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CACb,uBACA,qBACA,iBACA,kBACA,yBACA,mBACA,iBACA,gBACA,wBACA,mBACA,gBACA,kBACA,YACA,UACA,aACA,gBACA,cACA,gBACA,cACA,gBACA,eACA,kBACA,kBACA,aACA,aAMVwO,iBAAkB,SAG8B,CAChD1I,cAAe,CAAC,UAAW,aAC3B5H,OAAQ,CACNZ,eAAgB,aAChBx2E,KAAM,CACJjU,KAAM,WACNi4C,QAAS,CACPhkC,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CACb,UACA,WACA,KACA,OACA,SACA,aACA,aAMVwO,iBAAkB,SEk2ChBmT,GACAA,GACAA,GACAA,GACAA,GFlyC+C,CACjD7b,cAAe,CAAC,UAAW,cAC3B5H,OAAQ,CACNZ,eAAgB,aAChBx2E,KAAM,CACJjU,KAAM,YE+xCR8uG,GF7wCgD,CAClD7b,cAAe,CAAC,UAAW,aAC3B5H,OAAQ,CACNZ,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,UAAW,gBE0wC/BoN,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAEN0nE,GAA8D,CAClE5lH,KAAM,yBACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY,CAAEj2E,KAAM,CAAEjU,KAAM,aAGhCu7F,gBAAiB,CAACuT,GAAkBA,GAAmBA,IACvDvU,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAEN4nE,GAAgE,CACpE9lH,KAAM,2BACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WACE2kB,IAEJ,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6mC,gBAAiB,CAACuT,GFtxCgC,CAClD7b,cAAe,CAAC,UAAW,aAC3B5H,OAAQ,CACNZ,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,UAAW,gBEixC/BoN,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAEN8nE,GAAqE,CACzEhmH,KAAM,iCACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY,CAAEj2E,KAAM,CAAEjU,KAAM,YAE9B,IAAK,CACHkqF,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAENgoE,GAAwD,CAC5DlmH,KAAM,0BACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WAAY2kB,IAEd,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,GAEX,IAAK,CACHw1B,WAAY2kB,GACZn6C,SAAS,IAGb6lC,cAAe,CAACuU,GAAkBA,IAClC5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAENkoE,GAAsD,CAC1DpmH,KAAM,gBACN6pD,WAAY,MACZpB,UAAW,CACT,IAAK,CACHnO,WACE2kB,IAEJ,IAAK,CACH3kB,WAAY2kB,GACZn6C,SAAS,IAGb6mC,gBAAiB,CAACuT,GAAkBA,GFnzCc,CAClD7b,cAAe,CAAC,UAAW,aAC3B5H,OAAQ,CACNZ,eAAgB,YAChBx2E,KAAM,CACJjU,KAAM,OACNmtF,cAAe,CAAC,UAAW,gBE8yC/BoN,cAAe,CAACuU,IAChB5Y,iBAAkB,CAAC4Y,IACnBhhB,WAAUA,IAGCmoE,GAAiB,CAC5B5I,GACAE,GACAE,GACAE,GACAE,GACAE,GACAE,GACAE,GACAE,GACAE,GACAE,GACAE,GACAE,GACAE,GACAE,GACAE,GACAE,GACAE,GACAI,GACAE,GACAE,GACAE,GACAE,GACA5kD,GACA8kD,GACAE,GACAE,GACAE,GACAE,GACAE,GACAE,GACAE,GACAE,GACAE,GACAE,GACAC,GACAE,GACAE,GACAC,GACAE,GACAE,GACAE,GACAE,GACAE,GACAC,GACAE,GACAE,GACAE,GACAE,GACAE,GACAE,GACAE,GACAE,GACAE,GACAE,GACAE,GACAE,GACAE,GACAE,GACAE,GACAE,GACAE,GACAE,GACAE,GACAE,GACAE,GACAjnD,GACAmnD,GACAE,GACAE,GACAE,GACAE,GACAE,I,oMC1oFK,MAAME,WAA6BhvG,EACxC5lD,WAAAA,CAAY60J,GACVn3I,MAAM,eAAem3I,EAAS,OAAS,mBACvCjzJ,KAAKlD,KAAO,sBACd,EAGF,IAAAo2J,GAAA,IAAAhpI,QAGO,MAAMipI,GASX/0J,WAAAA,CAAYg1J,EAAkCC,G,6JAF9C5xE,CAAA,KAASyxE,QAAW,GAGlBlzJ,KAAKiR,KAAOmiJ,EAAQniJ,KACpBjR,KAAKszJ,SAAWF,EAAQvjI,KACxB7vB,KAAKuzJ,SAAWH,EAAQvyG,K,EACLwyG,G,EAAdH,I,SAALlzJ,M,EACF,CAOA,UAAM6vB,GACJ,GAAqB,MAAjB7vB,KAAKszJ,SAAkB,MAAM,IAAIN,IAAqB,GAC1D,OAAOzxE,GAAK2xE,GAALlzJ,MAAiBwzJ,cAAcxzJ,KAAKszJ,SAC7C,CAOA,UAAMzyG,GACJ,GAAqB,MAAjB7gD,KAAKuzJ,SAAkB,MAAM,IAAIP,IAAqB,GAC1D,OAAOzxE,GAAK2xE,GAALlzJ,MAAiBwzJ,cAAcxzJ,KAAKuzJ,SAC7C,EC7Ca,MAAMnhB,WAAmBqhB,GAStCr1J,WAAAA,CACEw1D,GACA,cACEyoC,GAAgB,EAAK,WACrB1iC,EAAa,EAAC,kBACd4iC,EAAoB,OACjB1tE,GAKD,CAAC,GAEL,IAAI+D,EAQJ9W,MAAM83C,EAAK,CACT6N,yBAAyB,EACzBw4B,mBAAoB,CAClBkC,GAAsB,cAVP9nC,UACF,MAAXzhC,IACJA,SAAiB5yB,KAAKgrG,UAAUnW,IAAOmwD,YADXpyH,IASsB,SAAU,QAASypE,GACnEb,KACAI,KACAU,GAAwB3iC,EAAY4iC,GACpCL,IAAyBxnC,GAAwB,IAAIA,EAAKz/C,cAEzD4Z,IAEL7uB,KAAK6sD,SAASb,UAAUsvC,GAAmB,CAAEpvC,MAAO,gBACpDlsD,KAAK6sD,SAAST,aAAa,CAAEtvD,KAAMu5D,KACnCr2D,KAAK6sD,SAAST,aAAa,CAAEtvD,KAAMi/D,KAEnC/7D,KAAK6sD,SAAST,aAAa,CAAEtvD,KAAM,sBACrC,CAMA,mBAAM02J,CAAkCE,GACtC,MAAMC,EAAWD,EAAct5J,QAAQ,KACjCsyC,EAAOgnH,EAAc13J,MAAM,GAAiB,IAAd23J,EAAkBD,EAAcn6J,OAASo6J,GACvEh2E,EAAQ+1E,EAAc13J,OAAoB,IAAd23J,EAAkBD,EAAcn6J,OAASo6J,EAAW,GAEhF5gE,EAAgBggE,GAAepkH,MAAMilH,IACzC,IAAItxJ,EAAIoqC,EACR,GAAe,MAAXknH,EAAGlnH,KAAc,OAAO,EAC5B,MAAMmnH,EAASD,EAAGlnH,KAAKvsC,QAAQ,SAAU,WAAWmJ,MAAM,WAC1D,KAAOuqJ,EAAOt6J,OAAS,GAAG,CACxB,MAAMuyB,EAAO+nI,EAAO5tI,QACpB,GAAY,MAAR6F,EAAc,MAAM,IAAIo6B,GAAc,mCAAmC0tG,EAAGlnH,QAChF,IAAKpqC,EAAEstD,WAAW9jC,GAAO,OAAO,EAChCxpB,EAAIA,EAAEnC,QAAQ2rB,EAAM,IAChB+nI,EAAOt6J,OAAS,IAAG+I,EAAIA,EAAEnC,QAAQ,UAAW,IAClD,CACA,MAAa,KAANmC,CAAQ,IAEjB,GAAqB,MAAjBywF,EACF,MAAM,IAAIhuC,EAAqB,8CAA8CrY,KAG/E,OAAO1sC,KAAKk6F,qBACV,CAAC,EACD,IACKnH,EACHrmD,OACA2qD,cAAetE,EAAcsE,eAAe7oD,QAC1C,EAAGuhD,mBAAsC,UAAlBA,IAEzBsI,gBAAiBp+F,MAAMwV,KAAK,IAAIovD,gBAAgB8e,IAAQ9xE,KAAI,EAAEQ,EAAKqD,MAAW,CAC5EqgF,cAAe,CAAC,UAAW1jF,GAC3B87E,OAAQ,CACNhN,aAAczrE,EAAMrR,WACpBkpF,eAAgBl7E,EAChB0E,KAAM,CACJjU,KAAM,gBAMlB,CAEA,0BAAeo9F,CACbtK,EACAmD,GAEA,MAAM5+B,QAAiBr4C,MAAMo+E,qBAAqBtK,EAAoBmD,GACtE,ODjHG,SAA6B+gE,GAClC,MAAMC,EAAWD,EACjB,OACoB,MAAlBC,GAAU9iJ,MACVhX,MAAM+W,QAAQ+iJ,EAAS9iJ,OACvB,SAAU8iJ,GACV,SAAUA,CAEd,CCyGSC,CAAoB7/F,GAClB,IAAIg/F,GAAeh/F,EAAUn0D,MADOm0D,CAE7C,ECnHF,QAAgB8/F,EAAyBC,KACvCD,EAAKthC,SACFllH,GAAaymJ,EAAK9gC,YAAY3lH,KAC/B,IAAMymJ,EAAKhgC,eAEbggC,EAAKvhC,SACFllH,GAAawmJ,EAAK7gC,YAAY3lH,KAC/B,IAAMwmJ,EAAK//B,eAGN,KACL+/B,EAAK//B,aACLggC,EAAKhgC,YAAY,GChBN,MAAeigC,GAGlB/1J,WAAAA,EAAY,MAAEmxD,GAAQ,IAC9BvvD,KAAKuvD,MAAQA,CACf,CAOAojE,OAAAA,CAEE+b,EAEAhc,GAEA,GAAI1yH,KAAK40H,cAAe,MAAM,IAAI3qE,GAAsB,wBAC1D,CAKAiqE,UAAAA,GACE,IAAKl0H,KAAK40H,cACR,MAAM,IAAI1qE,GAAuB,kDACrC,CAKUkqG,cAAAA,CAAel4I,GACnBlc,KAAKuvD,OAAO7hD,QAAQC,IAAI,mBAAoBuO,EAClD,CAKAk3G,WAAAA,CAAYl3G,GACNlc,KAAKuvD,OAAO7hD,QAAQC,IAAI,gBAAiBuO,EAC/C,E,uYC7CwE,IAAAm4I,GAAA,IAAAnqI,QAAAoqI,GAAA,IAAApqI,QAAAqqI,GAAA,IAAArqI,QAW3D,MAAMsqI,WAAuCL,GAyB1D/1J,WAAAA,EAAY,OACV6X,EAAM,KACN7d,EAAOioB,OAAM,OACb0yG,EAAM,cACN0hC,EAAa,iBACbC,EAAmB9jC,GAAkB+jC,WAClC9lI,GAQD,CAAC,GACH/S,MAAM+S,GA/BR4yD,GAAA,KAAA4yE,QAAa,GAEb5yE,GAAA,KAAS6yE,QAAO,GAEhB7yE,GAAA,KAAS8yE,QAAK,GA4BZ7yE,GAAK4yE,GAALt0J,KAAeiW,GACfyrE,GAAK6yE,GAALv0J,KAAa5H,GACb4H,KAAK+yH,OAASA,EACd/yH,KAAKy0J,cAAgBA,EACrBz0J,KAAK00J,iBAAmBA,CAC1B,CAEA9/B,WAAAA,GACE,OAAwB,MAAjB50H,KAAKghB,QACd,CAES2xG,OAAAA,CACP+b,EACAhc,GAEA52G,MAAM62G,QAAQ+b,EAAWhc,GACzB1yH,KAAKghB,SAAY9E,IAA+B,IAAA04I,EAE9C,GAC0B,iBAAjB14I,EAAQjL,MAC0C,SAApC,QAArB2jJ,EAAC14I,EAAQjL,KAAK+hH,eAAO,IAAA4hC,EAAAA,EAAI14I,EAAQjL,KAAKA,MAAM+hH,SAE5C,OACF,GAAmB,MAAfhzH,KAAK+yH,QAAkB/yH,KAAK+yH,SAAW72G,EAAQ62G,OAAQ,OAC3D,GAAoB,MAAhBxxC,GAAK+yE,GAALt0J,OAAwBuhF,GAAK+yE,GAALt0J,QAAiBkc,EAAQiU,OAAQ,OAC7DnwB,KAAKo0J,eAAel4I,GACpB,IAAI,KAAEjL,GAASiL,EACf,GAAiB,MAAbjL,EAAKF,KAAc,CACrB,GAAImL,EAAQjL,KAAKF,OAAS/Q,KAAK00J,iBAAkB,OACjDzjJ,EAAOA,EAAKA,IACd,CACAy9H,EAAUz9H,EAAMiL,EAAQ62G,OAAQ72G,EAAQiU,OAAO,EAEjDoxD,GAAKgzE,GAALv0J,MAAWslB,iBAAiB,UAAWtlB,KAAKghB,UAC5C0gE,GAAK2yE,GAALr0J,KAAqB0yH,EACvB,CAESwB,UAAAA,GAEP,GADAp4G,MAAMo4G,aACe,MAAjBl0H,KAAKghB,UAA0C,MAAtBugE,GAAK8yE,GAALr0J,MAC3B,MAAM,IAAIkmD,GAAc,2CAE1Bq7B,GAAKgzE,GAALv0J,MAAWwlB,oBAAoB,UAAWxlB,KAAKghB,iBACxChhB,KAAKghB,SACZugE,GAAK8yE,GAALr0J,MAAkB8C,KAAlB9C,MACA0hF,GAAK2yE,GAALr0J,UAAqB6Q,EACvB,CAESuiH,WAAAA,CAAY3lH,GAAgB,IAAAonJ,EACnC,GAAoB,MAAhBtzE,GAAK+yE,GAALt0J,MAAsB,MAAM,IAAImqD,GAAmB,sCACvD,MAAMjuC,EAAgC,MAAtBlc,KAAKy0J,cAAwB,CAAE1jJ,KAAM/Q,KAAKy0J,cAAexjJ,KAAMxD,GAAQA,EACvFqO,MAAMs3G,YAAYl3G,GAClBqlE,GAAK+yE,GAALt0J,MAAa80J,YAAY54I,EAAoB,QAAb24I,EAAE70J,KAAK+yH,cAAM,IAAA8hC,EAAAA,EAAI,IACnD,ECtFF,QACEpiC,EACAsiC,KAEA,GAAc,MAAV10I,OACF,MAAM,IAAIqlC,EACR,wEAEJ,MAAMsvG,EAAmB,CAAC,EAiC1B,OA/BAviC,EAAWE,SACT,EACIn+E,SAAQmyB,UACVosD,EACA5iG,KAEA,GAAIqkB,IAAWu8E,GAAQoD,gBAAwC,MAAtB6gC,EAAQruF,EAAO/lE,IAAa,OAErE,MAAMw/H,EAAS,CACb9wE,KAAMqX,EACNsuF,aAAAA,GACE,OAAO,IAAIT,GAA+B,CACxCv+I,OAAQka,KACY,cAAhBw2C,EAAO51D,KACP,CACE0jJ,cAAe7jC,GAAkBskC,WACjCR,iBAAkB9jC,GAAkB+jC,WACd,SAAlBt0I,OAAO0yG,QAAqB,CAAEA,OAAQ1yG,OAAO0yG,SAEnD,CACEA,OAAQpsD,EAAOosD,SAGzB,GAEFiiC,EAAQ50B,EAAO9wE,KAAK1uD,IAAMw/H,EAC1B20B,EAAW,CAAEC,UAASG,UAAW/0B,GAAS,IAE5C,SAGK,IAAM3N,EAAWyB,YACzB,E,iPC3DD,IAAAlvG,GAAA,IAAAkF,QAKe,MAAMkrI,WAAiCjB,GAQpD/1J,WAAAA,EAAY,KAAEmwE,KAAS1/C,I,UACrB/S,MAAM+S,G,OANE,E,mHAAV,K,EAAA7J,I,WAOEhlB,KAAKuuE,KAAOA,CACd,CAES2lD,UAAAA,GAGP,GAFAp4G,MAAMo4G,aACNl0H,KAAKuuE,KAAK2lD,aACa,MAAnB3yC,GAAKv8D,GAALhlB,MAAyB,MAAM,IAAImmD,GACvCnmD,KAAKuuE,KAAKmgE,UAAUrsH,eAAek/D,GAAKv8D,GAALhlB,MAAgB,IACnDA,KAAKuuE,KAAKmkD,aAAarwG,eAAek/D,GAAKv8D,GAALhlB,MAAgB,IACtD0hF,GAAK18D,GAALhlB,UAAkB6Q,EACpB,CAES8hH,OAAAA,CACP+b,EACAhc,GAEA52G,MAAM62G,QAAQ+b,EAAWhc,GACzBhxC,GAAK18D,GAALhlB,KAAkB,CAChB,CAACkc,EAASqyD,KAAS,IAAA8mF,EACjBr1J,KAAKo0J,eAAel4I,GAEpBwyH,EAAUxyH,EAAyB,QAAlBm5I,EAAE9mF,EAAKymE,QAAQphF,WAAG,IAAAyhG,EAAAA,EAAI,GAAI9mF,EAAK,EAElDmkD,IAEF1yH,KAAKuuE,KAAKmgE,UAAU7tH,YAAY0gE,GAAKv8D,GAALhlB,MAAgB,IAChDA,KAAKuuE,KAAKmkD,aAAa7xG,YAAY0gE,GAAKv8D,GAALhlB,MAAgB,GACrD,CAESozH,WAAAA,CAAYl3G,GACnBJ,MAAMs3G,YAAYl3G,GAClBlc,KAAKuuE,KAAKumF,YAAY54I,EACxB,CAEA04G,WAAAA,GACE,OAA0B,MAAnBrzC,GAAKv8D,GAALhlB,KACT,E","sources":["webpack://Aeternity/webpack/universalModuleDefinition","webpack://Aeternity/./node_modules/base64-js/index.js","webpack://Aeternity/./node_modules/bignumber.js/bignumber.js","webpack://Aeternity/./node_modules/blakejs/blake2b.js","webpack://Aeternity/./node_modules/blakejs/util.js","webpack://Aeternity/./node_modules/buffer/index.js","webpack://Aeternity/./node_modules/call-bind-apply-helpers/actualApply.js","webpack://Aeternity/./node_modules/call-bind-apply-helpers/applyBind.js","webpack://Aeternity/./node_modules/call-bind-apply-helpers/functionApply.js","webpack://Aeternity/./node_modules/call-bind-apply-helpers/functionCall.js","webpack://Aeternity/./node_modules/call-bind-apply-helpers/index.js","webpack://Aeternity/./node_modules/call-bind-apply-helpers/reflectApply.js","webpack://Aeternity/./node_modules/call-bind/index.js","webpack://Aeternity/./node_modules/call-bound/index.js","webpack://Aeternity/./node_modules/canonicalize/lib/canonicalize.js","webpack://Aeternity/./node_modules/define-data-property/index.js","webpack://Aeternity/./node_modules/dunder-proto/get.js","webpack://Aeternity/./node_modules/es-define-property/index.js","webpack://Aeternity/./node_modules/es-errors/eval.js","webpack://Aeternity/./node_modules/es-errors/index.js","webpack://Aeternity/./node_modules/es-errors/range.js","webpack://Aeternity/./node_modules/es-errors/ref.js","webpack://Aeternity/./node_modules/es-errors/syntax.js","webpack://Aeternity/./node_modules/es-errors/type.js","webpack://Aeternity/./node_modules/es-errors/uri.js","webpack://Aeternity/./node_modules/es-object-atoms/index.js","webpack://Aeternity/./node_modules/es5-ext/global.js","webpack://Aeternity/./node_modules/eventemitter3/index.js","webpack://Aeternity/./node_modules/events/events.js","webpack://Aeternity/./node_modules/for-each/index.js","webpack://Aeternity/./node_modules/function-bind/implementation.js","webpack://Aeternity/./node_modules/function-bind/index.js","webpack://Aeternity/./node_modules/get-intrinsic/index.js","webpack://Aeternity/./node_modules/get-proto/Object.getPrototypeOf.js","webpack://Aeternity/./node_modules/get-proto/Reflect.getPrototypeOf.js","webpack://Aeternity/./node_modules/get-proto/index.js","webpack://Aeternity/./node_modules/gopd/gOPD.js","webpack://Aeternity/./node_modules/gopd/index.js","webpack://Aeternity/./node_modules/has-property-descriptors/index.js","webpack://Aeternity/./node_modules/has-symbols/index.js","webpack://Aeternity/./node_modules/has-symbols/shams.js","webpack://Aeternity/./node_modules/has-tostringtag/shams.js","webpack://Aeternity/./node_modules/hasown/index.js","webpack://Aeternity/./node_modules/ieee754/index.js","webpack://Aeternity/./node_modules/inherits/inherits_browser.js","webpack://Aeternity/./node_modules/is-callable/index.js","webpack://Aeternity/./node_modules/is-typed-array/index.js","webpack://Aeternity/./node_modules/isarray/index.js","webpack://Aeternity/./node_modules/json-bigint/index.js","webpack://Aeternity/./node_modules/json-bigint/lib/parse.js","webpack://Aeternity/./node_modules/json-bigint/lib/stringify.js","webpack://Aeternity/./node_modules/math-intrinsics/abs.js","webpack://Aeternity/./node_modules/math-intrinsics/floor.js","webpack://Aeternity/./node_modules/math-intrinsics/isNaN.js","webpack://Aeternity/./node_modules/math-intrinsics/max.js","webpack://Aeternity/./node_modules/math-intrinsics/min.js","webpack://Aeternity/./node_modules/math-intrinsics/pow.js","webpack://Aeternity/./node_modules/math-intrinsics/round.js","webpack://Aeternity/./node_modules/math-intrinsics/sign.js","webpack://Aeternity/./node_modules/possible-typed-array-names/index.js","webpack://Aeternity/./node_modules/process/browser.js","webpack://Aeternity/./node_modules/rlp/dist/index.js","webpack://Aeternity/./node_modules/safe-buffer/index.js","webpack://Aeternity/./node_modules/set-function-length/index.js","webpack://Aeternity/./node_modules/sha.js/hash.js","webpack://Aeternity/./node_modules/sha.js/sha256.js","webpack://Aeternity/./node_modules/to-buffer/index.js","webpack://Aeternity/./node_modules/tweetnacl-auth/nacl-auth.js","webpack://Aeternity/./node_modules/tweetnacl/nacl-fast.js","webpack://Aeternity/./node_modules/typed-array-buffer/index.js","webpack://Aeternity/./node_modules/websocket/lib/browser.js","webpack://Aeternity/./node_modules/websocket/lib/version.js","webpack://Aeternity/./node_modules/which-typed-array/index.js","webpack://Aeternity/./node_modules/available-typed-arrays/index.js","webpack://Aeternity/./node_modules/core-js-pure/actual/object/define-property.js","webpack://Aeternity/./node_modules/core-js-pure/actual/symbol/index.js","webpack://Aeternity/./node_modules/core-js-pure/actual/symbol/iterator.js","webpack://Aeternity/./node_modules/core-js-pure/actual/symbol/to-primitive.js","webpack://Aeternity/./node_modules/core-js-pure/es/object/define-property.js","webpack://Aeternity/./node_modules/core-js-pure/es/symbol/index.js","webpack://Aeternity/./node_modules/core-js-pure/es/symbol/iterator.js","webpack://Aeternity/./node_modules/core-js-pure/es/symbol/to-primitive.js","webpack://Aeternity/./node_modules/core-js-pure/full/object/define-property.js","webpack://Aeternity/./node_modules/core-js-pure/full/symbol/index.js","webpack://Aeternity/./node_modules/core-js-pure/full/symbol/iterator.js","webpack://Aeternity/./node_modules/core-js-pure/full/symbol/to-primitive.js","webpack://Aeternity/./node_modules/core-js-pure/internals/a-callable.js","webpack://Aeternity/./node_modules/core-js-pure/internals/a-possible-prototype.js","webpack://Aeternity/./node_modules/core-js-pure/internals/add-to-unscopables.js","webpack://Aeternity/./node_modules/core-js-pure/internals/an-object.js","webpack://Aeternity/./node_modules/core-js-pure/internals/array-includes.js","webpack://Aeternity/./node_modules/core-js-pure/internals/array-iteration.js","webpack://Aeternity/./node_modules/core-js-pure/internals/array-method-has-species-support.js","webpack://Aeternity/./node_modules/core-js-pure/internals/array-slice.js","webpack://Aeternity/./node_modules/core-js-pure/internals/array-species-constructor.js","webpack://Aeternity/./node_modules/core-js-pure/internals/array-species-create.js","webpack://Aeternity/./node_modules/core-js-pure/internals/classof-raw.js","webpack://Aeternity/./node_modules/core-js-pure/internals/classof.js","webpack://Aeternity/./node_modules/core-js-pure/internals/correct-prototype-getter.js","webpack://Aeternity/./node_modules/core-js-pure/internals/create-iter-result-object.js","webpack://Aeternity/./node_modules/core-js-pure/internals/create-non-enumerable-property.js","webpack://Aeternity/./node_modules/core-js-pure/internals/create-property-descriptor.js","webpack://Aeternity/./node_modules/core-js-pure/internals/create-property.js","webpack://Aeternity/./node_modules/core-js-pure/internals/define-built-in-accessor.js","webpack://Aeternity/./node_modules/core-js-pure/internals/define-built-in.js","webpack://Aeternity/./node_modules/core-js-pure/internals/define-global-property.js","webpack://Aeternity/./node_modules/core-js-pure/internals/descriptors.js","webpack://Aeternity/./node_modules/core-js-pure/internals/document-create-element.js","webpack://Aeternity/./node_modules/core-js-pure/internals/does-not-exceed-safe-integer.js","webpack://Aeternity/./node_modules/core-js-pure/internals/dom-iterables.js","webpack://Aeternity/./node_modules/core-js-pure/internals/enum-bug-keys.js","webpack://Aeternity/./node_modules/core-js-pure/internals/environment-user-agent.js","webpack://Aeternity/./node_modules/core-js-pure/internals/environment-v8-version.js","webpack://Aeternity/./node_modules/core-js-pure/internals/export.js","webpack://Aeternity/./node_modules/core-js-pure/internals/fails.js","webpack://Aeternity/./node_modules/core-js-pure/internals/function-apply.js","webpack://Aeternity/./node_modules/core-js-pure/internals/function-bind-context.js","webpack://Aeternity/./node_modules/core-js-pure/internals/function-bind-native.js","webpack://Aeternity/./node_modules/core-js-pure/internals/function-call.js","webpack://Aeternity/./node_modules/core-js-pure/internals/function-name.js","webpack://Aeternity/./node_modules/core-js-pure/internals/function-uncurry-this-accessor.js","webpack://Aeternity/./node_modules/core-js-pure/internals/function-uncurry-this-clause.js","webpack://Aeternity/./node_modules/core-js-pure/internals/function-uncurry-this.js","webpack://Aeternity/./node_modules/core-js-pure/internals/get-built-in.js","webpack://Aeternity/./node_modules/core-js-pure/internals/get-json-replacer-function.js","webpack://Aeternity/./node_modules/core-js-pure/internals/get-method.js","webpack://Aeternity/./node_modules/core-js-pure/internals/global-this.js","webpack://Aeternity/./node_modules/core-js-pure/internals/has-own-property.js","webpack://Aeternity/./node_modules/core-js-pure/internals/hidden-keys.js","webpack://Aeternity/./node_modules/core-js-pure/internals/html.js","webpack://Aeternity/./node_modules/core-js-pure/internals/ie8-dom-define.js","webpack://Aeternity/./node_modules/core-js-pure/internals/indexed-object.js","webpack://Aeternity/./node_modules/core-js-pure/internals/inspect-source.js","webpack://Aeternity/./node_modules/core-js-pure/internals/internal-state.js","webpack://Aeternity/./node_modules/core-js-pure/internals/is-array.js","webpack://Aeternity/./node_modules/core-js-pure/internals/is-callable.js","webpack://Aeternity/./node_modules/core-js-pure/internals/is-constructor.js","webpack://Aeternity/./node_modules/core-js-pure/internals/is-forced.js","webpack://Aeternity/./node_modules/core-js-pure/internals/is-null-or-undefined.js","webpack://Aeternity/./node_modules/core-js-pure/internals/is-object.js","webpack://Aeternity/./node_modules/core-js-pure/internals/is-possible-prototype.js","webpack://Aeternity/./node_modules/core-js-pure/internals/is-pure.js","webpack://Aeternity/./node_modules/core-js-pure/internals/is-symbol.js","webpack://Aeternity/./node_modules/core-js-pure/internals/iterator-create-constructor.js","webpack://Aeternity/./node_modules/core-js-pure/internals/iterator-define.js","webpack://Aeternity/./node_modules/core-js-pure/internals/iterators-core.js","webpack://Aeternity/./node_modules/core-js-pure/internals/iterators.js","webpack://Aeternity/./node_modules/core-js-pure/internals/length-of-array-like.js","webpack://Aeternity/./node_modules/core-js-pure/internals/math-trunc.js","webpack://Aeternity/./node_modules/core-js-pure/internals/object-create.js","webpack://Aeternity/./node_modules/core-js-pure/internals/object-define-properties.js","webpack://Aeternity/./node_modules/core-js-pure/internals/object-define-property.js","webpack://Aeternity/./node_modules/core-js-pure/internals/object-get-own-property-descriptor.js","webpack://Aeternity/./node_modules/core-js-pure/internals/object-get-own-property-names-external.js","webpack://Aeternity/./node_modules/core-js-pure/internals/object-get-own-property-names.js","webpack://Aeternity/./node_modules/core-js-pure/internals/object-get-own-property-symbols.js","webpack://Aeternity/./node_modules/core-js-pure/internals/object-get-prototype-of.js","webpack://Aeternity/./node_modules/core-js-pure/internals/object-is-prototype-of.js","webpack://Aeternity/./node_modules/core-js-pure/internals/object-keys-internal.js","webpack://Aeternity/./node_modules/core-js-pure/internals/object-keys.js","webpack://Aeternity/./node_modules/core-js-pure/internals/object-property-is-enumerable.js","webpack://Aeternity/./node_modules/core-js-pure/internals/object-set-prototype-of.js","webpack://Aeternity/./node_modules/core-js-pure/internals/object-to-string.js","webpack://Aeternity/./node_modules/core-js-pure/internals/ordinary-to-primitive.js","webpack://Aeternity/./node_modules/core-js-pure/internals/path.js","webpack://Aeternity/./node_modules/core-js-pure/internals/require-object-coercible.js","webpack://Aeternity/./node_modules/core-js-pure/internals/set-to-string-tag.js","webpack://Aeternity/./node_modules/core-js-pure/internals/shared-key.js","webpack://Aeternity/./node_modules/core-js-pure/internals/shared-store.js","webpack://Aeternity/./node_modules/core-js-pure/internals/shared.js","webpack://Aeternity/./node_modules/core-js-pure/internals/string-multibyte.js","webpack://Aeternity/./node_modules/core-js-pure/internals/symbol-constructor-detection.js","webpack://Aeternity/./node_modules/core-js-pure/internals/symbol-define-to-primitive.js","webpack://Aeternity/./node_modules/core-js-pure/internals/symbol-is-registered.js","webpack://Aeternity/./node_modules/core-js-pure/internals/symbol-is-well-known.js","webpack://Aeternity/./node_modules/core-js-pure/internals/symbol-registry-detection.js","webpack://Aeternity/./node_modules/core-js-pure/internals/to-absolute-index.js","webpack://Aeternity/./node_modules/core-js-pure/internals/to-indexed-object.js","webpack://Aeternity/./node_modules/core-js-pure/internals/to-integer-or-infinity.js","webpack://Aeternity/./node_modules/core-js-pure/internals/to-length.js","webpack://Aeternity/./node_modules/core-js-pure/internals/to-object.js","webpack://Aeternity/./node_modules/core-js-pure/internals/to-primitive.js","webpack://Aeternity/./node_modules/core-js-pure/internals/to-property-key.js","webpack://Aeternity/./node_modules/core-js-pure/internals/to-string-tag-support.js","webpack://Aeternity/./node_modules/core-js-pure/internals/to-string.js","webpack://Aeternity/./node_modules/core-js-pure/internals/try-to-string.js","webpack://Aeternity/./node_modules/core-js-pure/internals/uid.js","webpack://Aeternity/./node_modules/core-js-pure/internals/use-symbol-as-uid.js","webpack://Aeternity/./node_modules/core-js-pure/internals/v8-prototype-define-bug.js","webpack://Aeternity/./node_modules/core-js-pure/internals/weak-map-basic-detection.js","webpack://Aeternity/./node_modules/core-js-pure/internals/well-known-symbol-define.js","webpack://Aeternity/./node_modules/core-js-pure/internals/well-known-symbol-wrapped.js","webpack://Aeternity/./node_modules/core-js-pure/internals/well-known-symbol.js","webpack://Aeternity/./node_modules/core-js-pure/modules/es.array.concat.js","webpack://Aeternity/./node_modules/core-js-pure/modules/es.array.iterator.js","webpack://Aeternity/./node_modules/core-js-pure/modules/es.json.stringify.js","webpack://Aeternity/./node_modules/core-js-pure/modules/es.json.to-string-tag.js","webpack://Aeternity/./node_modules/core-js-pure/modules/es.object.define-property.js","webpack://Aeternity/./node_modules/core-js-pure/modules/es.object.get-own-property-symbols.js","webpack://Aeternity/./node_modules/core-js-pure/modules/es.string.iterator.js","webpack://Aeternity/./node_modules/core-js-pure/modules/es.symbol.async-iterator.js","webpack://Aeternity/./node_modules/core-js-pure/modules/es.symbol.constructor.js","webpack://Aeternity/./node_modules/core-js-pure/modules/es.symbol.for.js","webpack://Aeternity/./node_modules/core-js-pure/modules/es.symbol.has-instance.js","webpack://Aeternity/./node_modules/core-js-pure/modules/es.symbol.is-concat-spreadable.js","webpack://Aeternity/./node_modules/core-js-pure/modules/es.symbol.iterator.js","webpack://Aeternity/./node_modules/core-js-pure/modules/es.symbol.js","webpack://Aeternity/./node_modules/core-js-pure/modules/es.symbol.key-for.js","webpack://Aeternity/./node_modules/core-js-pure/modules/es.symbol.match-all.js","webpack://Aeternity/./node_modules/core-js-pure/modules/es.symbol.match.js","webpack://Aeternity/./node_modules/core-js-pure/modules/es.symbol.replace.js","webpack://Aeternity/./node_modules/core-js-pure/modules/es.symbol.search.js","webpack://Aeternity/./node_modules/core-js-pure/modules/es.symbol.species.js","webpack://Aeternity/./node_modules/core-js-pure/modules/es.symbol.split.js","webpack://Aeternity/./node_modules/core-js-pure/modules/es.symbol.to-primitive.js","webpack://Aeternity/./node_modules/core-js-pure/modules/es.symbol.to-string-tag.js","webpack://Aeternity/./node_modules/core-js-pure/modules/es.symbol.unscopables.js","webpack://Aeternity/./node_modules/core-js-pure/modules/esnext.function.metadata.js","webpack://Aeternity/./node_modules/core-js-pure/modules/esnext.symbol.async-dispose.js","webpack://Aeternity/./node_modules/core-js-pure/modules/esnext.symbol.custom-matcher.js","webpack://Aeternity/./node_modules/core-js-pure/modules/esnext.symbol.dispose.js","webpack://Aeternity/./node_modules/core-js-pure/modules/esnext.symbol.is-registered-symbol.js","webpack://Aeternity/./node_modules/core-js-pure/modules/esnext.symbol.is-registered.js","webpack://Aeternity/./node_modules/core-js-pure/modules/esnext.symbol.is-well-known-symbol.js","webpack://Aeternity/./node_modules/core-js-pure/modules/esnext.symbol.is-well-known.js","webpack://Aeternity/./node_modules/core-js-pure/modules/esnext.symbol.matcher.js","webpack://Aeternity/./node_modules/core-js-pure/modules/esnext.symbol.metadata-key.js","webpack://Aeternity/./node_modules/core-js-pure/modules/esnext.symbol.metadata.js","webpack://Aeternity/./node_modules/core-js-pure/modules/esnext.symbol.observable.js","webpack://Aeternity/./node_modules/core-js-pure/modules/esnext.symbol.pattern-match.js","webpack://Aeternity/./node_modules/core-js-pure/modules/esnext.symbol.replace-all.js","webpack://Aeternity/./node_modules/core-js-pure/modules/web.dom-collections.iterator.js","webpack://Aeternity/./node_modules/core-js-pure/stable/object/define-property.js","webpack://Aeternity/./node_modules/core-js-pure/stable/symbol/index.js","webpack://Aeternity/./node_modules/core-js-pure/stable/symbol/iterator.js","webpack://Aeternity/./node_modules/core-js-pure/stable/symbol/to-primitive.js","webpack://Aeternity/webpack/bootstrap","webpack://Aeternity/webpack/runtime/compat get default export","webpack://Aeternity/webpack/runtime/define property getters","webpack://Aeternity/webpack/runtime/global","webpack://Aeternity/webpack/runtime/hasOwnProperty shorthand","webpack://Aeternity/webpack/runtime/make namespace object","webpack://Aeternity/./node_modules/bignumber.js/bignumber.mjs","webpack://Aeternity/./src/utils/bignumber.ts","webpack://Aeternity/./src/utils/errors.ts","webpack://Aeternity/./src/utils/amount-formatter.ts","webpack://Aeternity/./node_modules/@azure/core-rest-pipeline/dist/browser/pipeline.js","webpack://Aeternity/./node_modules/@azure/logger/dist/browser/debug.js","webpack://Aeternity/./node_modules/@azure/logger/dist/browser/log.common.js","webpack://Aeternity/./node_modules/@azure/logger/dist/browser/index.js","webpack://Aeternity/./node_modules/@azure/core-rest-pipeline/dist/browser/log.js","webpack://Aeternity/./node_modules/@azure/abort-controller/dist/browser/AbortError.js","webpack://Aeternity/./node_modules/@azure/core-util/dist/browser/object.js","webpack://Aeternity/./node_modules/@azure/core-util/dist/browser/error.js","webpack://Aeternity/./node_modules/@azure/core-util/dist/browser/bytesEncoding.common.js","webpack://Aeternity/./node_modules/@azure/core-util/dist/browser/uuidUtils.js","webpack://Aeternity/./node_modules/@azure/core-util/dist/browser/uuidUtils.common.js","webpack://Aeternity/./node_modules/@azure/core-util/dist/browser/checkEnvironment.js","webpack://Aeternity/./node_modules/@azure/core-rest-pipeline/dist/browser/util/sanitizer.js","webpack://Aeternity/./node_modules/@azure/core-rest-pipeline/dist/browser/policies/redirectPolicy.js","webpack://Aeternity/./node_modules/@azure/core-rest-pipeline/dist/browser/constants.js","webpack://Aeternity/./node_modules/@azure/core-rest-pipeline/dist/browser/util/userAgent.js","webpack://Aeternity/./node_modules/@azure/core-rest-pipeline/dist/browser/util/userAgentPlatform.js","webpack://Aeternity/./node_modules/@azure/core-rest-pipeline/dist/browser/policies/userAgentPolicy.js","webpack://Aeternity/./node_modules/@azure/core-rest-pipeline/dist/browser/util/file.js","webpack://Aeternity/./node_modules/@azure/core-rest-pipeline/dist/browser/util/typeGuards.js","webpack://Aeternity/./node_modules/@azure/core-rest-pipeline/dist/browser/util/concat.common.js","webpack://Aeternity/./node_modules/@azure/core-rest-pipeline/dist/browser/policies/multipartPolicy.js","webpack://Aeternity/./node_modules/@azure/core-rest-pipeline/dist/browser/util/helpers.js","webpack://Aeternity/./node_modules/@azure/core-rest-pipeline/dist/browser/retryStrategies/throttlingRetryStrategy.js","webpack://Aeternity/./node_modules/@azure/core-rest-pipeline/dist/browser/retryStrategies/exponentialRetryStrategy.js","webpack://Aeternity/./node_modules/@azure/core-util/dist/browser/delay.js","webpack://Aeternity/./node_modules/@azure/core-util/dist/browser/random.js","webpack://Aeternity/./node_modules/@azure/core-rest-pipeline/dist/browser/policies/retryPolicy.js","webpack://Aeternity/./node_modules/@azure/core-rest-pipeline/dist/browser/httpHeaders.js","webpack://Aeternity/./node_modules/@azure/core-rest-pipeline/dist/browser/policies/proxyPolicy.common.js","webpack://Aeternity/./node_modules/@azure/core-rest-pipeline/dist/browser/policies/setClientRequestIdPolicy.js","webpack://Aeternity/./node_modules/@azure/core-tracing/dist/browser/tracingContext.js","webpack://Aeternity/./node_modules/@azure/core-tracing/dist/browser/state.js","webpack://Aeternity/./node_modules/@azure/core-tracing/dist/browser/instrumenter.js","webpack://Aeternity/./node_modules/@azure/core-rest-pipeline/dist/browser/util/inspect.common.js","webpack://Aeternity/./node_modules/@azure/core-rest-pipeline/dist/browser/restError.js","webpack://Aeternity/./node_modules/@azure/core-rest-pipeline/dist/browser/createPipelineFromOptions.js","webpack://Aeternity/./node_modules/@azure/core-rest-pipeline/dist/browser/policies/tlsPolicy.js","webpack://Aeternity/./node_modules/@azure/core-rest-pipeline/dist/browser/policies/agentPolicy.js","webpack://Aeternity/./node_modules/@azure/core-rest-pipeline/dist/browser/policies/decompressResponsePolicy.js","webpack://Aeternity/./node_modules/@azure/core-rest-pipeline/dist/browser/policies/formDataPolicy.js","webpack://Aeternity/./node_modules/@azure/core-rest-pipeline/dist/browser/policies/defaultRetryPolicy.js","webpack://Aeternity/./node_modules/@azure/core-rest-pipeline/dist/browser/policies/tracingPolicy.js","webpack://Aeternity/./node_modules/@azure/core-tracing/dist/browser/tracingClient.js","webpack://Aeternity/./node_modules/@azure/core-rest-pipeline/dist/browser/policies/logPolicy.js","webpack://Aeternity/./node_modules/@azure/core-rest-pipeline/dist/browser/fetchHttpClient.js","webpack://Aeternity/./node_modules/@azure/core-rest-pipeline/dist/browser/pipelineRequest.js","webpack://Aeternity/./node_modules/@azure/core-rest-pipeline/dist/browser/util/tokenCycler.js","webpack://Aeternity/./node_modules/@azure/core-rest-pipeline/dist/browser/policies/bearerTokenAuthenticationPolicy.js","webpack://Aeternity/./src/utils/other.ts","webpack://Aeternity/./src/utils/wrap-proxy.ts","webpack://Aeternity/./src/utils/encoder-types.ts","webpack://Aeternity/./node_modules/base-x/src/esm/index.js","webpack://Aeternity/./node_modules/bs58/src/esm/index.js","webpack://Aeternity/./src/utils/encoder.ts","webpack://Aeternity/./src/utils/crypto.ts","webpack://Aeternity/./src/utils/bytes.ts","webpack://Aeternity/./src/tx/builder/constants.ts","webpack://Aeternity/./src/tx/builder/helpers.ts","webpack://Aeternity/./src/chain.ts","webpack://Aeternity/./src/tx/builder/field-types/ct-version.ts","webpack://Aeternity/./src/tx/builder/field-types/abi-version.ts","webpack://Aeternity/./src/tx/builder/field-types/address.ts","webpack://Aeternity/./src/tx/builder/field-types/array.ts","webpack://Aeternity/./src/tx/builder/field-types/u-int.ts","webpack://Aeternity/./src/tx/builder/field-types/coin-amount.ts","webpack://Aeternity/./src/tx/builder/field-types/encoded.ts","webpack://Aeternity/./src/tx/builder/field-types/entry.ts","webpack://Aeternity/./src/tx/builder/field-types/enumeration.ts","webpack://Aeternity/./src/tx/builder/field-types/gas-price.ts","webpack://Aeternity/./src/tx/builder/field-types/fee.ts","webpack://Aeternity/./src/tx/builder/field-types/short-u-int.ts","webpack://Aeternity/./src/tx/builder/field-types/gas-limit.ts","webpack://Aeternity/./src/tx/builder/field-types/field.ts","webpack://Aeternity/./src/tx/builder/field-types/name.ts","webpack://Aeternity/./src/tx/builder/field-types/name-fee.ts","webpack://Aeternity/./src/tx/builder/field-types/name-id.ts","webpack://Aeternity/./src/tx/builder/field-types/nonce.ts","webpack://Aeternity/./src/tx/builder/field-types/pointers.ts","webpack://Aeternity/./src/tx/builder/field-types/query-fee.ts","webpack://Aeternity/./src/tx/builder/field-types/raw.ts","webpack://Aeternity/./src/tx/builder/field-types/short-u-int-const.ts","webpack://Aeternity/./src/tx/builder/field-types/string.ts","webpack://Aeternity/./src/tx/builder/field-types/transaction.ts","webpack://Aeternity/./src/tx/builder/field-types/ttl.ts","webpack://Aeternity/./src/tx/builder/field-types/with-default.ts","webpack://Aeternity/./src/tx/builder/field-types/with-formatting.ts","webpack://Aeternity/./src/tx/builder/entry/constants.ts","webpack://Aeternity/./src/tx/builder/schema.ts","webpack://Aeternity/./src/tx/builder/common.ts","webpack://Aeternity/./src/tx/builder/field-types/boolean.ts","webpack://Aeternity/./src/tx/builder/field-types/map.ts","webpack://Aeternity/./src/tx/builder/field-types/mptree.ts","webpack://Aeternity/./src/tx/builder/field-types/wrapped.ts","webpack://Aeternity/./src/tx/builder/entry/schema.ts","webpack://Aeternity/./src/tx/builder/entry/index.ts","webpack://Aeternity/./src/tx/builder/index.ts","webpack://Aeternity/./node_modules/@azure/core-client/dist/browser/base64.js","webpack://Aeternity/./node_modules/@azure/core-client/dist/browser/interfaces.js","webpack://Aeternity/./node_modules/@azure/core-client/dist/browser/utils.js","webpack://Aeternity/./node_modules/@azure/core-client/dist/browser/serializer.js","webpack://Aeternity/./node_modules/@azure/core-client/dist/browser/state.js","webpack://Aeternity/./node_modules/@azure/core-client/dist/browser/operationHelpers.js","webpack://Aeternity/./node_modules/@azure/core-client/dist/browser/deserializationPolicy.js","webpack://Aeternity/./node_modules/@azure/core-client/dist/browser/interfaceHelpers.js","webpack://Aeternity/./node_modules/@azure/core-client/dist/browser/pipeline.js","webpack://Aeternity/./node_modules/@azure/core-client/dist/browser/serializationPolicy.js","webpack://Aeternity/./node_modules/@azure/core-client/dist/browser/httpClientCache.js","webpack://Aeternity/./node_modules/@azure/core-client/dist/browser/urlHelpers.js","webpack://Aeternity/./node_modules/@azure/core-client/dist/browser/log.js","webpack://Aeternity/./node_modules/@azure/core-client/dist/browser/serviceClient.js","webpack://Aeternity/./src/utils/semver-satisfies.ts","webpack://Aeternity/./src/utils/autorest.ts","webpack://Aeternity/./src/apis/node/models/mappers.ts","webpack://Aeternity/./src/apis/node/models/parameters.ts","webpack://Aeternity/./src/apis/node/node.ts","webpack://Aeternity/./src/Node.ts","webpack://Aeternity/./src/tx/transaction-signer.ts","webpack://Aeternity/./src/account/Base.ts","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/Errors/TypeResolveError.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/FateTypes.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/TypeResolver.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/api/TypeResolver.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/Errors/InternalError.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/utils/assert.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/FateTag.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/Errors/FatePrefixError.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/TypeFactory.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/types/FateData.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/Errors/SerializerError.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/Serializers/BaseSerializer.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/utils/int2ByteArray.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/Errors/FormatError.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/Errors/FateTypeError.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/types/FateBytes.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/utils/hexStringToByteArray.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/types/FateAddress.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/types/FateAccountAddress.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/Serializers/AddressSerializer.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/utils/RLPInt.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/types/FateBits.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/utils/abs.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/Serializers/BitsSerializer.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/types/FateBool.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/Serializers/BoolSerializer.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/types/FateByteArray.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/types/FateInt.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/Serializers/IntSerializer.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/Serializers/ByteArraySerializer.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/Serializers/BytesSerializer.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/types/FateChannelAddress.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/Serializers/ChannelSerializer.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/types/FateContractAddress.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/Serializers/ContractSerializer.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/types/FateVoid.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/Serializers/VoidSerializer.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/types/FateList.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/Serializers/ListSerializer.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/types/FateMap.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/types/FateTuple.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/types/FateSet.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/Serializers/SetSerializer.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/FateComparator.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/Serializers/MapSerializer.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/types/FateOracleQueryAddress.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/Serializers/OracleQuerySerializer.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/types/FateOracleAddress.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/Serializers/OracleSerializer.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/types/FateString.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/Serializers/StringSerializer.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/Serializers/TupleSerializer.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/types/FateVariant.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/Serializers/VariantSerializer.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/types/FateBls12381Field.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/types/FateBls12381Fr.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/types/FateBls12381Fp.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/Serializers/Bls12381FieldSerializer.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/types/FateCalldata.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/Serializers/CalldataSerializer.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/Serializers/TypeSerializer.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/FateOpcodes.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/Serializers/BytecodeSerializer.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/Serializers/ContractBytecodeSerializer.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/Serializer.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/utils/base64check.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/utils/base58check.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/ApiEncoder.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/utils/bls12381.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/Mapper/CanonicalMapper.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/types/FateHash.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/types/FateSignature.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/DataFactory/BaseDataFactory.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/DataFactory/PrimitiveDataFactory.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/DataFactory/ListDataFactory.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/DataFactory/SetDataFactory.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/DataFactory/MapDataFactory.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/DataFactory/TupleDataFactory.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/DataFactory/RecordDataFactory.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/DataFactory/VariantDataFactory.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/utils/hash.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/DataFactory/EventDataFactory.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/DataFactory/Bls12381DataFactory.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/DataFactory/CallDataFactory.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/DataFactory/CompositeDataFactory.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/utils/zip.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/Mapper/InternalMapper.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/ExternalDataFactory.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/ContractByteArrayEncoder.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/api/ContractByteArrayEncoder.js","webpack://Aeternity/./src/utils/typed-data.ts","webpack://Aeternity/./src/account/Memory.ts","webpack://Aeternity/./src/tx/execution-cost.ts","webpack://Aeternity/./src/tx/validator.ts","webpack://Aeternity/./src/send-transaction.ts","webpack://Aeternity/./src/utils/jwt.ts","webpack://Aeternity/./src/tx/builder/delegation/schema.ts","webpack://Aeternity/./src/tx/builder/delegation/index.ts","webpack://Aeternity/./src/aens.ts","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/AciTypeResolver.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/EventEncoder.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/Errors/EncoderError.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/Encoder.js","webpack://Aeternity/./node_modules/@aeternity/aepp-calldata/src/api/Encoder.js","webpack://Aeternity/./src/contract/Contract.ts","webpack://Aeternity/./src/oracle/OracleBase.ts","webpack://Aeternity/./src/oracle/Oracle.ts","webpack://Aeternity/./src/oracle/OracleClient.ts","webpack://Aeternity/./src/spend.ts","webpack://Aeternity/./src/contract/ga.ts","webpack://Aeternity/./node_modules/@babel/runtime-corejs3/helpers/esm/typeof.js","webpack://Aeternity/./node_modules/@babel/runtime-corejs3/helpers/esm/defineProperty.js","webpack://Aeternity/./node_modules/@babel/runtime-corejs3/helpers/esm/toPropertyKey.js","webpack://Aeternity/./node_modules/@babel/runtime-corejs3/helpers/esm/toPrimitive.js","webpack://Aeternity/./src/AeSdkMethods.ts","webpack://Aeternity/./src/AeSdkBase.ts","webpack://Aeternity/./src/AeSdk.ts","webpack://Aeternity/./src/aepp-wallet-communication/schema.ts","webpack://Aeternity/./src/account/Rpc.ts","webpack://Aeternity/./src/aepp-wallet-communication/rpc/RpcClient.ts","webpack://Aeternity/./src/AeSdkAepp.ts","webpack://Aeternity/./src/aepp-wallet-communication/rpc/types.ts","webpack://Aeternity/./src/aepp-wallet-communication/WalletConnectorFrameBase.ts","webpack://Aeternity/./src/aepp-wallet-communication/WalletConnectorFrame.ts","webpack://Aeternity/./src/aepp-wallet-communication/WalletConnectorFrameWithNode.ts","webpack://Aeternity/./src/utils/json-big.ts","webpack://Aeternity/./src/AeSdkWallet.ts","webpack://Aeternity/./node_modules/@noble/hashes/esm/utils.js","webpack://Aeternity/./node_modules/@noble/hashes/esm/hmac.js","webpack://Aeternity/./node_modules/@noble/hashes/esm/pbkdf2.js","webpack://Aeternity/./node_modules/@noble/hashes/esm/_md.js","webpack://Aeternity/./node_modules/@noble/hashes/esm/_u64.js","webpack://Aeternity/./node_modules/@noble/hashes/esm/sha2.js","webpack://Aeternity/./node_modules/@scure/bip39/esm/index.js","webpack://Aeternity/./src/account/BaseFactory.ts","webpack://Aeternity/./src/account/MnemonicFactory.ts","webpack://Aeternity/./src/account/Generalized.ts","webpack://Aeternity/./src/account/Ledger.ts","webpack://Aeternity/./src/account/LedgerFactory.ts","webpack://Aeternity/./src/account/Metamask.ts","webpack://Aeternity/./src/account/MetamaskFactory.ts","webpack://Aeternity/./src/contract/compiler/Base.ts","webpack://Aeternity/./src/apis/compiler/models/mappers.ts","webpack://Aeternity/./src/apis/compiler/models/parameters.ts","webpack://Aeternity/./src/apis/compiler/compiler.ts","webpack://Aeternity/./src/contract/compiler/Http.ts","webpack://Aeternity/./src/utils/string.ts","webpack://Aeternity/./src/channel/internal.ts","webpack://Aeternity/./src/channel/handlers.ts","webpack://Aeternity/./src/channel/Base.ts","webpack://Aeternity/./src/channel/Spend.ts","webpack://Aeternity/./src/channel/Contract.ts","webpack://Aeternity/./node_modules/isomorphic-ws/browser.js","webpack://Aeternity/./src/MiddlewareSubscriber.ts","webpack://Aeternity/./src/apis/middleware/models/parameters.ts","webpack://Aeternity/./src/apis/middleware/models/mappers.ts","webpack://Aeternity/./src/apis/middleware/middleware.ts","webpack://Aeternity/./src/utils/MiddlewarePage.ts","webpack://Aeternity/./src/Middleware.ts","webpack://Aeternity/./src/aepp-wallet-communication/connection-proxy.ts","webpack://Aeternity/./src/aepp-wallet-communication/connection/Browser.ts","webpack://Aeternity/./src/aepp-wallet-communication/connection/BrowserWindowMessage.ts","webpack://Aeternity/./src/aepp-wallet-communication/wallet-detector.ts","webpack://Aeternity/./src/aepp-wallet-communication/connection/BrowserRuntime.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Aeternity\"] = factory();\n\telse\n\t\troot[\"Aeternity\"] = factory();\n})(self, function() {\nreturn ","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n  lookup[i] = code[i]\n  revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n  var len = b64.length\n\n  if (len % 4 > 0) {\n    throw new Error('Invalid string. Length must be a multiple of 4')\n  }\n\n  // Trim off extra bytes after placeholder bytes are found\n  // See: https://github.com/beatgammit/base64-js/issues/42\n  var validLen = b64.indexOf('=')\n  if (validLen === -1) validLen = len\n\n  var placeHoldersLen = validLen === len\n    ? 0\n    : 4 - (validLen % 4)\n\n  return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n  var lens = getLens(b64)\n  var validLen = lens[0]\n  var placeHoldersLen = lens[1]\n  return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n  return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n  var tmp\n  var lens = getLens(b64)\n  var validLen = lens[0]\n  var placeHoldersLen = lens[1]\n\n  var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n  var curByte = 0\n\n  // if there are placeholders, only get up to the last complete 4 chars\n  var len = placeHoldersLen > 0\n    ? validLen - 4\n    : validLen\n\n  var i\n  for (i = 0; i < len; i += 4) {\n    tmp =\n      (revLookup[b64.charCodeAt(i)] << 18) |\n      (revLookup[b64.charCodeAt(i + 1)] << 12) |\n      (revLookup[b64.charCodeAt(i + 2)] << 6) |\n      revLookup[b64.charCodeAt(i + 3)]\n    arr[curByte++] = (tmp >> 16) & 0xFF\n    arr[curByte++] = (tmp >> 8) & 0xFF\n    arr[curByte++] = tmp & 0xFF\n  }\n\n  if (placeHoldersLen === 2) {\n    tmp =\n      (revLookup[b64.charCodeAt(i)] << 2) |\n      (revLookup[b64.charCodeAt(i + 1)] >> 4)\n    arr[curByte++] = tmp & 0xFF\n  }\n\n  if (placeHoldersLen === 1) {\n    tmp =\n      (revLookup[b64.charCodeAt(i)] << 10) |\n      (revLookup[b64.charCodeAt(i + 1)] << 4) |\n      (revLookup[b64.charCodeAt(i + 2)] >> 2)\n    arr[curByte++] = (tmp >> 8) & 0xFF\n    arr[curByte++] = tmp & 0xFF\n  }\n\n  return arr\n}\n\nfunction tripletToBase64 (num) {\n  return lookup[num >> 18 & 0x3F] +\n    lookup[num >> 12 & 0x3F] +\n    lookup[num >> 6 & 0x3F] +\n    lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n  var tmp\n  var output = []\n  for (var i = start; i < end; i += 3) {\n    tmp =\n      ((uint8[i] << 16) & 0xFF0000) +\n      ((uint8[i + 1] << 8) & 0xFF00) +\n      (uint8[i + 2] & 0xFF)\n    output.push(tripletToBase64(tmp))\n  }\n  return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n  var tmp\n  var len = uint8.length\n  var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n  var parts = []\n  var maxChunkLength = 16383 // must be multiple of 3\n\n  // go through the array every three bytes, we'll deal with trailing stuff later\n  for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n    parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n  }\n\n  // pad the end with zeros, but make sure to not forget the extra bytes\n  if (extraBytes === 1) {\n    tmp = uint8[len - 1]\n    parts.push(\n      lookup[tmp >> 2] +\n      lookup[(tmp << 4) & 0x3F] +\n      '=='\n    )\n  } else if (extraBytes === 2) {\n    tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n    parts.push(\n      lookup[tmp >> 10] +\n      lookup[(tmp >> 4) & 0x3F] +\n      lookup[(tmp << 2) & 0x3F] +\n      '='\n    )\n  }\n\n  return parts.join('')\n}\n",";(function (globalObject) {\r\n  'use strict';\r\n\r\n/*\r\n *      bignumber.js v9.3.0\r\n *      A JavaScript library for arbitrary-precision arithmetic.\r\n *      https://github.com/MikeMcl/bignumber.js\r\n *      Copyright (c) 2025 Michael Mclaughlin <M8ch88l@gmail.com>\r\n *      MIT Licensed.\r\n *\r\n *      BigNumber.prototype methods     |  BigNumber methods\r\n *                                      |\r\n *      absoluteValue            abs    |  clone\r\n *      comparedTo                      |  config               set\r\n *      decimalPlaces            dp     |      DECIMAL_PLACES\r\n *      dividedBy                div    |      ROUNDING_MODE\r\n *      dividedToIntegerBy       idiv   |      EXPONENTIAL_AT\r\n *      exponentiatedBy          pow    |      RANGE\r\n *      integerValue                    |      CRYPTO\r\n *      isEqualTo                eq     |      MODULO_MODE\r\n *      isFinite                        |      POW_PRECISION\r\n *      isGreaterThan            gt     |      FORMAT\r\n *      isGreaterThanOrEqualTo   gte    |      ALPHABET\r\n *      isInteger                       |  isBigNumber\r\n *      isLessThan               lt     |  maximum              max\r\n *      isLessThanOrEqualTo      lte    |  minimum              min\r\n *      isNaN                           |  random\r\n *      isNegative                      |  sum\r\n *      isPositive                      |\r\n *      isZero                          |\r\n *      minus                           |\r\n *      modulo                   mod    |\r\n *      multipliedBy             times  |\r\n *      negated                         |\r\n *      plus                            |\r\n *      precision                sd     |\r\n *      shiftedBy                       |\r\n *      squareRoot               sqrt   |\r\n *      toExponential                   |\r\n *      toFixed                         |\r\n *      toFormat                        |\r\n *      toFraction                      |\r\n *      toJSON                          |\r\n *      toNumber                        |\r\n *      toPrecision                     |\r\n *      toString                        |\r\n *      valueOf                         |\r\n *\r\n */\r\n\r\n\r\n  var BigNumber,\r\n    isNumeric = /^-?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?$/i,\r\n    mathceil = Math.ceil,\r\n    mathfloor = Math.floor,\r\n\r\n    bignumberError = '[BigNumber Error] ',\r\n    tooManyDigits = bignumberError + 'Number primitive has more than 15 significant digits: ',\r\n\r\n    BASE = 1e14,\r\n    LOG_BASE = 14,\r\n    MAX_SAFE_INTEGER = 0x1fffffffffffff,         // 2^53 - 1\r\n    // MAX_INT32 = 0x7fffffff,                   // 2^31 - 1\r\n    POWS_TEN = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13],\r\n    SQRT_BASE = 1e7,\r\n\r\n    // EDITABLE\r\n    // The limit on the value of DECIMAL_PLACES, TO_EXP_NEG, TO_EXP_POS, MIN_EXP, MAX_EXP, and\r\n    // the arguments to toExponential, toFixed, toFormat, and toPrecision.\r\n    MAX = 1E9;                                   // 0 to MAX_INT32\r\n\r\n\r\n  /*\r\n   * Create and return a BigNumber constructor.\r\n   */\r\n  function clone(configObject) {\r\n    var div, convertBase, parseNumeric,\r\n      P = BigNumber.prototype = { constructor: BigNumber, toString: null, valueOf: null },\r\n      ONE = new BigNumber(1),\r\n\r\n\r\n      //----------------------------- EDITABLE CONFIG DEFAULTS -------------------------------\r\n\r\n\r\n      // The default values below must be integers within the inclusive ranges stated.\r\n      // The values can also be changed at run-time using BigNumber.set.\r\n\r\n      // The maximum number of decimal places for operations involving division.\r\n      DECIMAL_PLACES = 20,                     // 0 to MAX\r\n\r\n      // The rounding mode used when rounding to the above decimal places, and when using\r\n      // toExponential, toFixed, toFormat and toPrecision, and round (default value).\r\n      // UP         0 Away from zero.\r\n      // DOWN       1 Towards zero.\r\n      // CEIL       2 Towards +Infinity.\r\n      // FLOOR      3 Towards -Infinity.\r\n      // HALF_UP    4 Towards nearest neighbour. If equidistant, up.\r\n      // HALF_DOWN  5 Towards nearest neighbour. If equidistant, down.\r\n      // HALF_EVEN  6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n      // HALF_CEIL  7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n      // HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n      ROUNDING_MODE = 4,                       // 0 to 8\r\n\r\n      // EXPONENTIAL_AT : [TO_EXP_NEG , TO_EXP_POS]\r\n\r\n      // The exponent value at and beneath which toString returns exponential notation.\r\n      // Number type: -7\r\n      TO_EXP_NEG = -7,                         // 0 to -MAX\r\n\r\n      // The exponent value at and above which toString returns exponential notation.\r\n      // Number type: 21\r\n      TO_EXP_POS = 21,                         // 0 to MAX\r\n\r\n      // RANGE : [MIN_EXP, MAX_EXP]\r\n\r\n      // The minimum exponent value, beneath which underflow to zero occurs.\r\n      // Number type: -324  (5e-324)\r\n      MIN_EXP = -1e7,                          // -1 to -MAX\r\n\r\n      // The maximum exponent value, above which overflow to Infinity occurs.\r\n      // Number type:  308  (1.7976931348623157e+308)\r\n      // For MAX_EXP > 1e7, e.g. new BigNumber('1e100000000').plus(1) may be slow.\r\n      MAX_EXP = 1e7,                           // 1 to MAX\r\n\r\n      // Whether to use cryptographically-secure random number generation, if available.\r\n      CRYPTO = false,                          // true or false\r\n\r\n      // The modulo mode used when calculating the modulus: a mod n.\r\n      // The quotient (q = a / n) is calculated according to the corresponding rounding mode.\r\n      // The remainder (r) is calculated as: r = a - n * q.\r\n      //\r\n      // UP        0 The remainder is positive if the dividend is negative, else is negative.\r\n      // DOWN      1 The remainder has the same sign as the dividend.\r\n      //             This modulo mode is commonly known as 'truncated division' and is\r\n      //             equivalent to (a % n) in JavaScript.\r\n      // FLOOR     3 The remainder has the same sign as the divisor (Python %).\r\n      // HALF_EVEN 6 This modulo mode implements the IEEE 754 remainder function.\r\n      // EUCLID    9 Euclidian division. q = sign(n) * floor(a / abs(n)).\r\n      //             The remainder is always positive.\r\n      //\r\n      // The truncated division, floored division, Euclidian division and IEEE 754 remainder\r\n      // modes are commonly used for the modulus operation.\r\n      // Although the other rounding modes can also be used, they may not give useful results.\r\n      MODULO_MODE = 1,                         // 0 to 9\r\n\r\n      // The maximum number of significant digits of the result of the exponentiatedBy operation.\r\n      // If POW_PRECISION is 0, there will be unlimited significant digits.\r\n      POW_PRECISION = 0,                       // 0 to MAX\r\n\r\n      // The format specification used by the BigNumber.prototype.toFormat method.\r\n      FORMAT = {\r\n        prefix: '',\r\n        groupSize: 3,\r\n        secondaryGroupSize: 0,\r\n        groupSeparator: ',',\r\n        decimalSeparator: '.',\r\n        fractionGroupSize: 0,\r\n        fractionGroupSeparator: '\\xA0',        // non-breaking space\r\n        suffix: ''\r\n      },\r\n\r\n      // The alphabet used for base conversion. It must be at least 2 characters long, with no '+',\r\n      // '-', '.', whitespace, or repeated character.\r\n      // '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_'\r\n      ALPHABET = '0123456789abcdefghijklmnopqrstuvwxyz',\r\n      alphabetHasNormalDecimalDigits = true;\r\n\r\n\r\n    //------------------------------------------------------------------------------------------\r\n\r\n\r\n    // CONSTRUCTOR\r\n\r\n\r\n    /*\r\n     * The BigNumber constructor and exported function.\r\n     * Create and return a new instance of a BigNumber object.\r\n     *\r\n     * v {number|string|BigNumber} A numeric value.\r\n     * [b] {number} The base of v. Integer, 2 to ALPHABET.length inclusive.\r\n     */\r\n    function BigNumber(v, b) {\r\n      var alphabet, c, caseChanged, e, i, isNum, len, str,\r\n        x = this;\r\n\r\n      // Enable constructor call without `new`.\r\n      if (!(x instanceof BigNumber)) return new BigNumber(v, b);\r\n\r\n      if (b == null) {\r\n\r\n        if (v && v._isBigNumber === true) {\r\n          x.s = v.s;\r\n\r\n          if (!v.c || v.e > MAX_EXP) {\r\n            x.c = x.e = null;\r\n          } else if (v.e < MIN_EXP) {\r\n            x.c = [x.e = 0];\r\n          } else {\r\n            x.e = v.e;\r\n            x.c = v.c.slice();\r\n          }\r\n\r\n          return;\r\n        }\r\n\r\n        if ((isNum = typeof v == 'number') && v * 0 == 0) {\r\n\r\n          // Use `1 / n` to handle minus zero also.\r\n          x.s = 1 / v < 0 ? (v = -v, -1) : 1;\r\n\r\n          // Fast path for integers, where n < 2147483648 (2**31).\r\n          if (v === ~~v) {\r\n            for (e = 0, i = v; i >= 10; i /= 10, e++);\r\n\r\n            if (e > MAX_EXP) {\r\n              x.c = x.e = null;\r\n            } else {\r\n              x.e = e;\r\n              x.c = [v];\r\n            }\r\n\r\n            return;\r\n          }\r\n\r\n          str = String(v);\r\n        } else {\r\n\r\n          if (!isNumeric.test(str = String(v))) return parseNumeric(x, str, isNum);\r\n\r\n          x.s = str.charCodeAt(0) == 45 ? (str = str.slice(1), -1) : 1;\r\n        }\r\n\r\n        // Decimal point?\r\n        if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n        // Exponential form?\r\n        if ((i = str.search(/e/i)) > 0) {\r\n\r\n          // Determine exponent.\r\n          if (e < 0) e = i;\r\n          e += +str.slice(i + 1);\r\n          str = str.substring(0, i);\r\n        } else if (e < 0) {\r\n\r\n          // Integer.\r\n          e = str.length;\r\n        }\r\n\r\n      } else {\r\n\r\n        // '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n        intCheck(b, 2, ALPHABET.length, 'Base');\r\n\r\n        // Allow exponential notation to be used with base 10 argument, while\r\n        // also rounding to DECIMAL_PLACES as with other bases.\r\n        if (b == 10 && alphabetHasNormalDecimalDigits) {\r\n          x = new BigNumber(v);\r\n          return round(x, DECIMAL_PLACES + x.e + 1, ROUNDING_MODE);\r\n        }\r\n\r\n        str = String(v);\r\n\r\n        if (isNum = typeof v == 'number') {\r\n\r\n          // Avoid potential interpretation of Infinity and NaN as base 44+ values.\r\n          if (v * 0 != 0) return parseNumeric(x, str, isNum, b);\r\n\r\n          x.s = 1 / v < 0 ? (str = str.slice(1), -1) : 1;\r\n\r\n          // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n          if (BigNumber.DEBUG && str.replace(/^0\\.0*|\\./, '').length > 15) {\r\n            throw Error\r\n             (tooManyDigits + v);\r\n          }\r\n        } else {\r\n          x.s = str.charCodeAt(0) === 45 ? (str = str.slice(1), -1) : 1;\r\n        }\r\n\r\n        alphabet = ALPHABET.slice(0, b);\r\n        e = i = 0;\r\n\r\n        // Check that str is a valid base b number.\r\n        // Don't use RegExp, so alphabet can contain special characters.\r\n        for (len = str.length; i < len; i++) {\r\n          if (alphabet.indexOf(c = str.charAt(i)) < 0) {\r\n            if (c == '.') {\r\n\r\n              // If '.' is not the first character and it has not be found before.\r\n              if (i > e) {\r\n                e = len;\r\n                continue;\r\n              }\r\n            } else if (!caseChanged) {\r\n\r\n              // Allow e.g. hexadecimal 'FF' as well as 'ff'.\r\n              if (str == str.toUpperCase() && (str = str.toLowerCase()) ||\r\n                  str == str.toLowerCase() && (str = str.toUpperCase())) {\r\n                caseChanged = true;\r\n                i = -1;\r\n                e = 0;\r\n                continue;\r\n              }\r\n            }\r\n\r\n            return parseNumeric(x, String(v), isNum, b);\r\n          }\r\n        }\r\n\r\n        // Prevent later check for length on converted number.\r\n        isNum = false;\r\n        str = convertBase(str, b, 10, x.s);\r\n\r\n        // Decimal point?\r\n        if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n        else e = str.length;\r\n      }\r\n\r\n      // Determine leading zeros.\r\n      for (i = 0; str.charCodeAt(i) === 48; i++);\r\n\r\n      // Determine trailing zeros.\r\n      for (len = str.length; str.charCodeAt(--len) === 48;);\r\n\r\n      if (str = str.slice(i, ++len)) {\r\n        len -= i;\r\n\r\n        // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n        if (isNum && BigNumber.DEBUG &&\r\n          len > 15 && (v > MAX_SAFE_INTEGER || v !== mathfloor(v))) {\r\n            throw Error\r\n             (tooManyDigits + (x.s * v));\r\n        }\r\n\r\n         // Overflow?\r\n        if ((e = e - i - 1) > MAX_EXP) {\r\n\r\n          // Infinity.\r\n          x.c = x.e = null;\r\n\r\n        // Underflow?\r\n        } else if (e < MIN_EXP) {\r\n\r\n          // Zero.\r\n          x.c = [x.e = 0];\r\n        } else {\r\n          x.e = e;\r\n          x.c = [];\r\n\r\n          // Transform base\r\n\r\n          // e is the base 10 exponent.\r\n          // i is where to slice str to get the first element of the coefficient array.\r\n          i = (e + 1) % LOG_BASE;\r\n          if (e < 0) i += LOG_BASE;  // i < 1\r\n\r\n          if (i < len) {\r\n            if (i) x.c.push(+str.slice(0, i));\r\n\r\n            for (len -= LOG_BASE; i < len;) {\r\n              x.c.push(+str.slice(i, i += LOG_BASE));\r\n            }\r\n\r\n            i = LOG_BASE - (str = str.slice(i)).length;\r\n          } else {\r\n            i -= len;\r\n          }\r\n\r\n          for (; i--; str += '0');\r\n          x.c.push(+str);\r\n        }\r\n      } else {\r\n\r\n        // Zero.\r\n        x.c = [x.e = 0];\r\n      }\r\n    }\r\n\r\n\r\n    // CONSTRUCTOR PROPERTIES\r\n\r\n\r\n    BigNumber.clone = clone;\r\n\r\n    BigNumber.ROUND_UP = 0;\r\n    BigNumber.ROUND_DOWN = 1;\r\n    BigNumber.ROUND_CEIL = 2;\r\n    BigNumber.ROUND_FLOOR = 3;\r\n    BigNumber.ROUND_HALF_UP = 4;\r\n    BigNumber.ROUND_HALF_DOWN = 5;\r\n    BigNumber.ROUND_HALF_EVEN = 6;\r\n    BigNumber.ROUND_HALF_CEIL = 7;\r\n    BigNumber.ROUND_HALF_FLOOR = 8;\r\n    BigNumber.EUCLID = 9;\r\n\r\n\r\n    /*\r\n     * Configure infrequently-changing library-wide settings.\r\n     *\r\n     * Accept an object with the following optional properties (if the value of a property is\r\n     * a number, it must be an integer within the inclusive range stated):\r\n     *\r\n     *   DECIMAL_PLACES   {number}           0 to MAX\r\n     *   ROUNDING_MODE    {number}           0 to 8\r\n     *   EXPONENTIAL_AT   {number|number[]}  -MAX to MAX  or  [-MAX to 0, 0 to MAX]\r\n     *   RANGE            {number|number[]}  -MAX to MAX (not zero)  or  [-MAX to -1, 1 to MAX]\r\n     *   CRYPTO           {boolean}          true or false\r\n     *   MODULO_MODE      {number}           0 to 9\r\n     *   POW_PRECISION       {number}           0 to MAX\r\n     *   ALPHABET         {string}           A string of two or more unique characters which does\r\n     *                                       not contain '.'.\r\n     *   FORMAT           {object}           An object with some of the following properties:\r\n     *     prefix                 {string}\r\n     *     groupSize              {number}\r\n     *     secondaryGroupSize     {number}\r\n     *     groupSeparator         {string}\r\n     *     decimalSeparator       {string}\r\n     *     fractionGroupSize      {number}\r\n     *     fractionGroupSeparator {string}\r\n     *     suffix                 {string}\r\n     *\r\n     * (The values assigned to the above FORMAT object properties are not checked for validity.)\r\n     *\r\n     * E.g.\r\n     * BigNumber.config({ DECIMAL_PLACES : 20, ROUNDING_MODE : 4 })\r\n     *\r\n     * Ignore properties/parameters set to null or undefined, except for ALPHABET.\r\n     *\r\n     * Return an object with the properties current values.\r\n     */\r\n    BigNumber.config = BigNumber.set = function (obj) {\r\n      var p, v;\r\n\r\n      if (obj != null) {\r\n\r\n        if (typeof obj == 'object') {\r\n\r\n          // DECIMAL_PLACES {number} Integer, 0 to MAX inclusive.\r\n          // '[BigNumber Error] DECIMAL_PLACES {not a primitive number|not an integer|out of range}: {v}'\r\n          if (obj.hasOwnProperty(p = 'DECIMAL_PLACES')) {\r\n            v = obj[p];\r\n            intCheck(v, 0, MAX, p);\r\n            DECIMAL_PLACES = v;\r\n          }\r\n\r\n          // ROUNDING_MODE {number} Integer, 0 to 8 inclusive.\r\n          // '[BigNumber Error] ROUNDING_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n          if (obj.hasOwnProperty(p = 'ROUNDING_MODE')) {\r\n            v = obj[p];\r\n            intCheck(v, 0, 8, p);\r\n            ROUNDING_MODE = v;\r\n          }\r\n\r\n          // EXPONENTIAL_AT {number|number[]}\r\n          // Integer, -MAX to MAX inclusive or\r\n          // [integer -MAX to 0 inclusive, 0 to MAX inclusive].\r\n          // '[BigNumber Error] EXPONENTIAL_AT {not a primitive number|not an integer|out of range}: {v}'\r\n          if (obj.hasOwnProperty(p = 'EXPONENTIAL_AT')) {\r\n            v = obj[p];\r\n            if (v && v.pop) {\r\n              intCheck(v[0], -MAX, 0, p);\r\n              intCheck(v[1], 0, MAX, p);\r\n              TO_EXP_NEG = v[0];\r\n              TO_EXP_POS = v[1];\r\n            } else {\r\n              intCheck(v, -MAX, MAX, p);\r\n              TO_EXP_NEG = -(TO_EXP_POS = v < 0 ? -v : v);\r\n            }\r\n          }\r\n\r\n          // RANGE {number|number[]} Non-zero integer, -MAX to MAX inclusive or\r\n          // [integer -MAX to -1 inclusive, integer 1 to MAX inclusive].\r\n          // '[BigNumber Error] RANGE {not a primitive number|not an integer|out of range|cannot be zero}: {v}'\r\n          if (obj.hasOwnProperty(p = 'RANGE')) {\r\n            v = obj[p];\r\n            if (v && v.pop) {\r\n              intCheck(v[0], -MAX, -1, p);\r\n              intCheck(v[1], 1, MAX, p);\r\n              MIN_EXP = v[0];\r\n              MAX_EXP = v[1];\r\n            } else {\r\n              intCheck(v, -MAX, MAX, p);\r\n              if (v) {\r\n                MIN_EXP = -(MAX_EXP = v < 0 ? -v : v);\r\n              } else {\r\n                throw Error\r\n                 (bignumberError + p + ' cannot be zero: ' + v);\r\n              }\r\n            }\r\n          }\r\n\r\n          // CRYPTO {boolean} true or false.\r\n          // '[BigNumber Error] CRYPTO not true or false: {v}'\r\n          // '[BigNumber Error] crypto unavailable'\r\n          if (obj.hasOwnProperty(p = 'CRYPTO')) {\r\n            v = obj[p];\r\n            if (v === !!v) {\r\n              if (v) {\r\n                if (typeof crypto != 'undefined' && crypto &&\r\n                 (crypto.getRandomValues || crypto.randomBytes)) {\r\n                  CRYPTO = v;\r\n                } else {\r\n                  CRYPTO = !v;\r\n                  throw Error\r\n                   (bignumberError + 'crypto unavailable');\r\n                }\r\n              } else {\r\n                CRYPTO = v;\r\n              }\r\n            } else {\r\n              throw Error\r\n               (bignumberError + p + ' not true or false: ' + v);\r\n            }\r\n          }\r\n\r\n          // MODULO_MODE {number} Integer, 0 to 9 inclusive.\r\n          // '[BigNumber Error] MODULO_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n          if (obj.hasOwnProperty(p = 'MODULO_MODE')) {\r\n            v = obj[p];\r\n            intCheck(v, 0, 9, p);\r\n            MODULO_MODE = v;\r\n          }\r\n\r\n          // POW_PRECISION {number} Integer, 0 to MAX inclusive.\r\n          // '[BigNumber Error] POW_PRECISION {not a primitive number|not an integer|out of range}: {v}'\r\n          if (obj.hasOwnProperty(p = 'POW_PRECISION')) {\r\n            v = obj[p];\r\n            intCheck(v, 0, MAX, p);\r\n            POW_PRECISION = v;\r\n          }\r\n\r\n          // FORMAT {object}\r\n          // '[BigNumber Error] FORMAT not an object: {v}'\r\n          if (obj.hasOwnProperty(p = 'FORMAT')) {\r\n            v = obj[p];\r\n            if (typeof v == 'object') FORMAT = v;\r\n            else throw Error\r\n             (bignumberError + p + ' not an object: ' + v);\r\n          }\r\n\r\n          // ALPHABET {string}\r\n          // '[BigNumber Error] ALPHABET invalid: {v}'\r\n          if (obj.hasOwnProperty(p = 'ALPHABET')) {\r\n            v = obj[p];\r\n\r\n            // Disallow if less than two characters,\r\n            // or if it contains '+', '-', '.', whitespace, or a repeated character.\r\n            if (typeof v == 'string' && !/^.?$|[+\\-.\\s]|(.).*\\1/.test(v)) {\r\n              alphabetHasNormalDecimalDigits = v.slice(0, 10) == '0123456789';\r\n              ALPHABET = v;\r\n            } else {\r\n              throw Error\r\n               (bignumberError + p + ' invalid: ' + v);\r\n            }\r\n          }\r\n\r\n        } else {\r\n\r\n          // '[BigNumber Error] Object expected: {v}'\r\n          throw Error\r\n           (bignumberError + 'Object expected: ' + obj);\r\n        }\r\n      }\r\n\r\n      return {\r\n        DECIMAL_PLACES: DECIMAL_PLACES,\r\n        ROUNDING_MODE: ROUNDING_MODE,\r\n        EXPONENTIAL_AT: [TO_EXP_NEG, TO_EXP_POS],\r\n        RANGE: [MIN_EXP, MAX_EXP],\r\n        CRYPTO: CRYPTO,\r\n        MODULO_MODE: MODULO_MODE,\r\n        POW_PRECISION: POW_PRECISION,\r\n        FORMAT: FORMAT,\r\n        ALPHABET: ALPHABET\r\n      };\r\n    };\r\n\r\n\r\n    /*\r\n     * Return true if v is a BigNumber instance, otherwise return false.\r\n     *\r\n     * If BigNumber.DEBUG is true, throw if a BigNumber instance is not well-formed.\r\n     *\r\n     * v {any}\r\n     *\r\n     * '[BigNumber Error] Invalid BigNumber: {v}'\r\n     */\r\n    BigNumber.isBigNumber = function (v) {\r\n      if (!v || v._isBigNumber !== true) return false;\r\n      if (!BigNumber.DEBUG) return true;\r\n\r\n      var i, n,\r\n        c = v.c,\r\n        e = v.e,\r\n        s = v.s;\r\n\r\n      out: if ({}.toString.call(c) == '[object Array]') {\r\n\r\n        if ((s === 1 || s === -1) && e >= -MAX && e <= MAX && e === mathfloor(e)) {\r\n\r\n          // If the first element is zero, the BigNumber value must be zero.\r\n          if (c[0] === 0) {\r\n            if (e === 0 && c.length === 1) return true;\r\n            break out;\r\n          }\r\n\r\n          // Calculate number of digits that c[0] should have, based on the exponent.\r\n          i = (e + 1) % LOG_BASE;\r\n          if (i < 1) i += LOG_BASE;\r\n\r\n          // Calculate number of digits of c[0].\r\n          //if (Math.ceil(Math.log(c[0] + 1) / Math.LN10) == i) {\r\n          if (String(c[0]).length == i) {\r\n\r\n            for (i = 0; i < c.length; i++) {\r\n              n = c[i];\r\n              if (n < 0 || n >= BASE || n !== mathfloor(n)) break out;\r\n            }\r\n\r\n            // Last element cannot be zero, unless it is the only element.\r\n            if (n !== 0) return true;\r\n          }\r\n        }\r\n\r\n      // Infinity/NaN\r\n      } else if (c === null && e === null && (s === null || s === 1 || s === -1)) {\r\n        return true;\r\n      }\r\n\r\n      throw Error\r\n        (bignumberError + 'Invalid BigNumber: ' + v);\r\n    };\r\n\r\n\r\n    /*\r\n     * Return a new BigNumber whose value is the maximum of the arguments.\r\n     *\r\n     * arguments {number|string|BigNumber}\r\n     */\r\n    BigNumber.maximum = BigNumber.max = function () {\r\n      return maxOrMin(arguments, -1);\r\n    };\r\n\r\n\r\n    /*\r\n     * Return a new BigNumber whose value is the minimum of the arguments.\r\n     *\r\n     * arguments {number|string|BigNumber}\r\n     */\r\n    BigNumber.minimum = BigNumber.min = function () {\r\n      return maxOrMin(arguments, 1);\r\n    };\r\n\r\n\r\n    /*\r\n     * Return a new BigNumber with a random value equal to or greater than 0 and less than 1,\r\n     * and with dp, or DECIMAL_PLACES if dp is omitted, decimal places (or less if trailing\r\n     * zeros are produced).\r\n     *\r\n     * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n     *\r\n     * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp}'\r\n     * '[BigNumber Error] crypto unavailable'\r\n     */\r\n    BigNumber.random = (function () {\r\n      var pow2_53 = 0x20000000000000;\r\n\r\n      // Return a 53 bit integer n, where 0 <= n < 9007199254740992.\r\n      // Check if Math.random() produces more than 32 bits of randomness.\r\n      // If it does, assume at least 53 bits are produced, otherwise assume at least 30 bits.\r\n      // 0x40000000 is 2^30, 0x800000 is 2^23, 0x1fffff is 2^21 - 1.\r\n      var random53bitInt = (Math.random() * pow2_53) & 0x1fffff\r\n       ? function () { return mathfloor(Math.random() * pow2_53); }\r\n       : function () { return ((Math.random() * 0x40000000 | 0) * 0x800000) +\r\n         (Math.random() * 0x800000 | 0); };\r\n\r\n      return function (dp) {\r\n        var a, b, e, k, v,\r\n          i = 0,\r\n          c = [],\r\n          rand = new BigNumber(ONE);\r\n\r\n        if (dp == null) dp = DECIMAL_PLACES;\r\n        else intCheck(dp, 0, MAX);\r\n\r\n        k = mathceil(dp / LOG_BASE);\r\n\r\n        if (CRYPTO) {\r\n\r\n          // Browsers supporting crypto.getRandomValues.\r\n          if (crypto.getRandomValues) {\r\n\r\n            a = crypto.getRandomValues(new Uint32Array(k *= 2));\r\n\r\n            for (; i < k;) {\r\n\r\n              // 53 bits:\r\n              // ((Math.pow(2, 32) - 1) * Math.pow(2, 21)).toString(2)\r\n              // 11111 11111111 11111111 11111111 11100000 00000000 00000000\r\n              // ((Math.pow(2, 32) - 1) >>> 11).toString(2)\r\n              //                                     11111 11111111 11111111\r\n              // 0x20000 is 2^21.\r\n              v = a[i] * 0x20000 + (a[i + 1] >>> 11);\r\n\r\n              // Rejection sampling:\r\n              // 0 <= v < 9007199254740992\r\n              // Probability that v >= 9e15, is\r\n              // 7199254740992 / 9007199254740992 ~= 0.0008, i.e. 1 in 1251\r\n              if (v >= 9e15) {\r\n                b = crypto.getRandomValues(new Uint32Array(2));\r\n                a[i] = b[0];\r\n                a[i + 1] = b[1];\r\n              } else {\r\n\r\n                // 0 <= v <= 8999999999999999\r\n                // 0 <= (v % 1e14) <= 99999999999999\r\n                c.push(v % 1e14);\r\n                i += 2;\r\n              }\r\n            }\r\n            i = k / 2;\r\n\r\n          // Node.js supporting crypto.randomBytes.\r\n          } else if (crypto.randomBytes) {\r\n\r\n            // buffer\r\n            a = crypto.randomBytes(k *= 7);\r\n\r\n            for (; i < k;) {\r\n\r\n              // 0x1000000000000 is 2^48, 0x10000000000 is 2^40\r\n              // 0x100000000 is 2^32, 0x1000000 is 2^24\r\n              // 11111 11111111 11111111 11111111 11111111 11111111 11111111\r\n              // 0 <= v < 9007199254740992\r\n              v = ((a[i] & 31) * 0x1000000000000) + (a[i + 1] * 0x10000000000) +\r\n                 (a[i + 2] * 0x100000000) + (a[i + 3] * 0x1000000) +\r\n                 (a[i + 4] << 16) + (a[i + 5] << 8) + a[i + 6];\r\n\r\n              if (v >= 9e15) {\r\n                crypto.randomBytes(7).copy(a, i);\r\n              } else {\r\n\r\n                // 0 <= (v % 1e14) <= 99999999999999\r\n                c.push(v % 1e14);\r\n                i += 7;\r\n              }\r\n            }\r\n            i = k / 7;\r\n          } else {\r\n            CRYPTO = false;\r\n            throw Error\r\n             (bignumberError + 'crypto unavailable');\r\n          }\r\n        }\r\n\r\n        // Use Math.random.\r\n        if (!CRYPTO) {\r\n\r\n          for (; i < k;) {\r\n            v = random53bitInt();\r\n            if (v < 9e15) c[i++] = v % 1e14;\r\n          }\r\n        }\r\n\r\n        k = c[--i];\r\n        dp %= LOG_BASE;\r\n\r\n        // Convert trailing digits to zeros according to dp.\r\n        if (k && dp) {\r\n          v = POWS_TEN[LOG_BASE - dp];\r\n          c[i] = mathfloor(k / v) * v;\r\n        }\r\n\r\n        // Remove trailing elements which are zero.\r\n        for (; c[i] === 0; c.pop(), i--);\r\n\r\n        // Zero?\r\n        if (i < 0) {\r\n          c = [e = 0];\r\n        } else {\r\n\r\n          // Remove leading elements which are zero and adjust exponent accordingly.\r\n          for (e = -1 ; c[0] === 0; c.splice(0, 1), e -= LOG_BASE);\r\n\r\n          // Count the digits of the first element of c to determine leading zeros, and...\r\n          for (i = 1, v = c[0]; v >= 10; v /= 10, i++);\r\n\r\n          // adjust the exponent accordingly.\r\n          if (i < LOG_BASE) e -= LOG_BASE - i;\r\n        }\r\n\r\n        rand.e = e;\r\n        rand.c = c;\r\n        return rand;\r\n      };\r\n    })();\r\n\r\n\r\n    /*\r\n     * Return a BigNumber whose value is the sum of the arguments.\r\n     *\r\n     * arguments {number|string|BigNumber}\r\n     */\r\n    BigNumber.sum = function () {\r\n      var i = 1,\r\n        args = arguments,\r\n        sum = new BigNumber(args[0]);\r\n      for (; i < args.length;) sum = sum.plus(args[i++]);\r\n      return sum;\r\n    };\r\n\r\n\r\n    // PRIVATE FUNCTIONS\r\n\r\n\r\n    // Called by BigNumber and BigNumber.prototype.toString.\r\n    convertBase = (function () {\r\n      var decimal = '0123456789';\r\n\r\n      /*\r\n       * Convert string of baseIn to an array of numbers of baseOut.\r\n       * Eg. toBaseOut('255', 10, 16) returns [15, 15].\r\n       * Eg. toBaseOut('ff', 16, 10) returns [2, 5, 5].\r\n       */\r\n      function toBaseOut(str, baseIn, baseOut, alphabet) {\r\n        var j,\r\n          arr = [0],\r\n          arrL,\r\n          i = 0,\r\n          len = str.length;\r\n\r\n        for (; i < len;) {\r\n          for (arrL = arr.length; arrL--; arr[arrL] *= baseIn);\r\n\r\n          arr[0] += alphabet.indexOf(str.charAt(i++));\r\n\r\n          for (j = 0; j < arr.length; j++) {\r\n\r\n            if (arr[j] > baseOut - 1) {\r\n              if (arr[j + 1] == null) arr[j + 1] = 0;\r\n              arr[j + 1] += arr[j] / baseOut | 0;\r\n              arr[j] %= baseOut;\r\n            }\r\n          }\r\n        }\r\n\r\n        return arr.reverse();\r\n      }\r\n\r\n      // Convert a numeric string of baseIn to a numeric string of baseOut.\r\n      // If the caller is toString, we are converting from base 10 to baseOut.\r\n      // If the caller is BigNumber, we are converting from baseIn to base 10.\r\n      return function (str, baseIn, baseOut, sign, callerIsToString) {\r\n        var alphabet, d, e, k, r, x, xc, y,\r\n          i = str.indexOf('.'),\r\n          dp = DECIMAL_PLACES,\r\n          rm = ROUNDING_MODE;\r\n\r\n        // Non-integer.\r\n        if (i >= 0) {\r\n          k = POW_PRECISION;\r\n\r\n          // Unlimited precision.\r\n          POW_PRECISION = 0;\r\n          str = str.replace('.', '');\r\n          y = new BigNumber(baseIn);\r\n          x = y.pow(str.length - i);\r\n          POW_PRECISION = k;\r\n\r\n          // Convert str as if an integer, then restore the fraction part by dividing the\r\n          // result by its base raised to a power.\r\n\r\n          y.c = toBaseOut(toFixedPoint(coeffToString(x.c), x.e, '0'),\r\n           10, baseOut, decimal);\r\n          y.e = y.c.length;\r\n        }\r\n\r\n        // Convert the number as integer.\r\n\r\n        xc = toBaseOut(str, baseIn, baseOut, callerIsToString\r\n         ? (alphabet = ALPHABET, decimal)\r\n         : (alphabet = decimal, ALPHABET));\r\n\r\n        // xc now represents str as an integer and converted to baseOut. e is the exponent.\r\n        e = k = xc.length;\r\n\r\n        // Remove trailing zeros.\r\n        for (; xc[--k] == 0; xc.pop());\r\n\r\n        // Zero?\r\n        if (!xc[0]) return alphabet.charAt(0);\r\n\r\n        // Does str represent an integer? If so, no need for the division.\r\n        if (i < 0) {\r\n          --e;\r\n        } else {\r\n          x.c = xc;\r\n          x.e = e;\r\n\r\n          // The sign is needed for correct rounding.\r\n          x.s = sign;\r\n          x = div(x, y, dp, rm, baseOut);\r\n          xc = x.c;\r\n          r = x.r;\r\n          e = x.e;\r\n        }\r\n\r\n        // xc now represents str converted to baseOut.\r\n\r\n        // The index of the rounding digit.\r\n        d = e + dp + 1;\r\n\r\n        // The rounding digit: the digit to the right of the digit that may be rounded up.\r\n        i = xc[d];\r\n\r\n        // Look at the rounding digits and mode to determine whether to round up.\r\n\r\n        k = baseOut / 2;\r\n        r = r || d < 0 || xc[d + 1] != null;\r\n\r\n        r = rm < 4 ? (i != null || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n              : i > k || i == k &&(rm == 4 || r || rm == 6 && xc[d - 1] & 1 ||\r\n               rm == (x.s < 0 ? 8 : 7));\r\n\r\n        // If the index of the rounding digit is not greater than zero, or xc represents\r\n        // zero, then the result of the base conversion is zero or, if rounding up, a value\r\n        // such as 0.00001.\r\n        if (d < 1 || !xc[0]) {\r\n\r\n          // 1^-dp or 0\r\n          str = r ? toFixedPoint(alphabet.charAt(1), -dp, alphabet.charAt(0)) : alphabet.charAt(0);\r\n        } else {\r\n\r\n          // Truncate xc to the required number of decimal places.\r\n          xc.length = d;\r\n\r\n          // Round up?\r\n          if (r) {\r\n\r\n            // Rounding up may mean the previous digit has to be rounded up and so on.\r\n            for (--baseOut; ++xc[--d] > baseOut;) {\r\n              xc[d] = 0;\r\n\r\n              if (!d) {\r\n                ++e;\r\n                xc = [1].concat(xc);\r\n              }\r\n            }\r\n          }\r\n\r\n          // Determine trailing zeros.\r\n          for (k = xc.length; !xc[--k];);\r\n\r\n          // E.g. [4, 11, 15] becomes 4bf.\r\n          for (i = 0, str = ''; i <= k; str += alphabet.charAt(xc[i++]));\r\n\r\n          // Add leading zeros, decimal point and trailing zeros as required.\r\n          str = toFixedPoint(str, e, alphabet.charAt(0));\r\n        }\r\n\r\n        // The caller will add the sign.\r\n        return str;\r\n      };\r\n    })();\r\n\r\n\r\n    // Perform division in the specified base. Called by div and convertBase.\r\n    div = (function () {\r\n\r\n      // Assume non-zero x and k.\r\n      function multiply(x, k, base) {\r\n        var m, temp, xlo, xhi,\r\n          carry = 0,\r\n          i = x.length,\r\n          klo = k % SQRT_BASE,\r\n          khi = k / SQRT_BASE | 0;\r\n\r\n        for (x = x.slice(); i--;) {\r\n          xlo = x[i] % SQRT_BASE;\r\n          xhi = x[i] / SQRT_BASE | 0;\r\n          m = khi * xlo + xhi * klo;\r\n          temp = klo * xlo + ((m % SQRT_BASE) * SQRT_BASE) + carry;\r\n          carry = (temp / base | 0) + (m / SQRT_BASE | 0) + khi * xhi;\r\n          x[i] = temp % base;\r\n        }\r\n\r\n        if (carry) x = [carry].concat(x);\r\n\r\n        return x;\r\n      }\r\n\r\n      function compare(a, b, aL, bL) {\r\n        var i, cmp;\r\n\r\n        if (aL != bL) {\r\n          cmp = aL > bL ? 1 : -1;\r\n        } else {\r\n\r\n          for (i = cmp = 0; i < aL; i++) {\r\n\r\n            if (a[i] != b[i]) {\r\n              cmp = a[i] > b[i] ? 1 : -1;\r\n              break;\r\n            }\r\n          }\r\n        }\r\n\r\n        return cmp;\r\n      }\r\n\r\n      function subtract(a, b, aL, base) {\r\n        var i = 0;\r\n\r\n        // Subtract b from a.\r\n        for (; aL--;) {\r\n          a[aL] -= i;\r\n          i = a[aL] < b[aL] ? 1 : 0;\r\n          a[aL] = i * base + a[aL] - b[aL];\r\n        }\r\n\r\n        // Remove leading zeros.\r\n        for (; !a[0] && a.length > 1; a.splice(0, 1));\r\n      }\r\n\r\n      // x: dividend, y: divisor.\r\n      return function (x, y, dp, rm, base) {\r\n        var cmp, e, i, more, n, prod, prodL, q, qc, rem, remL, rem0, xi, xL, yc0,\r\n          yL, yz,\r\n          s = x.s == y.s ? 1 : -1,\r\n          xc = x.c,\r\n          yc = y.c;\r\n\r\n        // Either NaN, Infinity or 0?\r\n        if (!xc || !xc[0] || !yc || !yc[0]) {\r\n\r\n          return new BigNumber(\r\n\r\n           // Return NaN if either NaN, or both Infinity or 0.\r\n           !x.s || !y.s || (xc ? yc && xc[0] == yc[0] : !yc) ? NaN :\r\n\r\n            // Return ±0 if x is ±0 or y is ±Infinity, or return ±Infinity as y is ±0.\r\n            xc && xc[0] == 0 || !yc ? s * 0 : s / 0\r\n         );\r\n        }\r\n\r\n        q = new BigNumber(s);\r\n        qc = q.c = [];\r\n        e = x.e - y.e;\r\n        s = dp + e + 1;\r\n\r\n        if (!base) {\r\n          base = BASE;\r\n          e = bitFloor(x.e / LOG_BASE) - bitFloor(y.e / LOG_BASE);\r\n          s = s / LOG_BASE | 0;\r\n        }\r\n\r\n        // Result exponent may be one less then the current value of e.\r\n        // The coefficients of the BigNumbers from convertBase may have trailing zeros.\r\n        for (i = 0; yc[i] == (xc[i] || 0); i++);\r\n\r\n        if (yc[i] > (xc[i] || 0)) e--;\r\n\r\n        if (s < 0) {\r\n          qc.push(1);\r\n          more = true;\r\n        } else {\r\n          xL = xc.length;\r\n          yL = yc.length;\r\n          i = 0;\r\n          s += 2;\r\n\r\n          // Normalise xc and yc so highest order digit of yc is >= base / 2.\r\n\r\n          n = mathfloor(base / (yc[0] + 1));\r\n\r\n          // Not necessary, but to handle odd bases where yc[0] == (base / 2) - 1.\r\n          // if (n > 1 || n++ == 1 && yc[0] < base / 2) {\r\n          if (n > 1) {\r\n            yc = multiply(yc, n, base);\r\n            xc = multiply(xc, n, base);\r\n            yL = yc.length;\r\n            xL = xc.length;\r\n          }\r\n\r\n          xi = yL;\r\n          rem = xc.slice(0, yL);\r\n          remL = rem.length;\r\n\r\n          // Add zeros to make remainder as long as divisor.\r\n          for (; remL < yL; rem[remL++] = 0);\r\n          yz = yc.slice();\r\n          yz = [0].concat(yz);\r\n          yc0 = yc[0];\r\n          if (yc[1] >= base / 2) yc0++;\r\n          // Not necessary, but to prevent trial digit n > base, when using base 3.\r\n          // else if (base == 3 && yc0 == 1) yc0 = 1 + 1e-15;\r\n\r\n          do {\r\n            n = 0;\r\n\r\n            // Compare divisor and remainder.\r\n            cmp = compare(yc, rem, yL, remL);\r\n\r\n            // If divisor < remainder.\r\n            if (cmp < 0) {\r\n\r\n              // Calculate trial digit, n.\r\n\r\n              rem0 = rem[0];\r\n              if (yL != remL) rem0 = rem0 * base + (rem[1] || 0);\r\n\r\n              // n is how many times the divisor goes into the current remainder.\r\n              n = mathfloor(rem0 / yc0);\r\n\r\n              //  Algorithm:\r\n              //  product = divisor multiplied by trial digit (n).\r\n              //  Compare product and remainder.\r\n              //  If product is greater than remainder:\r\n              //    Subtract divisor from product, decrement trial digit.\r\n              //  Subtract product from remainder.\r\n              //  If product was less than remainder at the last compare:\r\n              //    Compare new remainder and divisor.\r\n              //    If remainder is greater than divisor:\r\n              //      Subtract divisor from remainder, increment trial digit.\r\n\r\n              if (n > 1) {\r\n\r\n                // n may be > base only when base is 3.\r\n                if (n >= base) n = base - 1;\r\n\r\n                // product = divisor * trial digit.\r\n                prod = multiply(yc, n, base);\r\n                prodL = prod.length;\r\n                remL = rem.length;\r\n\r\n                // Compare product and remainder.\r\n                // If product > remainder then trial digit n too high.\r\n                // n is 1 too high about 5% of the time, and is not known to have\r\n                // ever been more than 1 too high.\r\n                while (compare(prod, rem, prodL, remL) == 1) {\r\n                  n--;\r\n\r\n                  // Subtract divisor from product.\r\n                  subtract(prod, yL < prodL ? yz : yc, prodL, base);\r\n                  prodL = prod.length;\r\n                  cmp = 1;\r\n                }\r\n              } else {\r\n\r\n                // n is 0 or 1, cmp is -1.\r\n                // If n is 0, there is no need to compare yc and rem again below,\r\n                // so change cmp to 1 to avoid it.\r\n                // If n is 1, leave cmp as -1, so yc and rem are compared again.\r\n                if (n == 0) {\r\n\r\n                  // divisor < remainder, so n must be at least 1.\r\n                  cmp = n = 1;\r\n                }\r\n\r\n                // product = divisor\r\n                prod = yc.slice();\r\n                prodL = prod.length;\r\n              }\r\n\r\n              if (prodL < remL) prod = [0].concat(prod);\r\n\r\n              // Subtract product from remainder.\r\n              subtract(rem, prod, remL, base);\r\n              remL = rem.length;\r\n\r\n               // If product was < remainder.\r\n              if (cmp == -1) {\r\n\r\n                // Compare divisor and new remainder.\r\n                // If divisor < new remainder, subtract divisor from remainder.\r\n                // Trial digit n too low.\r\n                // n is 1 too low about 5% of the time, and very rarely 2 too low.\r\n                while (compare(yc, rem, yL, remL) < 1) {\r\n                  n++;\r\n\r\n                  // Subtract divisor from remainder.\r\n                  subtract(rem, yL < remL ? yz : yc, remL, base);\r\n                  remL = rem.length;\r\n                }\r\n              }\r\n            } else if (cmp === 0) {\r\n              n++;\r\n              rem = [0];\r\n            } // else cmp === 1 and n will be 0\r\n\r\n            // Add the next digit, n, to the result array.\r\n            qc[i++] = n;\r\n\r\n            // Update the remainder.\r\n            if (rem[0]) {\r\n              rem[remL++] = xc[xi] || 0;\r\n            } else {\r\n              rem = [xc[xi]];\r\n              remL = 1;\r\n            }\r\n          } while ((xi++ < xL || rem[0] != null) && s--);\r\n\r\n          more = rem[0] != null;\r\n\r\n          // Leading zero?\r\n          if (!qc[0]) qc.splice(0, 1);\r\n        }\r\n\r\n        if (base == BASE) {\r\n\r\n          // To calculate q.e, first get the number of digits of qc[0].\r\n          for (i = 1, s = qc[0]; s >= 10; s /= 10, i++);\r\n\r\n          round(q, dp + (q.e = i + e * LOG_BASE - 1) + 1, rm, more);\r\n\r\n        // Caller is convertBase.\r\n        } else {\r\n          q.e = e;\r\n          q.r = +more;\r\n        }\r\n\r\n        return q;\r\n      };\r\n    })();\r\n\r\n\r\n    /*\r\n     * Return a string representing the value of BigNumber n in fixed-point or exponential\r\n     * notation rounded to the specified decimal places or significant digits.\r\n     *\r\n     * n: a BigNumber.\r\n     * i: the index of the last digit required (i.e. the digit that may be rounded up).\r\n     * rm: the rounding mode.\r\n     * id: 1 (toExponential) or 2 (toPrecision).\r\n     */\r\n    function format(n, i, rm, id) {\r\n      var c0, e, ne, len, str;\r\n\r\n      if (rm == null) rm = ROUNDING_MODE;\r\n      else intCheck(rm, 0, 8);\r\n\r\n      if (!n.c) return n.toString();\r\n\r\n      c0 = n.c[0];\r\n      ne = n.e;\r\n\r\n      if (i == null) {\r\n        str = coeffToString(n.c);\r\n        str = id == 1 || id == 2 && (ne <= TO_EXP_NEG || ne >= TO_EXP_POS)\r\n         ? toExponential(str, ne)\r\n         : toFixedPoint(str, ne, '0');\r\n      } else {\r\n        n = round(new BigNumber(n), i, rm);\r\n\r\n        // n.e may have changed if the value was rounded up.\r\n        e = n.e;\r\n\r\n        str = coeffToString(n.c);\r\n        len = str.length;\r\n\r\n        // toPrecision returns exponential notation if the number of significant digits\r\n        // specified is less than the number of digits necessary to represent the integer\r\n        // part of the value in fixed-point notation.\r\n\r\n        // Exponential notation.\r\n        if (id == 1 || id == 2 && (i <= e || e <= TO_EXP_NEG)) {\r\n\r\n          // Append zeros?\r\n          for (; len < i; str += '0', len++);\r\n          str = toExponential(str, e);\r\n\r\n        // Fixed-point notation.\r\n        } else {\r\n          i -= ne;\r\n          str = toFixedPoint(str, e, '0');\r\n\r\n          // Append zeros?\r\n          if (e + 1 > len) {\r\n            if (--i > 0) for (str += '.'; i--; str += '0');\r\n          } else {\r\n            i += e - len;\r\n            if (i > 0) {\r\n              if (e + 1 == len) str += '.';\r\n              for (; i--; str += '0');\r\n            }\r\n          }\r\n        }\r\n      }\r\n\r\n      return n.s < 0 && c0 ? '-' + str : str;\r\n    }\r\n\r\n\r\n    // Handle BigNumber.max and BigNumber.min.\r\n    // If any number is NaN, return NaN.\r\n    function maxOrMin(args, n) {\r\n      var k, y,\r\n        i = 1,\r\n        x = new BigNumber(args[0]);\r\n\r\n      for (; i < args.length; i++) {\r\n        y = new BigNumber(args[i]);\r\n        if (!y.s || (k = compare(x, y)) === n || k === 0 && x.s === n) {\r\n          x = y;\r\n        }\r\n      }\r\n\r\n      return x;\r\n    }\r\n\r\n\r\n    /*\r\n     * Strip trailing zeros, calculate base 10 exponent and check against MIN_EXP and MAX_EXP.\r\n     * Called by minus, plus and times.\r\n     */\r\n    function normalise(n, c, e) {\r\n      var i = 1,\r\n        j = c.length;\r\n\r\n       // Remove trailing zeros.\r\n      for (; !c[--j]; c.pop());\r\n\r\n      // Calculate the base 10 exponent. First get the number of digits of c[0].\r\n      for (j = c[0]; j >= 10; j /= 10, i++);\r\n\r\n      // Overflow?\r\n      if ((e = i + e * LOG_BASE - 1) > MAX_EXP) {\r\n\r\n        // Infinity.\r\n        n.c = n.e = null;\r\n\r\n      // Underflow?\r\n      } else if (e < MIN_EXP) {\r\n\r\n        // Zero.\r\n        n.c = [n.e = 0];\r\n      } else {\r\n        n.e = e;\r\n        n.c = c;\r\n      }\r\n\r\n      return n;\r\n    }\r\n\r\n\r\n    // Handle values that fail the validity test in BigNumber.\r\n    parseNumeric = (function () {\r\n      var basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i,\r\n        dotAfter = /^([^.]+)\\.$/,\r\n        dotBefore = /^\\.([^.]+)$/,\r\n        isInfinityOrNaN = /^-?(Infinity|NaN)$/,\r\n        whitespaceOrPlus = /^\\s*\\+(?=[\\w.])|^\\s+|\\s+$/g;\r\n\r\n      return function (x, str, isNum, b) {\r\n        var base,\r\n          s = isNum ? str : str.replace(whitespaceOrPlus, '');\r\n\r\n        // No exception on ±Infinity or NaN.\r\n        if (isInfinityOrNaN.test(s)) {\r\n          x.s = isNaN(s) ? null : s < 0 ? -1 : 1;\r\n        } else {\r\n          if (!isNum) {\r\n\r\n            // basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i\r\n            s = s.replace(basePrefix, function (m, p1, p2) {\r\n              base = (p2 = p2.toLowerCase()) == 'x' ? 16 : p2 == 'b' ? 2 : 8;\r\n              return !b || b == base ? p1 : m;\r\n            });\r\n\r\n            if (b) {\r\n              base = b;\r\n\r\n              // E.g. '1.' to '1', '.1' to '0.1'\r\n              s = s.replace(dotAfter, '$1').replace(dotBefore, '0.$1');\r\n            }\r\n\r\n            if (str != s) return new BigNumber(s, base);\r\n          }\r\n\r\n          // '[BigNumber Error] Not a number: {n}'\r\n          // '[BigNumber Error] Not a base {b} number: {n}'\r\n          if (BigNumber.DEBUG) {\r\n            throw Error\r\n              (bignumberError + 'Not a' + (b ? ' base ' + b : '') + ' number: ' + str);\r\n          }\r\n\r\n          // NaN\r\n          x.s = null;\r\n        }\r\n\r\n        x.c = x.e = null;\r\n      }\r\n    })();\r\n\r\n\r\n    /*\r\n     * Round x to sd significant digits using rounding mode rm. Check for over/under-flow.\r\n     * If r is truthy, it is known that there are more digits after the rounding digit.\r\n     */\r\n    function round(x, sd, rm, r) {\r\n      var d, i, j, k, n, ni, rd,\r\n        xc = x.c,\r\n        pows10 = POWS_TEN;\r\n\r\n      // if x is not Infinity or NaN...\r\n      if (xc) {\r\n\r\n        // rd is the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n        // n is a base 1e14 number, the value of the element of array x.c containing rd.\r\n        // ni is the index of n within x.c.\r\n        // d is the number of digits of n.\r\n        // i is the index of rd within n including leading zeros.\r\n        // j is the actual index of rd within n (if < 0, rd is a leading zero).\r\n        out: {\r\n\r\n          // Get the number of digits of the first element of xc.\r\n          for (d = 1, k = xc[0]; k >= 10; k /= 10, d++);\r\n          i = sd - d;\r\n\r\n          // If the rounding digit is in the first element of xc...\r\n          if (i < 0) {\r\n            i += LOG_BASE;\r\n            j = sd;\r\n            n = xc[ni = 0];\r\n\r\n            // Get the rounding digit at index j of n.\r\n            rd = mathfloor(n / pows10[d - j - 1] % 10);\r\n          } else {\r\n            ni = mathceil((i + 1) / LOG_BASE);\r\n\r\n            if (ni >= xc.length) {\r\n\r\n              if (r) {\r\n\r\n                // Needed by sqrt.\r\n                for (; xc.length <= ni; xc.push(0));\r\n                n = rd = 0;\r\n                d = 1;\r\n                i %= LOG_BASE;\r\n                j = i - LOG_BASE + 1;\r\n              } else {\r\n                break out;\r\n              }\r\n            } else {\r\n              n = k = xc[ni];\r\n\r\n              // Get the number of digits of n.\r\n              for (d = 1; k >= 10; k /= 10, d++);\r\n\r\n              // Get the index of rd within n.\r\n              i %= LOG_BASE;\r\n\r\n              // Get the index of rd within n, adjusted for leading zeros.\r\n              // The number of leading zeros of n is given by LOG_BASE - d.\r\n              j = i - LOG_BASE + d;\r\n\r\n              // Get the rounding digit at index j of n.\r\n              rd = j < 0 ? 0 : mathfloor(n / pows10[d - j - 1] % 10);\r\n            }\r\n          }\r\n\r\n          r = r || sd < 0 ||\r\n\r\n          // Are there any non-zero digits after the rounding digit?\r\n          // The expression  n % pows10[d - j - 1]  returns all digits of n to the right\r\n          // of the digit at j, e.g. if n is 908714 and j is 2, the expression gives 714.\r\n           xc[ni + 1] != null || (j < 0 ? n : n % pows10[d - j - 1]);\r\n\r\n          r = rm < 4\r\n           ? (rd || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n           : rd > 5 || rd == 5 && (rm == 4 || r || rm == 6 &&\r\n\r\n            // Check whether the digit to the left of the rounding digit is odd.\r\n            ((i > 0 ? j > 0 ? n / pows10[d - j] : 0 : xc[ni - 1]) % 10) & 1 ||\r\n             rm == (x.s < 0 ? 8 : 7));\r\n\r\n          if (sd < 1 || !xc[0]) {\r\n            xc.length = 0;\r\n\r\n            if (r) {\r\n\r\n              // Convert sd to decimal places.\r\n              sd -= x.e + 1;\r\n\r\n              // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n              xc[0] = pows10[(LOG_BASE - sd % LOG_BASE) % LOG_BASE];\r\n              x.e = -sd || 0;\r\n            } else {\r\n\r\n              // Zero.\r\n              xc[0] = x.e = 0;\r\n            }\r\n\r\n            return x;\r\n          }\r\n\r\n          // Remove excess digits.\r\n          if (i == 0) {\r\n            xc.length = ni;\r\n            k = 1;\r\n            ni--;\r\n          } else {\r\n            xc.length = ni + 1;\r\n            k = pows10[LOG_BASE - i];\r\n\r\n            // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n            // j > 0 means i > number of leading zeros of n.\r\n            xc[ni] = j > 0 ? mathfloor(n / pows10[d - j] % pows10[j]) * k : 0;\r\n          }\r\n\r\n          // Round up?\r\n          if (r) {\r\n\r\n            for (; ;) {\r\n\r\n              // If the digit to be rounded up is in the first element of xc...\r\n              if (ni == 0) {\r\n\r\n                // i will be the length of xc[0] before k is added.\r\n                for (i = 1, j = xc[0]; j >= 10; j /= 10, i++);\r\n                j = xc[0] += k;\r\n                for (k = 1; j >= 10; j /= 10, k++);\r\n\r\n                // if i != k the length has increased.\r\n                if (i != k) {\r\n                  x.e++;\r\n                  if (xc[0] == BASE) xc[0] = 1;\r\n                }\r\n\r\n                break;\r\n              } else {\r\n                xc[ni] += k;\r\n                if (xc[ni] != BASE) break;\r\n                xc[ni--] = 0;\r\n                k = 1;\r\n              }\r\n            }\r\n          }\r\n\r\n          // Remove trailing zeros.\r\n          for (i = xc.length; xc[--i] === 0; xc.pop());\r\n        }\r\n\r\n        // Overflow? Infinity.\r\n        if (x.e > MAX_EXP) {\r\n          x.c = x.e = null;\r\n\r\n        // Underflow? Zero.\r\n        } else if (x.e < MIN_EXP) {\r\n          x.c = [x.e = 0];\r\n        }\r\n      }\r\n\r\n      return x;\r\n    }\r\n\r\n\r\n    function valueOf(n) {\r\n      var str,\r\n        e = n.e;\r\n\r\n      if (e === null) return n.toString();\r\n\r\n      str = coeffToString(n.c);\r\n\r\n      str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n        ? toExponential(str, e)\r\n        : toFixedPoint(str, e, '0');\r\n\r\n      return n.s < 0 ? '-' + str : str;\r\n    }\r\n\r\n\r\n    // PROTOTYPE/INSTANCE METHODS\r\n\r\n\r\n    /*\r\n     * Return a new BigNumber whose value is the absolute value of this BigNumber.\r\n     */\r\n    P.absoluteValue = P.abs = function () {\r\n      var x = new BigNumber(this);\r\n      if (x.s < 0) x.s = 1;\r\n      return x;\r\n    };\r\n\r\n\r\n    /*\r\n     * Return\r\n     *   1 if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n     *   -1 if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n     *   0 if they have the same value,\r\n     *   or null if the value of either is NaN.\r\n     */\r\n    P.comparedTo = function (y, b) {\r\n      return compare(this, new BigNumber(y, b));\r\n    };\r\n\r\n\r\n    /*\r\n     * If dp is undefined or null or true or false, return the number of decimal places of the\r\n     * value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n     *\r\n     * Otherwise, if dp is a number, return a new BigNumber whose value is the value of this\r\n     * BigNumber rounded to a maximum of dp decimal places using rounding mode rm, or\r\n     * ROUNDING_MODE if rm is omitted.\r\n     *\r\n     * [dp] {number} Decimal places: integer, 0 to MAX inclusive.\r\n     * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n     *\r\n     * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n     */\r\n    P.decimalPlaces = P.dp = function (dp, rm) {\r\n      var c, n, v,\r\n        x = this;\r\n\r\n      if (dp != null) {\r\n        intCheck(dp, 0, MAX);\r\n        if (rm == null) rm = ROUNDING_MODE;\r\n        else intCheck(rm, 0, 8);\r\n\r\n        return round(new BigNumber(x), dp + x.e + 1, rm);\r\n      }\r\n\r\n      if (!(c = x.c)) return null;\r\n      n = ((v = c.length - 1) - bitFloor(this.e / LOG_BASE)) * LOG_BASE;\r\n\r\n      // Subtract the number of trailing zeros of the last number.\r\n      if (v = c[v]) for (; v % 10 == 0; v /= 10, n--);\r\n      if (n < 0) n = 0;\r\n\r\n      return n;\r\n    };\r\n\r\n\r\n    /*\r\n     *  n / 0 = I\r\n     *  n / N = N\r\n     *  n / I = 0\r\n     *  0 / n = 0\r\n     *  0 / 0 = N\r\n     *  0 / N = N\r\n     *  0 / I = 0\r\n     *  N / n = N\r\n     *  N / 0 = N\r\n     *  N / N = N\r\n     *  N / I = N\r\n     *  I / n = I\r\n     *  I / 0 = I\r\n     *  I / N = N\r\n     *  I / I = N\r\n     *\r\n     * Return a new BigNumber whose value is the value of this BigNumber divided by the value of\r\n     * BigNumber(y, b), rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n     */\r\n    P.dividedBy = P.div = function (y, b) {\r\n      return div(this, new BigNumber(y, b), DECIMAL_PLACES, ROUNDING_MODE);\r\n    };\r\n\r\n\r\n    /*\r\n     * Return a new BigNumber whose value is the integer part of dividing the value of this\r\n     * BigNumber by the value of BigNumber(y, b).\r\n     */\r\n    P.dividedToIntegerBy = P.idiv = function (y, b) {\r\n      return div(this, new BigNumber(y, b), 0, 1);\r\n    };\r\n\r\n\r\n    /*\r\n     * Return a BigNumber whose value is the value of this BigNumber exponentiated by n.\r\n     *\r\n     * If m is present, return the result modulo m.\r\n     * If n is negative round according to DECIMAL_PLACES and ROUNDING_MODE.\r\n     * If POW_PRECISION is non-zero and m is not present, round to POW_PRECISION using ROUNDING_MODE.\r\n     *\r\n     * The modular power operation works efficiently when x, n, and m are integers, otherwise it\r\n     * is equivalent to calculating x.exponentiatedBy(n).modulo(m) with a POW_PRECISION of 0.\r\n     *\r\n     * n {number|string|BigNumber} The exponent. An integer.\r\n     * [m] {number|string|BigNumber} The modulus.\r\n     *\r\n     * '[BigNumber Error] Exponent not an integer: {n}'\r\n     */\r\n    P.exponentiatedBy = P.pow = function (n, m) {\r\n      var half, isModExp, i, k, more, nIsBig, nIsNeg, nIsOdd, y,\r\n        x = this;\r\n\r\n      n = new BigNumber(n);\r\n\r\n      // Allow NaN and ±Infinity, but not other non-integers.\r\n      if (n.c && !n.isInteger()) {\r\n        throw Error\r\n          (bignumberError + 'Exponent not an integer: ' + valueOf(n));\r\n      }\r\n\r\n      if (m != null) m = new BigNumber(m);\r\n\r\n      // Exponent of MAX_SAFE_INTEGER is 15.\r\n      nIsBig = n.e > 14;\r\n\r\n      // If x is NaN, ±Infinity, ±0 or ±1, or n is ±Infinity, NaN or ±0.\r\n      if (!x.c || !x.c[0] || x.c[0] == 1 && !x.e && x.c.length == 1 || !n.c || !n.c[0]) {\r\n\r\n        // The sign of the result of pow when x is negative depends on the evenness of n.\r\n        // If +n overflows to ±Infinity, the evenness of n would be not be known.\r\n        y = new BigNumber(Math.pow(+valueOf(x), nIsBig ? n.s * (2 - isOdd(n)) : +valueOf(n)));\r\n        return m ? y.mod(m) : y;\r\n      }\r\n\r\n      nIsNeg = n.s < 0;\r\n\r\n      if (m) {\r\n\r\n        // x % m returns NaN if abs(m) is zero, or m is NaN.\r\n        if (m.c ? !m.c[0] : !m.s) return new BigNumber(NaN);\r\n\r\n        isModExp = !nIsNeg && x.isInteger() && m.isInteger();\r\n\r\n        if (isModExp) x = x.mod(m);\r\n\r\n      // Overflow to ±Infinity: >=2**1e10 or >=1.0000024**1e15.\r\n      // Underflow to ±0: <=0.79**1e10 or <=0.9999975**1e15.\r\n      } else if (n.e > 9 && (x.e > 0 || x.e < -1 || (x.e == 0\r\n        // [1, 240000000]\r\n        ? x.c[0] > 1 || nIsBig && x.c[1] >= 24e7\r\n        // [80000000000000]  [99999750000000]\r\n        : x.c[0] < 8e13 || nIsBig && x.c[0] <= 9999975e7))) {\r\n\r\n        // If x is negative and n is odd, k = -0, else k = 0.\r\n        k = x.s < 0 && isOdd(n) ? -0 : 0;\r\n\r\n        // If x >= 1, k = ±Infinity.\r\n        if (x.e > -1) k = 1 / k;\r\n\r\n        // If n is negative return ±0, else return ±Infinity.\r\n        return new BigNumber(nIsNeg ? 1 / k : k);\r\n\r\n      } else if (POW_PRECISION) {\r\n\r\n        // Truncating each coefficient array to a length of k after each multiplication\r\n        // equates to truncating significant digits to POW_PRECISION + [28, 41],\r\n        // i.e. there will be a minimum of 28 guard digits retained.\r\n        k = mathceil(POW_PRECISION / LOG_BASE + 2);\r\n      }\r\n\r\n      if (nIsBig) {\r\n        half = new BigNumber(0.5);\r\n        if (nIsNeg) n.s = 1;\r\n        nIsOdd = isOdd(n);\r\n      } else {\r\n        i = Math.abs(+valueOf(n));\r\n        nIsOdd = i % 2;\r\n      }\r\n\r\n      y = new BigNumber(ONE);\r\n\r\n      // Performs 54 loop iterations for n of 9007199254740991.\r\n      for (; ;) {\r\n\r\n        if (nIsOdd) {\r\n          y = y.times(x);\r\n          if (!y.c) break;\r\n\r\n          if (k) {\r\n            if (y.c.length > k) y.c.length = k;\r\n          } else if (isModExp) {\r\n            y = y.mod(m);    //y = y.minus(div(y, m, 0, MODULO_MODE).times(m));\r\n          }\r\n        }\r\n\r\n        if (i) {\r\n          i = mathfloor(i / 2);\r\n          if (i === 0) break;\r\n          nIsOdd = i % 2;\r\n        } else {\r\n          n = n.times(half);\r\n          round(n, n.e + 1, 1);\r\n\r\n          if (n.e > 14) {\r\n            nIsOdd = isOdd(n);\r\n          } else {\r\n            i = +valueOf(n);\r\n            if (i === 0) break;\r\n            nIsOdd = i % 2;\r\n          }\r\n        }\r\n\r\n        x = x.times(x);\r\n\r\n        if (k) {\r\n          if (x.c && x.c.length > k) x.c.length = k;\r\n        } else if (isModExp) {\r\n          x = x.mod(m);    //x = x.minus(div(x, m, 0, MODULO_MODE).times(m));\r\n        }\r\n      }\r\n\r\n      if (isModExp) return y;\r\n      if (nIsNeg) y = ONE.div(y);\r\n\r\n      return m ? y.mod(m) : k ? round(y, POW_PRECISION, ROUNDING_MODE, more) : y;\r\n    };\r\n\r\n\r\n    /*\r\n     * Return a new BigNumber whose value is the value of this BigNumber rounded to an integer\r\n     * using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n     *\r\n     * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n     *\r\n     * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {rm}'\r\n     */\r\n    P.integerValue = function (rm) {\r\n      var n = new BigNumber(this);\r\n      if (rm == null) rm = ROUNDING_MODE;\r\n      else intCheck(rm, 0, 8);\r\n      return round(n, n.e + 1, rm);\r\n    };\r\n\r\n\r\n    /*\r\n     * Return true if the value of this BigNumber is equal to the value of BigNumber(y, b),\r\n     * otherwise return false.\r\n     */\r\n    P.isEqualTo = P.eq = function (y, b) {\r\n      return compare(this, new BigNumber(y, b)) === 0;\r\n    };\r\n\r\n\r\n    /*\r\n     * Return true if the value of this BigNumber is a finite number, otherwise return false.\r\n     */\r\n    P.isFinite = function () {\r\n      return !!this.c;\r\n    };\r\n\r\n\r\n    /*\r\n     * Return true if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n     * otherwise return false.\r\n     */\r\n    P.isGreaterThan = P.gt = function (y, b) {\r\n      return compare(this, new BigNumber(y, b)) > 0;\r\n    };\r\n\r\n\r\n    /*\r\n     * Return true if the value of this BigNumber is greater than or equal to the value of\r\n     * BigNumber(y, b), otherwise return false.\r\n     */\r\n    P.isGreaterThanOrEqualTo = P.gte = function (y, b) {\r\n      return (b = compare(this, new BigNumber(y, b))) === 1 || b === 0;\r\n\r\n    };\r\n\r\n\r\n    /*\r\n     * Return true if the value of this BigNumber is an integer, otherwise return false.\r\n     */\r\n    P.isInteger = function () {\r\n      return !!this.c && bitFloor(this.e / LOG_BASE) > this.c.length - 2;\r\n    };\r\n\r\n\r\n    /*\r\n     * Return true if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n     * otherwise return false.\r\n     */\r\n    P.isLessThan = P.lt = function (y, b) {\r\n      return compare(this, new BigNumber(y, b)) < 0;\r\n    };\r\n\r\n\r\n    /*\r\n     * Return true if the value of this BigNumber is less than or equal to the value of\r\n     * BigNumber(y, b), otherwise return false.\r\n     */\r\n    P.isLessThanOrEqualTo = P.lte = function (y, b) {\r\n      return (b = compare(this, new BigNumber(y, b))) === -1 || b === 0;\r\n    };\r\n\r\n\r\n    /*\r\n     * Return true if the value of this BigNumber is NaN, otherwise return false.\r\n     */\r\n    P.isNaN = function () {\r\n      return !this.s;\r\n    };\r\n\r\n\r\n    /*\r\n     * Return true if the value of this BigNumber is negative, otherwise return false.\r\n     */\r\n    P.isNegative = function () {\r\n      return this.s < 0;\r\n    };\r\n\r\n\r\n    /*\r\n     * Return true if the value of this BigNumber is positive, otherwise return false.\r\n     */\r\n    P.isPositive = function () {\r\n      return this.s > 0;\r\n    };\r\n\r\n\r\n    /*\r\n     * Return true if the value of this BigNumber is 0 or -0, otherwise return false.\r\n     */\r\n    P.isZero = function () {\r\n      return !!this.c && this.c[0] == 0;\r\n    };\r\n\r\n\r\n    /*\r\n     *  n - 0 = n\r\n     *  n - N = N\r\n     *  n - I = -I\r\n     *  0 - n = -n\r\n     *  0 - 0 = 0\r\n     *  0 - N = N\r\n     *  0 - I = -I\r\n     *  N - n = N\r\n     *  N - 0 = N\r\n     *  N - N = N\r\n     *  N - I = N\r\n     *  I - n = I\r\n     *  I - 0 = I\r\n     *  I - N = N\r\n     *  I - I = N\r\n     *\r\n     * Return a new BigNumber whose value is the value of this BigNumber minus the value of\r\n     * BigNumber(y, b).\r\n     */\r\n    P.minus = function (y, b) {\r\n      var i, j, t, xLTy,\r\n        x = this,\r\n        a = x.s;\r\n\r\n      y = new BigNumber(y, b);\r\n      b = y.s;\r\n\r\n      // Either NaN?\r\n      if (!a || !b) return new BigNumber(NaN);\r\n\r\n      // Signs differ?\r\n      if (a != b) {\r\n        y.s = -b;\r\n        return x.plus(y);\r\n      }\r\n\r\n      var xe = x.e / LOG_BASE,\r\n        ye = y.e / LOG_BASE,\r\n        xc = x.c,\r\n        yc = y.c;\r\n\r\n      if (!xe || !ye) {\r\n\r\n        // Either Infinity?\r\n        if (!xc || !yc) return xc ? (y.s = -b, y) : new BigNumber(yc ? x : NaN);\r\n\r\n        // Either zero?\r\n        if (!xc[0] || !yc[0]) {\r\n\r\n          // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n          return yc[0] ? (y.s = -b, y) : new BigNumber(xc[0] ? x :\r\n\r\n           // IEEE 754 (2008) 6.3: n - n = -0 when rounding to -Infinity\r\n           ROUNDING_MODE == 3 ? -0 : 0);\r\n        }\r\n      }\r\n\r\n      xe = bitFloor(xe);\r\n      ye = bitFloor(ye);\r\n      xc = xc.slice();\r\n\r\n      // Determine which is the bigger number.\r\n      if (a = xe - ye) {\r\n\r\n        if (xLTy = a < 0) {\r\n          a = -a;\r\n          t = xc;\r\n        } else {\r\n          ye = xe;\r\n          t = yc;\r\n        }\r\n\r\n        t.reverse();\r\n\r\n        // Prepend zeros to equalise exponents.\r\n        for (b = a; b--; t.push(0));\r\n        t.reverse();\r\n      } else {\r\n\r\n        // Exponents equal. Check digit by digit.\r\n        j = (xLTy = (a = xc.length) < (b = yc.length)) ? a : b;\r\n\r\n        for (a = b = 0; b < j; b++) {\r\n\r\n          if (xc[b] != yc[b]) {\r\n            xLTy = xc[b] < yc[b];\r\n            break;\r\n          }\r\n        }\r\n      }\r\n\r\n      // x < y? Point xc to the array of the bigger number.\r\n      if (xLTy) {\r\n        t = xc;\r\n        xc = yc;\r\n        yc = t;\r\n        y.s = -y.s;\r\n      }\r\n\r\n      b = (j = yc.length) - (i = xc.length);\r\n\r\n      // Append zeros to xc if shorter.\r\n      // No need to add zeros to yc if shorter as subtract only needs to start at yc.length.\r\n      if (b > 0) for (; b--; xc[i++] = 0);\r\n      b = BASE - 1;\r\n\r\n      // Subtract yc from xc.\r\n      for (; j > a;) {\r\n\r\n        if (xc[--j] < yc[j]) {\r\n          for (i = j; i && !xc[--i]; xc[i] = b);\r\n          --xc[i];\r\n          xc[j] += BASE;\r\n        }\r\n\r\n        xc[j] -= yc[j];\r\n      }\r\n\r\n      // Remove leading zeros and adjust exponent accordingly.\r\n      for (; xc[0] == 0; xc.splice(0, 1), --ye);\r\n\r\n      // Zero?\r\n      if (!xc[0]) {\r\n\r\n        // Following IEEE 754 (2008) 6.3,\r\n        // n - n = +0  but  n - n = -0  when rounding towards -Infinity.\r\n        y.s = ROUNDING_MODE == 3 ? -1 : 1;\r\n        y.c = [y.e = 0];\r\n        return y;\r\n      }\r\n\r\n      // No need to check for Infinity as +x - +y != Infinity && -x - -y != Infinity\r\n      // for finite x and y.\r\n      return normalise(y, xc, ye);\r\n    };\r\n\r\n\r\n    /*\r\n     *   n % 0 =  N\r\n     *   n % N =  N\r\n     *   n % I =  n\r\n     *   0 % n =  0\r\n     *  -0 % n = -0\r\n     *   0 % 0 =  N\r\n     *   0 % N =  N\r\n     *   0 % I =  0\r\n     *   N % n =  N\r\n     *   N % 0 =  N\r\n     *   N % N =  N\r\n     *   N % I =  N\r\n     *   I % n =  N\r\n     *   I % 0 =  N\r\n     *   I % N =  N\r\n     *   I % I =  N\r\n     *\r\n     * Return a new BigNumber whose value is the value of this BigNumber modulo the value of\r\n     * BigNumber(y, b). The result depends on the value of MODULO_MODE.\r\n     */\r\n    P.modulo = P.mod = function (y, b) {\r\n      var q, s,\r\n        x = this;\r\n\r\n      y = new BigNumber(y, b);\r\n\r\n      // Return NaN if x is Infinity or NaN, or y is NaN or zero.\r\n      if (!x.c || !y.s || y.c && !y.c[0]) {\r\n        return new BigNumber(NaN);\r\n\r\n      // Return x if y is Infinity or x is zero.\r\n      } else if (!y.c || x.c && !x.c[0]) {\r\n        return new BigNumber(x);\r\n      }\r\n\r\n      if (MODULO_MODE == 9) {\r\n\r\n        // Euclidian division: q = sign(y) * floor(x / abs(y))\r\n        // r = x - qy    where  0 <= r < abs(y)\r\n        s = y.s;\r\n        y.s = 1;\r\n        q = div(x, y, 0, 3);\r\n        y.s = s;\r\n        q.s *= s;\r\n      } else {\r\n        q = div(x, y, 0, MODULO_MODE);\r\n      }\r\n\r\n      y = x.minus(q.times(y));\r\n\r\n      // To match JavaScript %, ensure sign of zero is sign of dividend.\r\n      if (!y.c[0] && MODULO_MODE == 1) y.s = x.s;\r\n\r\n      return y;\r\n    };\r\n\r\n\r\n    /*\r\n     *  n * 0 = 0\r\n     *  n * N = N\r\n     *  n * I = I\r\n     *  0 * n = 0\r\n     *  0 * 0 = 0\r\n     *  0 * N = N\r\n     *  0 * I = N\r\n     *  N * n = N\r\n     *  N * 0 = N\r\n     *  N * N = N\r\n     *  N * I = N\r\n     *  I * n = I\r\n     *  I * 0 = N\r\n     *  I * N = N\r\n     *  I * I = I\r\n     *\r\n     * Return a new BigNumber whose value is the value of this BigNumber multiplied by the value\r\n     * of BigNumber(y, b).\r\n     */\r\n    P.multipliedBy = P.times = function (y, b) {\r\n      var c, e, i, j, k, m, xcL, xlo, xhi, ycL, ylo, yhi, zc,\r\n        base, sqrtBase,\r\n        x = this,\r\n        xc = x.c,\r\n        yc = (y = new BigNumber(y, b)).c;\r\n\r\n      // Either NaN, ±Infinity or ±0?\r\n      if (!xc || !yc || !xc[0] || !yc[0]) {\r\n\r\n        // Return NaN if either is NaN, or one is 0 and the other is Infinity.\r\n        if (!x.s || !y.s || xc && !xc[0] && !yc || yc && !yc[0] && !xc) {\r\n          y.c = y.e = y.s = null;\r\n        } else {\r\n          y.s *= x.s;\r\n\r\n          // Return ±Infinity if either is ±Infinity.\r\n          if (!xc || !yc) {\r\n            y.c = y.e = null;\r\n\r\n          // Return ±0 if either is ±0.\r\n          } else {\r\n            y.c = [0];\r\n            y.e = 0;\r\n          }\r\n        }\r\n\r\n        return y;\r\n      }\r\n\r\n      e = bitFloor(x.e / LOG_BASE) + bitFloor(y.e / LOG_BASE);\r\n      y.s *= x.s;\r\n      xcL = xc.length;\r\n      ycL = yc.length;\r\n\r\n      // Ensure xc points to longer array and xcL to its length.\r\n      if (xcL < ycL) {\r\n        zc = xc;\r\n        xc = yc;\r\n        yc = zc;\r\n        i = xcL;\r\n        xcL = ycL;\r\n        ycL = i;\r\n      }\r\n\r\n      // Initialise the result array with zeros.\r\n      for (i = xcL + ycL, zc = []; i--; zc.push(0));\r\n\r\n      base = BASE;\r\n      sqrtBase = SQRT_BASE;\r\n\r\n      for (i = ycL; --i >= 0;) {\r\n        c = 0;\r\n        ylo = yc[i] % sqrtBase;\r\n        yhi = yc[i] / sqrtBase | 0;\r\n\r\n        for (k = xcL, j = i + k; j > i;) {\r\n          xlo = xc[--k] % sqrtBase;\r\n          xhi = xc[k] / sqrtBase | 0;\r\n          m = yhi * xlo + xhi * ylo;\r\n          xlo = ylo * xlo + ((m % sqrtBase) * sqrtBase) + zc[j] + c;\r\n          c = (xlo / base | 0) + (m / sqrtBase | 0) + yhi * xhi;\r\n          zc[j--] = xlo % base;\r\n        }\r\n\r\n        zc[j] = c;\r\n      }\r\n\r\n      if (c) {\r\n        ++e;\r\n      } else {\r\n        zc.splice(0, 1);\r\n      }\r\n\r\n      return normalise(y, zc, e);\r\n    };\r\n\r\n\r\n    /*\r\n     * Return a new BigNumber whose value is the value of this BigNumber negated,\r\n     * i.e. multiplied by -1.\r\n     */\r\n    P.negated = function () {\r\n      var x = new BigNumber(this);\r\n      x.s = -x.s || null;\r\n      return x;\r\n    };\r\n\r\n\r\n    /*\r\n     *  n + 0 = n\r\n     *  n + N = N\r\n     *  n + I = I\r\n     *  0 + n = n\r\n     *  0 + 0 = 0\r\n     *  0 + N = N\r\n     *  0 + I = I\r\n     *  N + n = N\r\n     *  N + 0 = N\r\n     *  N + N = N\r\n     *  N + I = N\r\n     *  I + n = I\r\n     *  I + 0 = I\r\n     *  I + N = N\r\n     *  I + I = I\r\n     *\r\n     * Return a new BigNumber whose value is the value of this BigNumber plus the value of\r\n     * BigNumber(y, b).\r\n     */\r\n    P.plus = function (y, b) {\r\n      var t,\r\n        x = this,\r\n        a = x.s;\r\n\r\n      y = new BigNumber(y, b);\r\n      b = y.s;\r\n\r\n      // Either NaN?\r\n      if (!a || !b) return new BigNumber(NaN);\r\n\r\n      // Signs differ?\r\n       if (a != b) {\r\n        y.s = -b;\r\n        return x.minus(y);\r\n      }\r\n\r\n      var xe = x.e / LOG_BASE,\r\n        ye = y.e / LOG_BASE,\r\n        xc = x.c,\r\n        yc = y.c;\r\n\r\n      if (!xe || !ye) {\r\n\r\n        // Return ±Infinity if either ±Infinity.\r\n        if (!xc || !yc) return new BigNumber(a / 0);\r\n\r\n        // Either zero?\r\n        // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n        if (!xc[0] || !yc[0]) return yc[0] ? y : new BigNumber(xc[0] ? x : a * 0);\r\n      }\r\n\r\n      xe = bitFloor(xe);\r\n      ye = bitFloor(ye);\r\n      xc = xc.slice();\r\n\r\n      // Prepend zeros to equalise exponents. Faster to use reverse then do unshifts.\r\n      if (a = xe - ye) {\r\n        if (a > 0) {\r\n          ye = xe;\r\n          t = yc;\r\n        } else {\r\n          a = -a;\r\n          t = xc;\r\n        }\r\n\r\n        t.reverse();\r\n        for (; a--; t.push(0));\r\n        t.reverse();\r\n      }\r\n\r\n      a = xc.length;\r\n      b = yc.length;\r\n\r\n      // Point xc to the longer array, and b to the shorter length.\r\n      if (a - b < 0) {\r\n        t = yc;\r\n        yc = xc;\r\n        xc = t;\r\n        b = a;\r\n      }\r\n\r\n      // Only start adding at yc.length - 1 as the further digits of xc can be ignored.\r\n      for (a = 0; b;) {\r\n        a = (xc[--b] = xc[b] + yc[b] + a) / BASE | 0;\r\n        xc[b] = BASE === xc[b] ? 0 : xc[b] % BASE;\r\n      }\r\n\r\n      if (a) {\r\n        xc = [a].concat(xc);\r\n        ++ye;\r\n      }\r\n\r\n      // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n      // ye = MAX_EXP + 1 possible\r\n      return normalise(y, xc, ye);\r\n    };\r\n\r\n\r\n    /*\r\n     * If sd is undefined or null or true or false, return the number of significant digits of\r\n     * the value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n     * If sd is true include integer-part trailing zeros in the count.\r\n     *\r\n     * Otherwise, if sd is a number, return a new BigNumber whose value is the value of this\r\n     * BigNumber rounded to a maximum of sd significant digits using rounding mode rm, or\r\n     * ROUNDING_MODE if rm is omitted.\r\n     *\r\n     * sd {number|boolean} number: significant digits: integer, 1 to MAX inclusive.\r\n     *                     boolean: whether to count integer-part trailing zeros: true or false.\r\n     * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n     *\r\n     * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n     */\r\n    P.precision = P.sd = function (sd, rm) {\r\n      var c, n, v,\r\n        x = this;\r\n\r\n      if (sd != null && sd !== !!sd) {\r\n        intCheck(sd, 1, MAX);\r\n        if (rm == null) rm = ROUNDING_MODE;\r\n        else intCheck(rm, 0, 8);\r\n\r\n        return round(new BigNumber(x), sd, rm);\r\n      }\r\n\r\n      if (!(c = x.c)) return null;\r\n      v = c.length - 1;\r\n      n = v * LOG_BASE + 1;\r\n\r\n      if (v = c[v]) {\r\n\r\n        // Subtract the number of trailing zeros of the last element.\r\n        for (; v % 10 == 0; v /= 10, n--);\r\n\r\n        // Add the number of digits of the first element.\r\n        for (v = c[0]; v >= 10; v /= 10, n++);\r\n      }\r\n\r\n      if (sd && x.e + 1 > n) n = x.e + 1;\r\n\r\n      return n;\r\n    };\r\n\r\n\r\n    /*\r\n     * Return a new BigNumber whose value is the value of this BigNumber shifted by k places\r\n     * (powers of 10). Shift to the right if n > 0, and to the left if n < 0.\r\n     *\r\n     * k {number} Integer, -MAX_SAFE_INTEGER to MAX_SAFE_INTEGER inclusive.\r\n     *\r\n     * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {k}'\r\n     */\r\n    P.shiftedBy = function (k) {\r\n      intCheck(k, -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER);\r\n      return this.times('1e' + k);\r\n    };\r\n\r\n\r\n    /*\r\n     *  sqrt(-n) =  N\r\n     *  sqrt(N) =  N\r\n     *  sqrt(-I) =  N\r\n     *  sqrt(I) =  I\r\n     *  sqrt(0) =  0\r\n     *  sqrt(-0) = -0\r\n     *\r\n     * Return a new BigNumber whose value is the square root of the value of this BigNumber,\r\n     * rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n     */\r\n    P.squareRoot = P.sqrt = function () {\r\n      var m, n, r, rep, t,\r\n        x = this,\r\n        c = x.c,\r\n        s = x.s,\r\n        e = x.e,\r\n        dp = DECIMAL_PLACES + 4,\r\n        half = new BigNumber('0.5');\r\n\r\n      // Negative/NaN/Infinity/zero?\r\n      if (s !== 1 || !c || !c[0]) {\r\n        return new BigNumber(!s || s < 0 && (!c || c[0]) ? NaN : c ? x : 1 / 0);\r\n      }\r\n\r\n      // Initial estimate.\r\n      s = Math.sqrt(+valueOf(x));\r\n\r\n      // Math.sqrt underflow/overflow?\r\n      // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n      if (s == 0 || s == 1 / 0) {\r\n        n = coeffToString(c);\r\n        if ((n.length + e) % 2 == 0) n += '0';\r\n        s = Math.sqrt(+n);\r\n        e = bitFloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n        if (s == 1 / 0) {\r\n          n = '5e' + e;\r\n        } else {\r\n          n = s.toExponential();\r\n          n = n.slice(0, n.indexOf('e') + 1) + e;\r\n        }\r\n\r\n        r = new BigNumber(n);\r\n      } else {\r\n        r = new BigNumber(s + '');\r\n      }\r\n\r\n      // Check for zero.\r\n      // r could be zero if MIN_EXP is changed after the this value was created.\r\n      // This would cause a division by zero (x/t) and hence Infinity below, which would cause\r\n      // coeffToString to throw.\r\n      if (r.c[0]) {\r\n        e = r.e;\r\n        s = e + dp;\r\n        if (s < 3) s = 0;\r\n\r\n        // Newton-Raphson iteration.\r\n        for (; ;) {\r\n          t = r;\r\n          r = half.times(t.plus(div(x, t, dp, 1)));\r\n\r\n          if (coeffToString(t.c).slice(0, s) === (n = coeffToString(r.c)).slice(0, s)) {\r\n\r\n            // The exponent of r may here be one less than the final result exponent,\r\n            // e.g 0.0009999 (e-4) --> 0.001 (e-3), so adjust s so the rounding digits\r\n            // are indexed correctly.\r\n            if (r.e < e) --s;\r\n            n = n.slice(s - 3, s + 1);\r\n\r\n            // The 4th rounding digit may be in error by -1 so if the 4 rounding digits\r\n            // are 9999 or 4999 (i.e. approaching a rounding boundary) continue the\r\n            // iteration.\r\n            if (n == '9999' || !rep && n == '4999') {\r\n\r\n              // On the first iteration only, check to see if rounding up gives the\r\n              // exact result as the nines may infinitely repeat.\r\n              if (!rep) {\r\n                round(t, t.e + DECIMAL_PLACES + 2, 0);\r\n\r\n                if (t.times(t).eq(x)) {\r\n                  r = t;\r\n                  break;\r\n                }\r\n              }\r\n\r\n              dp += 4;\r\n              s += 4;\r\n              rep = 1;\r\n            } else {\r\n\r\n              // If rounding digits are null, 0{0,4} or 50{0,3}, check for exact\r\n              // result. If not, then there are further digits and m will be truthy.\r\n              if (!+n || !+n.slice(1) && n.charAt(0) == '5') {\r\n\r\n                // Truncate to the first rounding digit.\r\n                round(r, r.e + DECIMAL_PLACES + 2, 1);\r\n                m = !r.times(r).eq(x);\r\n              }\r\n\r\n              break;\r\n            }\r\n          }\r\n        }\r\n      }\r\n\r\n      return round(r, r.e + DECIMAL_PLACES + 1, ROUNDING_MODE, m);\r\n    };\r\n\r\n\r\n    /*\r\n     * Return a string representing the value of this BigNumber in exponential notation and\r\n     * rounded using ROUNDING_MODE to dp fixed decimal places.\r\n     *\r\n     * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n     * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n     *\r\n     * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n     */\r\n    P.toExponential = function (dp, rm) {\r\n      if (dp != null) {\r\n        intCheck(dp, 0, MAX);\r\n        dp++;\r\n      }\r\n      return format(this, dp, rm, 1);\r\n    };\r\n\r\n\r\n    /*\r\n     * Return a string representing the value of this BigNumber in fixed-point notation rounding\r\n     * to dp fixed decimal places using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n     *\r\n     * Note: as with JavaScript's number type, (-0).toFixed(0) is '0',\r\n     * but e.g. (-0.00001).toFixed(0) is '-0'.\r\n     *\r\n     * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n     * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n     *\r\n     * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n     */\r\n    P.toFixed = function (dp, rm) {\r\n      if (dp != null) {\r\n        intCheck(dp, 0, MAX);\r\n        dp = dp + this.e + 1;\r\n      }\r\n      return format(this, dp, rm);\r\n    };\r\n\r\n\r\n    /*\r\n     * Return a string representing the value of this BigNumber in fixed-point notation rounded\r\n     * using rm or ROUNDING_MODE to dp decimal places, and formatted according to the properties\r\n     * of the format or FORMAT object (see BigNumber.set).\r\n     *\r\n     * The formatting object may contain some or all of the properties shown below.\r\n     *\r\n     * FORMAT = {\r\n     *   prefix: '',\r\n     *   groupSize: 3,\r\n     *   secondaryGroupSize: 0,\r\n     *   groupSeparator: ',',\r\n     *   decimalSeparator: '.',\r\n     *   fractionGroupSize: 0,\r\n     *   fractionGroupSeparator: '\\xA0',      // non-breaking space\r\n     *   suffix: ''\r\n     * };\r\n     *\r\n     * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n     * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n     * [format] {object} Formatting options. See FORMAT pbject above.\r\n     *\r\n     * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n     * '[BigNumber Error] Argument not an object: {format}'\r\n     */\r\n    P.toFormat = function (dp, rm, format) {\r\n      var str,\r\n        x = this;\r\n\r\n      if (format == null) {\r\n        if (dp != null && rm && typeof rm == 'object') {\r\n          format = rm;\r\n          rm = null;\r\n        } else if (dp && typeof dp == 'object') {\r\n          format = dp;\r\n          dp = rm = null;\r\n        } else {\r\n          format = FORMAT;\r\n        }\r\n      } else if (typeof format != 'object') {\r\n        throw Error\r\n          (bignumberError + 'Argument not an object: ' + format);\r\n      }\r\n\r\n      str = x.toFixed(dp, rm);\r\n\r\n      if (x.c) {\r\n        var i,\r\n          arr = str.split('.'),\r\n          g1 = +format.groupSize,\r\n          g2 = +format.secondaryGroupSize,\r\n          groupSeparator = format.groupSeparator || '',\r\n          intPart = arr[0],\r\n          fractionPart = arr[1],\r\n          isNeg = x.s < 0,\r\n          intDigits = isNeg ? intPart.slice(1) : intPart,\r\n          len = intDigits.length;\r\n\r\n        if (g2) {\r\n          i = g1;\r\n          g1 = g2;\r\n          g2 = i;\r\n          len -= i;\r\n        }\r\n\r\n        if (g1 > 0 && len > 0) {\r\n          i = len % g1 || g1;\r\n          intPart = intDigits.substr(0, i);\r\n          for (; i < len; i += g1) intPart += groupSeparator + intDigits.substr(i, g1);\r\n          if (g2 > 0) intPart += groupSeparator + intDigits.slice(i);\r\n          if (isNeg) intPart = '-' + intPart;\r\n        }\r\n\r\n        str = fractionPart\r\n         ? intPart + (format.decimalSeparator || '') + ((g2 = +format.fractionGroupSize)\r\n          ? fractionPart.replace(new RegExp('\\\\d{' + g2 + '}\\\\B', 'g'),\r\n           '$&' + (format.fractionGroupSeparator || ''))\r\n          : fractionPart)\r\n         : intPart;\r\n      }\r\n\r\n      return (format.prefix || '') + str + (format.suffix || '');\r\n    };\r\n\r\n\r\n    /*\r\n     * Return an array of two BigNumbers representing the value of this BigNumber as a simple\r\n     * fraction with an integer numerator and an integer denominator.\r\n     * The denominator will be a positive non-zero value less than or equal to the specified\r\n     * maximum denominator. If a maximum denominator is not specified, the denominator will be\r\n     * the lowest value necessary to represent the number exactly.\r\n     *\r\n     * [md] {number|string|BigNumber} Integer >= 1, or Infinity. The maximum denominator.\r\n     *\r\n     * '[BigNumber Error] Argument {not an integer|out of range} : {md}'\r\n     */\r\n    P.toFraction = function (md) {\r\n      var d, d0, d1, d2, e, exp, n, n0, n1, q, r, s,\r\n        x = this,\r\n        xc = x.c;\r\n\r\n      if (md != null) {\r\n        n = new BigNumber(md);\r\n\r\n        // Throw if md is less than one or is not an integer, unless it is Infinity.\r\n        if (!n.isInteger() && (n.c || n.s !== 1) || n.lt(ONE)) {\r\n          throw Error\r\n            (bignumberError + 'Argument ' +\r\n              (n.isInteger() ? 'out of range: ' : 'not an integer: ') + valueOf(n));\r\n        }\r\n      }\r\n\r\n      if (!xc) return new BigNumber(x);\r\n\r\n      d = new BigNumber(ONE);\r\n      n1 = d0 = new BigNumber(ONE);\r\n      d1 = n0 = new BigNumber(ONE);\r\n      s = coeffToString(xc);\r\n\r\n      // Determine initial denominator.\r\n      // d is a power of 10 and the minimum max denominator that specifies the value exactly.\r\n      e = d.e = s.length - x.e - 1;\r\n      d.c[0] = POWS_TEN[(exp = e % LOG_BASE) < 0 ? LOG_BASE + exp : exp];\r\n      md = !md || n.comparedTo(d) > 0 ? (e > 0 ? d : n1) : n;\r\n\r\n      exp = MAX_EXP;\r\n      MAX_EXP = 1 / 0;\r\n      n = new BigNumber(s);\r\n\r\n      // n0 = d1 = 0\r\n      n0.c[0] = 0;\r\n\r\n      for (; ;)  {\r\n        q = div(n, d, 0, 1);\r\n        d2 = d0.plus(q.times(d1));\r\n        if (d2.comparedTo(md) == 1) break;\r\n        d0 = d1;\r\n        d1 = d2;\r\n        n1 = n0.plus(q.times(d2 = n1));\r\n        n0 = d2;\r\n        d = n.minus(q.times(d2 = d));\r\n        n = d2;\r\n      }\r\n\r\n      d2 = div(md.minus(d0), d1, 0, 1);\r\n      n0 = n0.plus(d2.times(n1));\r\n      d0 = d0.plus(d2.times(d1));\r\n      n0.s = n1.s = x.s;\r\n      e = e * 2;\r\n\r\n      // Determine which fraction is closer to x, n0/d0 or n1/d1\r\n      r = div(n1, d1, e, ROUNDING_MODE).minus(x).abs().comparedTo(\r\n          div(n0, d0, e, ROUNDING_MODE).minus(x).abs()) < 1 ? [n1, d1] : [n0, d0];\r\n\r\n      MAX_EXP = exp;\r\n\r\n      return r;\r\n    };\r\n\r\n\r\n    /*\r\n     * Return the value of this BigNumber converted to a number primitive.\r\n     */\r\n    P.toNumber = function () {\r\n      return +valueOf(this);\r\n    };\r\n\r\n\r\n    /*\r\n     * Return a string representing the value of this BigNumber rounded to sd significant digits\r\n     * using rounding mode rm or ROUNDING_MODE. If sd is less than the number of digits\r\n     * necessary to represent the integer part of the value in fixed-point notation, then use\r\n     * exponential notation.\r\n     *\r\n     * [sd] {number} Significant digits. Integer, 1 to MAX inclusive.\r\n     * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n     *\r\n     * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n     */\r\n    P.toPrecision = function (sd, rm) {\r\n      if (sd != null) intCheck(sd, 1, MAX);\r\n      return format(this, sd, rm, 2);\r\n    };\r\n\r\n\r\n    /*\r\n     * Return a string representing the value of this BigNumber in base b, or base 10 if b is\r\n     * omitted. If a base is specified, including base 10, round according to DECIMAL_PLACES and\r\n     * ROUNDING_MODE. If a base is not specified, and this BigNumber has a positive exponent\r\n     * that is equal to or greater than TO_EXP_POS, or a negative exponent equal to or less than\r\n     * TO_EXP_NEG, return exponential notation.\r\n     *\r\n     * [b] {number} Integer, 2 to ALPHABET.length inclusive.\r\n     *\r\n     * '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n     */\r\n    P.toString = function (b) {\r\n      var str,\r\n        n = this,\r\n        s = n.s,\r\n        e = n.e;\r\n\r\n      // Infinity or NaN?\r\n      if (e === null) {\r\n        if (s) {\r\n          str = 'Infinity';\r\n          if (s < 0) str = '-' + str;\r\n        } else {\r\n          str = 'NaN';\r\n        }\r\n      } else {\r\n        if (b == null) {\r\n          str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n           ? toExponential(coeffToString(n.c), e)\r\n           : toFixedPoint(coeffToString(n.c), e, '0');\r\n        } else if (b === 10 && alphabetHasNormalDecimalDigits) {\r\n          n = round(new BigNumber(n), DECIMAL_PLACES + e + 1, ROUNDING_MODE);\r\n          str = toFixedPoint(coeffToString(n.c), n.e, '0');\r\n        } else {\r\n          intCheck(b, 2, ALPHABET.length, 'Base');\r\n          str = convertBase(toFixedPoint(coeffToString(n.c), e, '0'), 10, b, s, true);\r\n        }\r\n\r\n        if (s < 0 && n.c[0]) str = '-' + str;\r\n      }\r\n\r\n      return str;\r\n    };\r\n\r\n\r\n    /*\r\n     * Return as toString, but do not accept a base argument, and include the minus sign for\r\n     * negative zero.\r\n     */\r\n    P.valueOf = P.toJSON = function () {\r\n      return valueOf(this);\r\n    };\r\n\r\n\r\n    P._isBigNumber = true;\r\n\r\n    if (configObject != null) BigNumber.set(configObject);\r\n\r\n    return BigNumber;\r\n  }\r\n\r\n\r\n  // PRIVATE HELPER FUNCTIONS\r\n\r\n  // These functions don't need access to variables,\r\n  // e.g. DECIMAL_PLACES, in the scope of the `clone` function above.\r\n\r\n\r\n  function bitFloor(n) {\r\n    var i = n | 0;\r\n    return n > 0 || n === i ? i : i - 1;\r\n  }\r\n\r\n\r\n  // Return a coefficient array as a string of base 10 digits.\r\n  function coeffToString(a) {\r\n    var s, z,\r\n      i = 1,\r\n      j = a.length,\r\n      r = a[0] + '';\r\n\r\n    for (; i < j;) {\r\n      s = a[i++] + '';\r\n      z = LOG_BASE - s.length;\r\n      for (; z--; s = '0' + s);\r\n      r += s;\r\n    }\r\n\r\n    // Determine trailing zeros.\r\n    for (j = r.length; r.charCodeAt(--j) === 48;);\r\n\r\n    return r.slice(0, j + 1 || 1);\r\n  }\r\n\r\n\r\n  // Compare the value of BigNumbers x and y.\r\n  function compare(x, y) {\r\n    var a, b,\r\n      xc = x.c,\r\n      yc = y.c,\r\n      i = x.s,\r\n      j = y.s,\r\n      k = x.e,\r\n      l = y.e;\r\n\r\n    // Either NaN?\r\n    if (!i || !j) return null;\r\n\r\n    a = xc && !xc[0];\r\n    b = yc && !yc[0];\r\n\r\n    // Either zero?\r\n    if (a || b) return a ? b ? 0 : -j : i;\r\n\r\n    // Signs differ?\r\n    if (i != j) return i;\r\n\r\n    a = i < 0;\r\n    b = k == l;\r\n\r\n    // Either Infinity?\r\n    if (!xc || !yc) return b ? 0 : !xc ^ a ? 1 : -1;\r\n\r\n    // Compare exponents.\r\n    if (!b) return k > l ^ a ? 1 : -1;\r\n\r\n    j = (k = xc.length) < (l = yc.length) ? k : l;\r\n\r\n    // Compare digit by digit.\r\n    for (i = 0; i < j; i++) if (xc[i] != yc[i]) return xc[i] > yc[i] ^ a ? 1 : -1;\r\n\r\n    // Compare lengths.\r\n    return k == l ? 0 : k > l ^ a ? 1 : -1;\r\n  }\r\n\r\n\r\n  /*\r\n   * Check that n is a primitive number, an integer, and in range, otherwise throw.\r\n   */\r\n  function intCheck(n, min, max, name) {\r\n    if (n < min || n > max || n !== mathfloor(n)) {\r\n      throw Error\r\n       (bignumberError + (name || 'Argument') + (typeof n == 'number'\r\n         ? n < min || n > max ? ' out of range: ' : ' not an integer: '\r\n         : ' not a primitive number: ') + String(n));\r\n    }\r\n  }\r\n\r\n\r\n  // Assumes finite n.\r\n  function isOdd(n) {\r\n    var k = n.c.length - 1;\r\n    return bitFloor(n.e / LOG_BASE) == k && n.c[k] % 2 != 0;\r\n  }\r\n\r\n\r\n  function toExponential(str, e) {\r\n    return (str.length > 1 ? str.charAt(0) + '.' + str.slice(1) : str) +\r\n     (e < 0 ? 'e' : 'e+') + e;\r\n  }\r\n\r\n\r\n  function toFixedPoint(str, e, z) {\r\n    var len, zs;\r\n\r\n    // Negative exponent?\r\n    if (e < 0) {\r\n\r\n      // Prepend zeros.\r\n      for (zs = z + '.'; ++e; zs += z);\r\n      str = zs + str;\r\n\r\n    // Positive exponent\r\n    } else {\r\n      len = str.length;\r\n\r\n      // Append zeros.\r\n      if (++e > len) {\r\n        for (zs = z, e -= len; --e; zs += z);\r\n        str += zs;\r\n      } else if (e < len) {\r\n        str = str.slice(0, e) + '.' + str.slice(e);\r\n      }\r\n    }\r\n\r\n    return str;\r\n  }\r\n\r\n\r\n  // EXPORT\r\n\r\n\r\n  BigNumber = clone();\r\n  BigNumber['default'] = BigNumber.BigNumber = BigNumber;\r\n\r\n  // AMD.\r\n  if (typeof define == 'function' && define.amd) {\r\n    define(function () { return BigNumber; });\r\n\r\n  // Node.js and other environments that support module.exports.\r\n  } else if (typeof module != 'undefined' && module.exports) {\r\n    module.exports = BigNumber;\r\n\r\n  // Browser.\r\n  } else {\r\n    if (!globalObject) {\r\n      globalObject = typeof self != 'undefined' && self ? self : window;\r\n    }\r\n\r\n    globalObject.BigNumber = BigNumber;\r\n  }\r\n})(this);\r\n","// Blake2B in pure Javascript\n// Adapted from the reference implementation in RFC7693\n// Ported to Javascript by DC - https://github.com/dcposch\n\nconst util = require('./util')\n\n// 64-bit unsigned addition\n// Sets v[a,a+1] += v[b,b+1]\n// v should be a Uint32Array\nfunction ADD64AA (v, a, b) {\n  const o0 = v[a] + v[b]\n  let o1 = v[a + 1] + v[b + 1]\n  if (o0 >= 0x100000000) {\n    o1++\n  }\n  v[a] = o0\n  v[a + 1] = o1\n}\n\n// 64-bit unsigned addition\n// Sets v[a,a+1] += b\n// b0 is the low 32 bits of b, b1 represents the high 32 bits\nfunction ADD64AC (v, a, b0, b1) {\n  let o0 = v[a] + b0\n  if (b0 < 0) {\n    o0 += 0x100000000\n  }\n  let o1 = v[a + 1] + b1\n  if (o0 >= 0x100000000) {\n    o1++\n  }\n  v[a] = o0\n  v[a + 1] = o1\n}\n\n// Little-endian byte access\nfunction B2B_GET32 (arr, i) {\n  return arr[i] ^ (arr[i + 1] << 8) ^ (arr[i + 2] << 16) ^ (arr[i + 3] << 24)\n}\n\n// G Mixing function\n// The ROTRs are inlined for speed\nfunction B2B_G (a, b, c, d, ix, iy) {\n  const x0 = m[ix]\n  const x1 = m[ix + 1]\n  const y0 = m[iy]\n  const y1 = m[iy + 1]\n\n  ADD64AA(v, a, b) // v[a,a+1] += v[b,b+1] ... in JS we must store a uint64 as two uint32s\n  ADD64AC(v, a, x0, x1) // v[a, a+1] += x ... x0 is the low 32 bits of x, x1 is the high 32 bits\n\n  // v[d,d+1] = (v[d,d+1] xor v[a,a+1]) rotated to the right by 32 bits\n  let xor0 = v[d] ^ v[a]\n  let xor1 = v[d + 1] ^ v[a + 1]\n  v[d] = xor1\n  v[d + 1] = xor0\n\n  ADD64AA(v, c, d)\n\n  // v[b,b+1] = (v[b,b+1] xor v[c,c+1]) rotated right by 24 bits\n  xor0 = v[b] ^ v[c]\n  xor1 = v[b + 1] ^ v[c + 1]\n  v[b] = (xor0 >>> 24) ^ (xor1 << 8)\n  v[b + 1] = (xor1 >>> 24) ^ (xor0 << 8)\n\n  ADD64AA(v, a, b)\n  ADD64AC(v, a, y0, y1)\n\n  // v[d,d+1] = (v[d,d+1] xor v[a,a+1]) rotated right by 16 bits\n  xor0 = v[d] ^ v[a]\n  xor1 = v[d + 1] ^ v[a + 1]\n  v[d] = (xor0 >>> 16) ^ (xor1 << 16)\n  v[d + 1] = (xor1 >>> 16) ^ (xor0 << 16)\n\n  ADD64AA(v, c, d)\n\n  // v[b,b+1] = (v[b,b+1] xor v[c,c+1]) rotated right by 63 bits\n  xor0 = v[b] ^ v[c]\n  xor1 = v[b + 1] ^ v[c + 1]\n  v[b] = (xor1 >>> 31) ^ (xor0 << 1)\n  v[b + 1] = (xor0 >>> 31) ^ (xor1 << 1)\n}\n\n// Initialization Vector\nconst BLAKE2B_IV32 = new Uint32Array([\n  0xf3bcc908, 0x6a09e667, 0x84caa73b, 0xbb67ae85, 0xfe94f82b, 0x3c6ef372,\n  0x5f1d36f1, 0xa54ff53a, 0xade682d1, 0x510e527f, 0x2b3e6c1f, 0x9b05688c,\n  0xfb41bd6b, 0x1f83d9ab, 0x137e2179, 0x5be0cd19\n])\n\nconst SIGMA8 = [\n  0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 14, 10, 4, 8, 9, 15, 13,\n  6, 1, 12, 0, 2, 11, 7, 5, 3, 11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1,\n  9, 4, 7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8, 9, 0, 5, 7, 2, 4,\n  10, 15, 14, 1, 11, 12, 6, 8, 3, 13, 2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5,\n  15, 14, 1, 9, 12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11, 13, 11, 7,\n  14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10, 6, 15, 14, 9, 11, 3, 0, 8, 12, 2,\n  13, 7, 1, 4, 10, 5, 10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13, 0, 0,\n  1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 14, 10, 4, 8, 9, 15, 13, 6,\n  1, 12, 0, 2, 11, 7, 5, 3\n]\n\n// These are offsets into a uint64 buffer.\n// Multiply them all by 2 to make them offsets into a uint32 buffer,\n// because this is Javascript and we don't have uint64s\nconst SIGMA82 = new Uint8Array(\n  SIGMA8.map(function (x) {\n    return x * 2\n  })\n)\n\n// Compression function. 'last' flag indicates last block.\n// Note we're representing 16 uint64s as 32 uint32s\nconst v = new Uint32Array(32)\nconst m = new Uint32Array(32)\nfunction blake2bCompress (ctx, last) {\n  let i = 0\n\n  // init work variables\n  for (i = 0; i < 16; i++) {\n    v[i] = ctx.h[i]\n    v[i + 16] = BLAKE2B_IV32[i]\n  }\n\n  // low 64 bits of offset\n  v[24] = v[24] ^ ctx.t\n  v[25] = v[25] ^ (ctx.t / 0x100000000)\n  // high 64 bits not supported, offset may not be higher than 2**53-1\n\n  // last block flag set ?\n  if (last) {\n    v[28] = ~v[28]\n    v[29] = ~v[29]\n  }\n\n  // get little-endian words\n  for (i = 0; i < 32; i++) {\n    m[i] = B2B_GET32(ctx.b, 4 * i)\n  }\n\n  // twelve rounds of mixing\n  // uncomment the DebugPrint calls to log the computation\n  // and match the RFC sample documentation\n  // util.debugPrint('          m[16]', m, 64)\n  for (i = 0; i < 12; i++) {\n    // util.debugPrint('   (i=' + (i < 10 ? ' ' : '') + i + ') v[16]', v, 64)\n    B2B_G(0, 8, 16, 24, SIGMA82[i * 16 + 0], SIGMA82[i * 16 + 1])\n    B2B_G(2, 10, 18, 26, SIGMA82[i * 16 + 2], SIGMA82[i * 16 + 3])\n    B2B_G(4, 12, 20, 28, SIGMA82[i * 16 + 4], SIGMA82[i * 16 + 5])\n    B2B_G(6, 14, 22, 30, SIGMA82[i * 16 + 6], SIGMA82[i * 16 + 7])\n    B2B_G(0, 10, 20, 30, SIGMA82[i * 16 + 8], SIGMA82[i * 16 + 9])\n    B2B_G(2, 12, 22, 24, SIGMA82[i * 16 + 10], SIGMA82[i * 16 + 11])\n    B2B_G(4, 14, 16, 26, SIGMA82[i * 16 + 12], SIGMA82[i * 16 + 13])\n    B2B_G(6, 8, 18, 28, SIGMA82[i * 16 + 14], SIGMA82[i * 16 + 15])\n  }\n  // util.debugPrint('   (i=12) v[16]', v, 64)\n\n  for (i = 0; i < 16; i++) {\n    ctx.h[i] = ctx.h[i] ^ v[i] ^ v[i + 16]\n  }\n  // util.debugPrint('h[8]', ctx.h, 64)\n}\n\n// reusable parameterBlock\nconst parameterBlock = new Uint8Array([\n  0,\n  0,\n  0,\n  0, //  0: outlen, keylen, fanout, depth\n  0,\n  0,\n  0,\n  0, //  4: leaf length, sequential mode\n  0,\n  0,\n  0,\n  0, //  8: node offset\n  0,\n  0,\n  0,\n  0, // 12: node offset\n  0,\n  0,\n  0,\n  0, // 16: node depth, inner length, rfu\n  0,\n  0,\n  0,\n  0, // 20: rfu\n  0,\n  0,\n  0,\n  0, // 24: rfu\n  0,\n  0,\n  0,\n  0, // 28: rfu\n  0,\n  0,\n  0,\n  0, // 32: salt\n  0,\n  0,\n  0,\n  0, // 36: salt\n  0,\n  0,\n  0,\n  0, // 40: salt\n  0,\n  0,\n  0,\n  0, // 44: salt\n  0,\n  0,\n  0,\n  0, // 48: personal\n  0,\n  0,\n  0,\n  0, // 52: personal\n  0,\n  0,\n  0,\n  0, // 56: personal\n  0,\n  0,\n  0,\n  0 // 60: personal\n])\n\n// Creates a BLAKE2b hashing context\n// Requires an output length between 1 and 64 bytes\n// Takes an optional Uint8Array key\n// Takes an optinal Uint8Array salt\n// Takes an optinal Uint8Array personal\nfunction blake2bInit (outlen, key, salt, personal) {\n  if (outlen === 0 || outlen > 64) {\n    throw new Error('Illegal output length, expected 0 < length <= 64')\n  }\n  if (key && key.length > 64) {\n    throw new Error('Illegal key, expected Uint8Array with 0 < length <= 64')\n  }\n  if (salt && salt.length !== 16) {\n    throw new Error('Illegal salt, expected Uint8Array with length is 16')\n  }\n  if (personal && personal.length !== 16) {\n    throw new Error('Illegal personal, expected Uint8Array with length is 16')\n  }\n\n  // state, 'param block'\n  const ctx = {\n    b: new Uint8Array(128),\n    h: new Uint32Array(16),\n    t: 0, // input count\n    c: 0, // pointer within buffer\n    outlen: outlen // output length in bytes\n  }\n\n  // initialize parameterBlock before usage\n  parameterBlock.fill(0)\n  parameterBlock[0] = outlen\n  if (key) parameterBlock[1] = key.length\n  parameterBlock[2] = 1 // fanout\n  parameterBlock[3] = 1 // depth\n  if (salt) parameterBlock.set(salt, 32)\n  if (personal) parameterBlock.set(personal, 48)\n\n  // initialize hash state\n  for (let i = 0; i < 16; i++) {\n    ctx.h[i] = BLAKE2B_IV32[i] ^ B2B_GET32(parameterBlock, i * 4)\n  }\n\n  // key the hash, if applicable\n  if (key) {\n    blake2bUpdate(ctx, key)\n    // at the end\n    ctx.c = 128\n  }\n\n  return ctx\n}\n\n// Updates a BLAKE2b streaming hash\n// Requires hash context and Uint8Array (byte array)\nfunction blake2bUpdate (ctx, input) {\n  for (let i = 0; i < input.length; i++) {\n    if (ctx.c === 128) {\n      // buffer full ?\n      ctx.t += ctx.c // add counters\n      blake2bCompress(ctx, false) // compress (not last)\n      ctx.c = 0 // counter to zero\n    }\n    ctx.b[ctx.c++] = input[i]\n  }\n}\n\n// Completes a BLAKE2b streaming hash\n// Returns a Uint8Array containing the message digest\nfunction blake2bFinal (ctx) {\n  ctx.t += ctx.c // mark last block offset\n\n  while (ctx.c < 128) {\n    // fill up with zeros\n    ctx.b[ctx.c++] = 0\n  }\n  blake2bCompress(ctx, true) // final block flag = 1\n\n  // little endian convert and store\n  const out = new Uint8Array(ctx.outlen)\n  for (let i = 0; i < ctx.outlen; i++) {\n    out[i] = ctx.h[i >> 2] >> (8 * (i & 3))\n  }\n  return out\n}\n\n// Computes the BLAKE2B hash of a string or byte array, and returns a Uint8Array\n//\n// Returns a n-byte Uint8Array\n//\n// Parameters:\n// - input - the input bytes, as a string, Buffer or Uint8Array\n// - key - optional key Uint8Array, up to 64 bytes\n// - outlen - optional output length in bytes, default 64\n// - salt - optional salt bytes, string, Buffer or Uint8Array\n// - personal - optional personal bytes, string, Buffer or Uint8Array\nfunction blake2b (input, key, outlen, salt, personal) {\n  // preprocess inputs\n  outlen = outlen || 64\n  input = util.normalizeInput(input)\n  if (salt) {\n    salt = util.normalizeInput(salt)\n  }\n  if (personal) {\n    personal = util.normalizeInput(personal)\n  }\n\n  // do the math\n  const ctx = blake2bInit(outlen, key, salt, personal)\n  blake2bUpdate(ctx, input)\n  return blake2bFinal(ctx)\n}\n\n// Computes the BLAKE2B hash of a string or byte array\n//\n// Returns an n-byte hash in hex, all lowercase\n//\n// Parameters:\n// - input - the input bytes, as a string, Buffer, or Uint8Array\n// - key - optional key Uint8Array, up to 64 bytes\n// - outlen - optional output length in bytes, default 64\n// - salt - optional salt bytes, string, Buffer or Uint8Array\n// - personal - optional personal bytes, string, Buffer or Uint8Array\nfunction blake2bHex (input, key, outlen, salt, personal) {\n  const output = blake2b(input, key, outlen, salt, personal)\n  return util.toHex(output)\n}\n\nmodule.exports = {\n  blake2b: blake2b,\n  blake2bHex: blake2bHex,\n  blake2bInit: blake2bInit,\n  blake2bUpdate: blake2bUpdate,\n  blake2bFinal: blake2bFinal\n}\n","const ERROR_MSG_INPUT = 'Input must be an string, Buffer or Uint8Array'\n\n// For convenience, let people hash a string, not just a Uint8Array\nfunction normalizeInput (input) {\n  let ret\n  if (input instanceof Uint8Array) {\n    ret = input\n  } else if (typeof input === 'string') {\n    const encoder = new TextEncoder()\n    ret = encoder.encode(input)\n  } else {\n    throw new Error(ERROR_MSG_INPUT)\n  }\n  return ret\n}\n\n// Converts a Uint8Array to a hexadecimal string\n// For example, toHex([255, 0, 255]) returns \"ff00ff\"\nfunction toHex (bytes) {\n  return Array.prototype.map\n    .call(bytes, function (n) {\n      return (n < 16 ? '0' : '') + n.toString(16)\n    })\n    .join('')\n}\n\n// Converts any value in [0...2^32-1] to an 8-character hex string\nfunction uint32ToHex (val) {\n  return (0x100000000 + val).toString(16).substring(1)\n}\n\n// For debugging: prints out hash state in the same format as the RFC\n// sample computation exactly, so that you can diff\nfunction debugPrint (label, arr, size) {\n  let msg = '\\n' + label + ' = '\n  for (let i = 0; i < arr.length; i += 2) {\n    if (size === 32) {\n      msg += uint32ToHex(arr[i]).toUpperCase()\n      msg += ' '\n      msg += uint32ToHex(arr[i + 1]).toUpperCase()\n    } else if (size === 64) {\n      msg += uint32ToHex(arr[i + 1]).toUpperCase()\n      msg += uint32ToHex(arr[i]).toUpperCase()\n    } else throw new Error('Invalid size ' + size)\n    if (i % 6 === 4) {\n      msg += '\\n' + new Array(label.length + 4).join(' ')\n    } else if (i < arr.length - 2) {\n      msg += ' '\n    }\n  }\n  console.log(msg)\n}\n\n// For performance testing: generates N bytes of input, hashes M times\n// Measures and prints MB/second hash performance each time\nfunction testSpeed (hashFn, N, M) {\n  let startMs = new Date().getTime()\n\n  const input = new Uint8Array(N)\n  for (let i = 0; i < N; i++) {\n    input[i] = i % 256\n  }\n  const genMs = new Date().getTime()\n  console.log('Generated random input in ' + (genMs - startMs) + 'ms')\n  startMs = genMs\n\n  for (let i = 0; i < M; i++) {\n    const hashHex = hashFn(input)\n    const hashMs = new Date().getTime()\n    const ms = hashMs - startMs\n    startMs = hashMs\n    console.log('Hashed in ' + ms + 'ms: ' + hashHex.substring(0, 20) + '...')\n    console.log(\n      Math.round((N / (1 << 20) / (ms / 1000)) * 100) / 100 + ' MB PER SECOND'\n    )\n  }\n}\n\nmodule.exports = {\n  normalizeInput: normalizeInput,\n  toHex: toHex,\n  debugPrint: debugPrint,\n  testSpeed: testSpeed\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author   Feross Aboukhadijeh <https://feross.org>\n * @license  MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n  (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n    ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n    : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n *   === true    Use Uint8Array implementation (fastest)\n *   === false   Print warning and recommend using `buffer` v4.x which has an Object\n *               implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n    typeof console.error === 'function') {\n  console.error(\n    'This browser lacks typed array (Uint8Array) support which is required by ' +\n    '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n  )\n}\n\nfunction typedArraySupport () {\n  // Can typed array instances can be augmented?\n  try {\n    const arr = new Uint8Array(1)\n    const proto = { foo: function () { return 42 } }\n    Object.setPrototypeOf(proto, Uint8Array.prototype)\n    Object.setPrototypeOf(arr, proto)\n    return arr.foo() === 42\n  } catch (e) {\n    return false\n  }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n  enumerable: true,\n  get: function () {\n    if (!Buffer.isBuffer(this)) return undefined\n    return this.buffer\n  }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n  enumerable: true,\n  get: function () {\n    if (!Buffer.isBuffer(this)) return undefined\n    return this.byteOffset\n  }\n})\n\nfunction createBuffer (length) {\n  if (length > K_MAX_LENGTH) {\n    throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n  }\n  // Return an augmented `Uint8Array` instance\n  const buf = new Uint8Array(length)\n  Object.setPrototypeOf(buf, Buffer.prototype)\n  return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n  // Common case.\n  if (typeof arg === 'number') {\n    if (typeof encodingOrOffset === 'string') {\n      throw new TypeError(\n        'The \"string\" argument must be of type string. Received type number'\n      )\n    }\n    return allocUnsafe(arg)\n  }\n  return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n  if (typeof value === 'string') {\n    return fromString(value, encodingOrOffset)\n  }\n\n  if (ArrayBuffer.isView(value)) {\n    return fromArrayView(value)\n  }\n\n  if (value == null) {\n    throw new TypeError(\n      'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n      'or Array-like Object. Received type ' + (typeof value)\n    )\n  }\n\n  if (isInstance(value, ArrayBuffer) ||\n      (value && isInstance(value.buffer, ArrayBuffer))) {\n    return fromArrayBuffer(value, encodingOrOffset, length)\n  }\n\n  if (typeof SharedArrayBuffer !== 'undefined' &&\n      (isInstance(value, SharedArrayBuffer) ||\n      (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n    return fromArrayBuffer(value, encodingOrOffset, length)\n  }\n\n  if (typeof value === 'number') {\n    throw new TypeError(\n      'The \"value\" argument must not be of type number. Received type number'\n    )\n  }\n\n  const valueOf = value.valueOf && value.valueOf()\n  if (valueOf != null && valueOf !== value) {\n    return Buffer.from(valueOf, encodingOrOffset, length)\n  }\n\n  const b = fromObject(value)\n  if (b) return b\n\n  if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n      typeof value[Symbol.toPrimitive] === 'function') {\n    return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n  }\n\n  throw new TypeError(\n    'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n    'or Array-like Object. Received type ' + (typeof value)\n  )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n  return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n  if (typeof size !== 'number') {\n    throw new TypeError('\"size\" argument must be of type number')\n  } else if (size < 0) {\n    throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n  }\n}\n\nfunction alloc (size, fill, encoding) {\n  assertSize(size)\n  if (size <= 0) {\n    return createBuffer(size)\n  }\n  if (fill !== undefined) {\n    // Only pay attention to encoding if it's a string. This\n    // prevents accidentally sending in a number that would\n    // be interpreted as a start offset.\n    return typeof encoding === 'string'\n      ? createBuffer(size).fill(fill, encoding)\n      : createBuffer(size).fill(fill)\n  }\n  return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n  return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n  assertSize(size)\n  return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n  return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n  return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n  if (typeof encoding !== 'string' || encoding === '') {\n    encoding = 'utf8'\n  }\n\n  if (!Buffer.isEncoding(encoding)) {\n    throw new TypeError('Unknown encoding: ' + encoding)\n  }\n\n  const length = byteLength(string, encoding) | 0\n  let buf = createBuffer(length)\n\n  const actual = buf.write(string, encoding)\n\n  if (actual !== length) {\n    // Writing a hex string, for example, that contains invalid characters will\n    // cause everything after the first invalid character to be ignored. (e.g.\n    // 'abxxcd' will be treated as 'ab')\n    buf = buf.slice(0, actual)\n  }\n\n  return buf\n}\n\nfunction fromArrayLike (array) {\n  const length = array.length < 0 ? 0 : checked(array.length) | 0\n  const buf = createBuffer(length)\n  for (let i = 0; i < length; i += 1) {\n    buf[i] = array[i] & 255\n  }\n  return buf\n}\n\nfunction fromArrayView (arrayView) {\n  if (isInstance(arrayView, Uint8Array)) {\n    const copy = new Uint8Array(arrayView)\n    return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n  }\n  return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n  if (byteOffset < 0 || array.byteLength < byteOffset) {\n    throw new RangeError('\"offset\" is outside of buffer bounds')\n  }\n\n  if (array.byteLength < byteOffset + (length || 0)) {\n    throw new RangeError('\"length\" is outside of buffer bounds')\n  }\n\n  let buf\n  if (byteOffset === undefined && length === undefined) {\n    buf = new Uint8Array(array)\n  } else if (length === undefined) {\n    buf = new Uint8Array(array, byteOffset)\n  } else {\n    buf = new Uint8Array(array, byteOffset, length)\n  }\n\n  // Return an augmented `Uint8Array` instance\n  Object.setPrototypeOf(buf, Buffer.prototype)\n\n  return buf\n}\n\nfunction fromObject (obj) {\n  if (Buffer.isBuffer(obj)) {\n    const len = checked(obj.length) | 0\n    const buf = createBuffer(len)\n\n    if (buf.length === 0) {\n      return buf\n    }\n\n    obj.copy(buf, 0, 0, len)\n    return buf\n  }\n\n  if (obj.length !== undefined) {\n    if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n      return createBuffer(0)\n    }\n    return fromArrayLike(obj)\n  }\n\n  if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n    return fromArrayLike(obj.data)\n  }\n}\n\nfunction checked (length) {\n  // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n  // length is NaN (which is otherwise coerced to zero.)\n  if (length >= K_MAX_LENGTH) {\n    throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n                         'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n  }\n  return length | 0\n}\n\nfunction SlowBuffer (length) {\n  if (+length != length) { // eslint-disable-line eqeqeq\n    length = 0\n  }\n  return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n  return b != null && b._isBuffer === true &&\n    b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n  if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n  if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n  if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n    throw new TypeError(\n      'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n    )\n  }\n\n  if (a === b) return 0\n\n  let x = a.length\n  let y = b.length\n\n  for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n    if (a[i] !== b[i]) {\n      x = a[i]\n      y = b[i]\n      break\n    }\n  }\n\n  if (x < y) return -1\n  if (y < x) return 1\n  return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n  switch (String(encoding).toLowerCase()) {\n    case 'hex':\n    case 'utf8':\n    case 'utf-8':\n    case 'ascii':\n    case 'latin1':\n    case 'binary':\n    case 'base64':\n    case 'ucs2':\n    case 'ucs-2':\n    case 'utf16le':\n    case 'utf-16le':\n      return true\n    default:\n      return false\n  }\n}\n\nBuffer.concat = function concat (list, length) {\n  if (!Array.isArray(list)) {\n    throw new TypeError('\"list\" argument must be an Array of Buffers')\n  }\n\n  if (list.length === 0) {\n    return Buffer.alloc(0)\n  }\n\n  let i\n  if (length === undefined) {\n    length = 0\n    for (i = 0; i < list.length; ++i) {\n      length += list[i].length\n    }\n  }\n\n  const buffer = Buffer.allocUnsafe(length)\n  let pos = 0\n  for (i = 0; i < list.length; ++i) {\n    let buf = list[i]\n    if (isInstance(buf, Uint8Array)) {\n      if (pos + buf.length > buffer.length) {\n        if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n        buf.copy(buffer, pos)\n      } else {\n        Uint8Array.prototype.set.call(\n          buffer,\n          buf,\n          pos\n        )\n      }\n    } else if (!Buffer.isBuffer(buf)) {\n      throw new TypeError('\"list\" argument must be an Array of Buffers')\n    } else {\n      buf.copy(buffer, pos)\n    }\n    pos += buf.length\n  }\n  return buffer\n}\n\nfunction byteLength (string, encoding) {\n  if (Buffer.isBuffer(string)) {\n    return string.length\n  }\n  if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n    return string.byteLength\n  }\n  if (typeof string !== 'string') {\n    throw new TypeError(\n      'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n      'Received type ' + typeof string\n    )\n  }\n\n  const len = string.length\n  const mustMatch = (arguments.length > 2 && arguments[2] === true)\n  if (!mustMatch && len === 0) return 0\n\n  // Use a for loop to avoid recursion\n  let loweredCase = false\n  for (;;) {\n    switch (encoding) {\n      case 'ascii':\n      case 'latin1':\n      case 'binary':\n        return len\n      case 'utf8':\n      case 'utf-8':\n        return utf8ToBytes(string).length\n      case 'ucs2':\n      case 'ucs-2':\n      case 'utf16le':\n      case 'utf-16le':\n        return len * 2\n      case 'hex':\n        return len >>> 1\n      case 'base64':\n        return base64ToBytes(string).length\n      default:\n        if (loweredCase) {\n          return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n        }\n        encoding = ('' + encoding).toLowerCase()\n        loweredCase = true\n    }\n  }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n  let loweredCase = false\n\n  // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n  // property of a typed array.\n\n  // This behaves neither like String nor Uint8Array in that we set start/end\n  // to their upper/lower bounds if the value passed is out of range.\n  // undefined is handled specially as per ECMA-262 6th Edition,\n  // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n  if (start === undefined || start < 0) {\n    start = 0\n  }\n  // Return early if start > this.length. Done here to prevent potential uint32\n  // coercion fail below.\n  if (start > this.length) {\n    return ''\n  }\n\n  if (end === undefined || end > this.length) {\n    end = this.length\n  }\n\n  if (end <= 0) {\n    return ''\n  }\n\n  // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n  end >>>= 0\n  start >>>= 0\n\n  if (end <= start) {\n    return ''\n  }\n\n  if (!encoding) encoding = 'utf8'\n\n  while (true) {\n    switch (encoding) {\n      case 'hex':\n        return hexSlice(this, start, end)\n\n      case 'utf8':\n      case 'utf-8':\n        return utf8Slice(this, start, end)\n\n      case 'ascii':\n        return asciiSlice(this, start, end)\n\n      case 'latin1':\n      case 'binary':\n        return latin1Slice(this, start, end)\n\n      case 'base64':\n        return base64Slice(this, start, end)\n\n      case 'ucs2':\n      case 'ucs-2':\n      case 'utf16le':\n      case 'utf-16le':\n        return utf16leSlice(this, start, end)\n\n      default:\n        if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n        encoding = (encoding + '').toLowerCase()\n        loweredCase = true\n    }\n  }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n  const i = b[n]\n  b[n] = b[m]\n  b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n  const len = this.length\n  if (len % 2 !== 0) {\n    throw new RangeError('Buffer size must be a multiple of 16-bits')\n  }\n  for (let i = 0; i < len; i += 2) {\n    swap(this, i, i + 1)\n  }\n  return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n  const len = this.length\n  if (len % 4 !== 0) {\n    throw new RangeError('Buffer size must be a multiple of 32-bits')\n  }\n  for (let i = 0; i < len; i += 4) {\n    swap(this, i, i + 3)\n    swap(this, i + 1, i + 2)\n  }\n  return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n  const len = this.length\n  if (len % 8 !== 0) {\n    throw new RangeError('Buffer size must be a multiple of 64-bits')\n  }\n  for (let i = 0; i < len; i += 8) {\n    swap(this, i, i + 7)\n    swap(this, i + 1, i + 6)\n    swap(this, i + 2, i + 5)\n    swap(this, i + 3, i + 4)\n  }\n  return this\n}\n\nBuffer.prototype.toString = function toString () {\n  const length = this.length\n  if (length === 0) return ''\n  if (arguments.length === 0) return utf8Slice(this, 0, length)\n  return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n  if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n  if (this === b) return true\n  return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n  let str = ''\n  const max = exports.INSPECT_MAX_BYTES\n  str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n  if (this.length > max) str += ' ... '\n  return '<Buffer ' + str + '>'\n}\nif (customInspectSymbol) {\n  Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n  if (isInstance(target, Uint8Array)) {\n    target = Buffer.from(target, target.offset, target.byteLength)\n  }\n  if (!Buffer.isBuffer(target)) {\n    throw new TypeError(\n      'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n      'Received type ' + (typeof target)\n    )\n  }\n\n  if (start === undefined) {\n    start = 0\n  }\n  if (end === undefined) {\n    end = target ? target.length : 0\n  }\n  if (thisStart === undefined) {\n    thisStart = 0\n  }\n  if (thisEnd === undefined) {\n    thisEnd = this.length\n  }\n\n  if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n    throw new RangeError('out of range index')\n  }\n\n  if (thisStart >= thisEnd && start >= end) {\n    return 0\n  }\n  if (thisStart >= thisEnd) {\n    return -1\n  }\n  if (start >= end) {\n    return 1\n  }\n\n  start >>>= 0\n  end >>>= 0\n  thisStart >>>= 0\n  thisEnd >>>= 0\n\n  if (this === target) return 0\n\n  let x = thisEnd - thisStart\n  let y = end - start\n  const len = Math.min(x, y)\n\n  const thisCopy = this.slice(thisStart, thisEnd)\n  const targetCopy = target.slice(start, end)\n\n  for (let i = 0; i < len; ++i) {\n    if (thisCopy[i] !== targetCopy[i]) {\n      x = thisCopy[i]\n      y = targetCopy[i]\n      break\n    }\n  }\n\n  if (x < y) return -1\n  if (y < x) return 1\n  return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n  // Empty buffer means no match\n  if (buffer.length === 0) return -1\n\n  // Normalize byteOffset\n  if (typeof byteOffset === 'string') {\n    encoding = byteOffset\n    byteOffset = 0\n  } else if (byteOffset > 0x7fffffff) {\n    byteOffset = 0x7fffffff\n  } else if (byteOffset < -0x80000000) {\n    byteOffset = -0x80000000\n  }\n  byteOffset = +byteOffset // Coerce to Number.\n  if (numberIsNaN(byteOffset)) {\n    // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n    byteOffset = dir ? 0 : (buffer.length - 1)\n  }\n\n  // Normalize byteOffset: negative offsets start from the end of the buffer\n  if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n  if (byteOffset >= buffer.length) {\n    if (dir) return -1\n    else byteOffset = buffer.length - 1\n  } else if (byteOffset < 0) {\n    if (dir) byteOffset = 0\n    else return -1\n  }\n\n  // Normalize val\n  if (typeof val === 'string') {\n    val = Buffer.from(val, encoding)\n  }\n\n  // Finally, search either indexOf (if dir is true) or lastIndexOf\n  if (Buffer.isBuffer(val)) {\n    // Special case: looking for empty string/buffer always fails\n    if (val.length === 0) {\n      return -1\n    }\n    return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n  } else if (typeof val === 'number') {\n    val = val & 0xFF // Search for a byte value [0-255]\n    if (typeof Uint8Array.prototype.indexOf === 'function') {\n      if (dir) {\n        return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n      } else {\n        return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n      }\n    }\n    return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n  }\n\n  throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n  let indexSize = 1\n  let arrLength = arr.length\n  let valLength = val.length\n\n  if (encoding !== undefined) {\n    encoding = String(encoding).toLowerCase()\n    if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n        encoding === 'utf16le' || encoding === 'utf-16le') {\n      if (arr.length < 2 || val.length < 2) {\n        return -1\n      }\n      indexSize = 2\n      arrLength /= 2\n      valLength /= 2\n      byteOffset /= 2\n    }\n  }\n\n  function read (buf, i) {\n    if (indexSize === 1) {\n      return buf[i]\n    } else {\n      return buf.readUInt16BE(i * indexSize)\n    }\n  }\n\n  let i\n  if (dir) {\n    let foundIndex = -1\n    for (i = byteOffset; i < arrLength; i++) {\n      if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n        if (foundIndex === -1) foundIndex = i\n        if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n      } else {\n        if (foundIndex !== -1) i -= i - foundIndex\n        foundIndex = -1\n      }\n    }\n  } else {\n    if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n    for (i = byteOffset; i >= 0; i--) {\n      let found = true\n      for (let j = 0; j < valLength; j++) {\n        if (read(arr, i + j) !== read(val, j)) {\n          found = false\n          break\n        }\n      }\n      if (found) return i\n    }\n  }\n\n  return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n  return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n  return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n  return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n  offset = Number(offset) || 0\n  const remaining = buf.length - offset\n  if (!length) {\n    length = remaining\n  } else {\n    length = Number(length)\n    if (length > remaining) {\n      length = remaining\n    }\n  }\n\n  const strLen = string.length\n\n  if (length > strLen / 2) {\n    length = strLen / 2\n  }\n  let i\n  for (i = 0; i < length; ++i) {\n    const parsed = parseInt(string.substr(i * 2, 2), 16)\n    if (numberIsNaN(parsed)) return i\n    buf[offset + i] = parsed\n  }\n  return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n  return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n  return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n  return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n  return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n  // Buffer#write(string)\n  if (offset === undefined) {\n    encoding = 'utf8'\n    length = this.length\n    offset = 0\n  // Buffer#write(string, encoding)\n  } else if (length === undefined && typeof offset === 'string') {\n    encoding = offset\n    length = this.length\n    offset = 0\n  // Buffer#write(string, offset[, length][, encoding])\n  } else if (isFinite(offset)) {\n    offset = offset >>> 0\n    if (isFinite(length)) {\n      length = length >>> 0\n      if (encoding === undefined) encoding = 'utf8'\n    } else {\n      encoding = length\n      length = undefined\n    }\n  } else {\n    throw new Error(\n      'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n    )\n  }\n\n  const remaining = this.length - offset\n  if (length === undefined || length > remaining) length = remaining\n\n  if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n    throw new RangeError('Attempt to write outside buffer bounds')\n  }\n\n  if (!encoding) encoding = 'utf8'\n\n  let loweredCase = false\n  for (;;) {\n    switch (encoding) {\n      case 'hex':\n        return hexWrite(this, string, offset, length)\n\n      case 'utf8':\n      case 'utf-8':\n        return utf8Write(this, string, offset, length)\n\n      case 'ascii':\n      case 'latin1':\n      case 'binary':\n        return asciiWrite(this, string, offset, length)\n\n      case 'base64':\n        // Warning: maxLength not taken into account in base64Write\n        return base64Write(this, string, offset, length)\n\n      case 'ucs2':\n      case 'ucs-2':\n      case 'utf16le':\n      case 'utf-16le':\n        return ucs2Write(this, string, offset, length)\n\n      default:\n        if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n        encoding = ('' + encoding).toLowerCase()\n        loweredCase = true\n    }\n  }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n  return {\n    type: 'Buffer',\n    data: Array.prototype.slice.call(this._arr || this, 0)\n  }\n}\n\nfunction base64Slice (buf, start, end) {\n  if (start === 0 && end === buf.length) {\n    return base64.fromByteArray(buf)\n  } else {\n    return base64.fromByteArray(buf.slice(start, end))\n  }\n}\n\nfunction utf8Slice (buf, start, end) {\n  end = Math.min(buf.length, end)\n  const res = []\n\n  let i = start\n  while (i < end) {\n    const firstByte = buf[i]\n    let codePoint = null\n    let bytesPerSequence = (firstByte > 0xEF)\n      ? 4\n      : (firstByte > 0xDF)\n          ? 3\n          : (firstByte > 0xBF)\n              ? 2\n              : 1\n\n    if (i + bytesPerSequence <= end) {\n      let secondByte, thirdByte, fourthByte, tempCodePoint\n\n      switch (bytesPerSequence) {\n        case 1:\n          if (firstByte < 0x80) {\n            codePoint = firstByte\n          }\n          break\n        case 2:\n          secondByte = buf[i + 1]\n          if ((secondByte & 0xC0) === 0x80) {\n            tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n            if (tempCodePoint > 0x7F) {\n              codePoint = tempCodePoint\n            }\n          }\n          break\n        case 3:\n          secondByte = buf[i + 1]\n          thirdByte = buf[i + 2]\n          if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n            tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n            if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n              codePoint = tempCodePoint\n            }\n          }\n          break\n        case 4:\n          secondByte = buf[i + 1]\n          thirdByte = buf[i + 2]\n          fourthByte = buf[i + 3]\n          if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n            tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n            if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n              codePoint = tempCodePoint\n            }\n          }\n      }\n    }\n\n    if (codePoint === null) {\n      // we did not generate a valid codePoint so insert a\n      // replacement char (U+FFFD) and advance only 1 byte\n      codePoint = 0xFFFD\n      bytesPerSequence = 1\n    } else if (codePoint > 0xFFFF) {\n      // encode to utf16 (surrogate pair dance)\n      codePoint -= 0x10000\n      res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n      codePoint = 0xDC00 | codePoint & 0x3FF\n    }\n\n    res.push(codePoint)\n    i += bytesPerSequence\n  }\n\n  return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n  const len = codePoints.length\n  if (len <= MAX_ARGUMENTS_LENGTH) {\n    return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n  }\n\n  // Decode in chunks to avoid \"call stack size exceeded\".\n  let res = ''\n  let i = 0\n  while (i < len) {\n    res += String.fromCharCode.apply(\n      String,\n      codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n    )\n  }\n  return res\n}\n\nfunction asciiSlice (buf, start, end) {\n  let ret = ''\n  end = Math.min(buf.length, end)\n\n  for (let i = start; i < end; ++i) {\n    ret += String.fromCharCode(buf[i] & 0x7F)\n  }\n  return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n  let ret = ''\n  end = Math.min(buf.length, end)\n\n  for (let i = start; i < end; ++i) {\n    ret += String.fromCharCode(buf[i])\n  }\n  return ret\n}\n\nfunction hexSlice (buf, start, end) {\n  const len = buf.length\n\n  if (!start || start < 0) start = 0\n  if (!end || end < 0 || end > len) end = len\n\n  let out = ''\n  for (let i = start; i < end; ++i) {\n    out += hexSliceLookupTable[buf[i]]\n  }\n  return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n  const bytes = buf.slice(start, end)\n  let res = ''\n  // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n  for (let i = 0; i < bytes.length - 1; i += 2) {\n    res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n  }\n  return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n  const len = this.length\n  start = ~~start\n  end = end === undefined ? len : ~~end\n\n  if (start < 0) {\n    start += len\n    if (start < 0) start = 0\n  } else if (start > len) {\n    start = len\n  }\n\n  if (end < 0) {\n    end += len\n    if (end < 0) end = 0\n  } else if (end > len) {\n    end = len\n  }\n\n  if (end < start) end = start\n\n  const newBuf = this.subarray(start, end)\n  // Return an augmented `Uint8Array` instance\n  Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n  return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n  if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n  if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n  offset = offset >>> 0\n  byteLength = byteLength >>> 0\n  if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n  let val = this[offset]\n  let mul = 1\n  let i = 0\n  while (++i < byteLength && (mul *= 0x100)) {\n    val += this[offset + i] * mul\n  }\n\n  return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n  offset = offset >>> 0\n  byteLength = byteLength >>> 0\n  if (!noAssert) {\n    checkOffset(offset, byteLength, this.length)\n  }\n\n  let val = this[offset + --byteLength]\n  let mul = 1\n  while (byteLength > 0 && (mul *= 0x100)) {\n    val += this[offset + --byteLength] * mul\n  }\n\n  return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 1, this.length)\n  return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 4, this.length)\n\n  return ((this[offset]) |\n      (this[offset + 1] << 8) |\n      (this[offset + 2] << 16)) +\n      (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 4, this.length)\n\n  return (this[offset] * 0x1000000) +\n    ((this[offset + 1] << 16) |\n    (this[offset + 2] << 8) |\n    this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n  offset = offset >>> 0\n  validateNumber(offset, 'offset')\n  const first = this[offset]\n  const last = this[offset + 7]\n  if (first === undefined || last === undefined) {\n    boundsError(offset, this.length - 8)\n  }\n\n  const lo = first +\n    this[++offset] * 2 ** 8 +\n    this[++offset] * 2 ** 16 +\n    this[++offset] * 2 ** 24\n\n  const hi = this[++offset] +\n    this[++offset] * 2 ** 8 +\n    this[++offset] * 2 ** 16 +\n    last * 2 ** 24\n\n  return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n  offset = offset >>> 0\n  validateNumber(offset, 'offset')\n  const first = this[offset]\n  const last = this[offset + 7]\n  if (first === undefined || last === undefined) {\n    boundsError(offset, this.length - 8)\n  }\n\n  const hi = first * 2 ** 24 +\n    this[++offset] * 2 ** 16 +\n    this[++offset] * 2 ** 8 +\n    this[++offset]\n\n  const lo = this[++offset] * 2 ** 24 +\n    this[++offset] * 2 ** 16 +\n    this[++offset] * 2 ** 8 +\n    last\n\n  return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n  offset = offset >>> 0\n  byteLength = byteLength >>> 0\n  if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n  let val = this[offset]\n  let mul = 1\n  let i = 0\n  while (++i < byteLength && (mul *= 0x100)) {\n    val += this[offset + i] * mul\n  }\n  mul *= 0x80\n\n  if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n  return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n  offset = offset >>> 0\n  byteLength = byteLength >>> 0\n  if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n  let i = byteLength\n  let mul = 1\n  let val = this[offset + --i]\n  while (i > 0 && (mul *= 0x100)) {\n    val += this[offset + --i] * mul\n  }\n  mul *= 0x80\n\n  if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n  return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 1, this.length)\n  if (!(this[offset] & 0x80)) return (this[offset])\n  return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  const val = this[offset] | (this[offset + 1] << 8)\n  return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  const val = this[offset + 1] | (this[offset] << 8)\n  return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 4, this.length)\n\n  return (this[offset]) |\n    (this[offset + 1] << 8) |\n    (this[offset + 2] << 16) |\n    (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 4, this.length)\n\n  return (this[offset] << 24) |\n    (this[offset + 1] << 16) |\n    (this[offset + 2] << 8) |\n    (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n  offset = offset >>> 0\n  validateNumber(offset, 'offset')\n  const first = this[offset]\n  const last = this[offset + 7]\n  if (first === undefined || last === undefined) {\n    boundsError(offset, this.length - 8)\n  }\n\n  const val = this[offset + 4] +\n    this[offset + 5] * 2 ** 8 +\n    this[offset + 6] * 2 ** 16 +\n    (last << 24) // Overflow\n\n  return (BigInt(val) << BigInt(32)) +\n    BigInt(first +\n    this[++offset] * 2 ** 8 +\n    this[++offset] * 2 ** 16 +\n    this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n  offset = offset >>> 0\n  validateNumber(offset, 'offset')\n  const first = this[offset]\n  const last = this[offset + 7]\n  if (first === undefined || last === undefined) {\n    boundsError(offset, this.length - 8)\n  }\n\n  const val = (first << 24) + // Overflow\n    this[++offset] * 2 ** 16 +\n    this[++offset] * 2 ** 8 +\n    this[++offset]\n\n  return (BigInt(val) << BigInt(32)) +\n    BigInt(this[++offset] * 2 ** 24 +\n    this[++offset] * 2 ** 16 +\n    this[++offset] * 2 ** 8 +\n    last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 4, this.length)\n  return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 4, this.length)\n  return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 8, this.length)\n  return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 8, this.length)\n  return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n  if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n  if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n  if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  byteLength = byteLength >>> 0\n  if (!noAssert) {\n    const maxBytes = Math.pow(2, 8 * byteLength) - 1\n    checkInt(this, value, offset, byteLength, maxBytes, 0)\n  }\n\n  let mul = 1\n  let i = 0\n  this[offset] = value & 0xFF\n  while (++i < byteLength && (mul *= 0x100)) {\n    this[offset + i] = (value / mul) & 0xFF\n  }\n\n  return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  byteLength = byteLength >>> 0\n  if (!noAssert) {\n    const maxBytes = Math.pow(2, 8 * byteLength) - 1\n    checkInt(this, value, offset, byteLength, maxBytes, 0)\n  }\n\n  let i = byteLength - 1\n  let mul = 1\n  this[offset + i] = value & 0xFF\n  while (--i >= 0 && (mul *= 0x100)) {\n    this[offset + i] = (value / mul) & 0xFF\n  }\n\n  return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n  this[offset] = (value & 0xff)\n  return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n  this[offset] = (value & 0xff)\n  this[offset + 1] = (value >>> 8)\n  return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n  this[offset] = (value >>> 8)\n  this[offset + 1] = (value & 0xff)\n  return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n  this[offset + 3] = (value >>> 24)\n  this[offset + 2] = (value >>> 16)\n  this[offset + 1] = (value >>> 8)\n  this[offset] = (value & 0xff)\n  return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n  this[offset] = (value >>> 24)\n  this[offset + 1] = (value >>> 16)\n  this[offset + 2] = (value >>> 8)\n  this[offset + 3] = (value & 0xff)\n  return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n  checkIntBI(value, min, max, buf, offset, 7)\n\n  let lo = Number(value & BigInt(0xffffffff))\n  buf[offset++] = lo\n  lo = lo >> 8\n  buf[offset++] = lo\n  lo = lo >> 8\n  buf[offset++] = lo\n  lo = lo >> 8\n  buf[offset++] = lo\n  let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n  buf[offset++] = hi\n  hi = hi >> 8\n  buf[offset++] = hi\n  hi = hi >> 8\n  buf[offset++] = hi\n  hi = hi >> 8\n  buf[offset++] = hi\n  return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n  checkIntBI(value, min, max, buf, offset, 7)\n\n  let lo = Number(value & BigInt(0xffffffff))\n  buf[offset + 7] = lo\n  lo = lo >> 8\n  buf[offset + 6] = lo\n  lo = lo >> 8\n  buf[offset + 5] = lo\n  lo = lo >> 8\n  buf[offset + 4] = lo\n  let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n  buf[offset + 3] = hi\n  hi = hi >> 8\n  buf[offset + 2] = hi\n  hi = hi >> 8\n  buf[offset + 1] = hi\n  hi = hi >> 8\n  buf[offset] = hi\n  return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n  return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n  return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) {\n    const limit = Math.pow(2, (8 * byteLength) - 1)\n\n    checkInt(this, value, offset, byteLength, limit - 1, -limit)\n  }\n\n  let i = 0\n  let mul = 1\n  let sub = 0\n  this[offset] = value & 0xFF\n  while (++i < byteLength && (mul *= 0x100)) {\n    if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n      sub = 1\n    }\n    this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n  }\n\n  return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) {\n    const limit = Math.pow(2, (8 * byteLength) - 1)\n\n    checkInt(this, value, offset, byteLength, limit - 1, -limit)\n  }\n\n  let i = byteLength - 1\n  let mul = 1\n  let sub = 0\n  this[offset + i] = value & 0xFF\n  while (--i >= 0 && (mul *= 0x100)) {\n    if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n      sub = 1\n    }\n    this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n  }\n\n  return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n  if (value < 0) value = 0xff + value + 1\n  this[offset] = (value & 0xff)\n  return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n  this[offset] = (value & 0xff)\n  this[offset + 1] = (value >>> 8)\n  return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n  this[offset] = (value >>> 8)\n  this[offset + 1] = (value & 0xff)\n  return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n  this[offset] = (value & 0xff)\n  this[offset + 1] = (value >>> 8)\n  this[offset + 2] = (value >>> 16)\n  this[offset + 3] = (value >>> 24)\n  return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n  if (value < 0) value = 0xffffffff + value + 1\n  this[offset] = (value >>> 24)\n  this[offset + 1] = (value >>> 16)\n  this[offset + 2] = (value >>> 8)\n  this[offset + 3] = (value & 0xff)\n  return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n  return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n  return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n  if (offset + ext > buf.length) throw new RangeError('Index out of range')\n  if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) {\n    checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n  }\n  ieee754.write(buf, value, offset, littleEndian, 23, 4)\n  return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n  return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n  return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) {\n    checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n  }\n  ieee754.write(buf, value, offset, littleEndian, 52, 8)\n  return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n  return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n  return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n  if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n  if (!start) start = 0\n  if (!end && end !== 0) end = this.length\n  if (targetStart >= target.length) targetStart = target.length\n  if (!targetStart) targetStart = 0\n  if (end > 0 && end < start) end = start\n\n  // Copy 0 bytes; we're done\n  if (end === start) return 0\n  if (target.length === 0 || this.length === 0) return 0\n\n  // Fatal error conditions\n  if (targetStart < 0) {\n    throw new RangeError('targetStart out of bounds')\n  }\n  if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n  if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n  // Are we oob?\n  if (end > this.length) end = this.length\n  if (target.length - targetStart < end - start) {\n    end = target.length - targetStart + start\n  }\n\n  const len = end - start\n\n  if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n    // Use built-in when available, missing from IE11\n    this.copyWithin(targetStart, start, end)\n  } else {\n    Uint8Array.prototype.set.call(\n      target,\n      this.subarray(start, end),\n      targetStart\n    )\n  }\n\n  return len\n}\n\n// Usage:\n//    buffer.fill(number[, offset[, end]])\n//    buffer.fill(buffer[, offset[, end]])\n//    buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n  // Handle string cases:\n  if (typeof val === 'string') {\n    if (typeof start === 'string') {\n      encoding = start\n      start = 0\n      end = this.length\n    } else if (typeof end === 'string') {\n      encoding = end\n      end = this.length\n    }\n    if (encoding !== undefined && typeof encoding !== 'string') {\n      throw new TypeError('encoding must be a string')\n    }\n    if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n      throw new TypeError('Unknown encoding: ' + encoding)\n    }\n    if (val.length === 1) {\n      const code = val.charCodeAt(0)\n      if ((encoding === 'utf8' && code < 128) ||\n          encoding === 'latin1') {\n        // Fast path: If `val` fits into a single byte, use that numeric value.\n        val = code\n      }\n    }\n  } else if (typeof val === 'number') {\n    val = val & 255\n  } else if (typeof val === 'boolean') {\n    val = Number(val)\n  }\n\n  // Invalid ranges are not set to a default, so can range check early.\n  if (start < 0 || this.length < start || this.length < end) {\n    throw new RangeError('Out of range index')\n  }\n\n  if (end <= start) {\n    return this\n  }\n\n  start = start >>> 0\n  end = end === undefined ? this.length : end >>> 0\n\n  if (!val) val = 0\n\n  let i\n  if (typeof val === 'number') {\n    for (i = start; i < end; ++i) {\n      this[i] = val\n    }\n  } else {\n    const bytes = Buffer.isBuffer(val)\n      ? val\n      : Buffer.from(val, encoding)\n    const len = bytes.length\n    if (len === 0) {\n      throw new TypeError('The value \"' + val +\n        '\" is invalid for argument \"value\"')\n    }\n    for (i = 0; i < end - start; ++i) {\n      this[i + start] = bytes[i % len]\n    }\n  }\n\n  return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n  errors[sym] = class NodeError extends Base {\n    constructor () {\n      super()\n\n      Object.defineProperty(this, 'message', {\n        value: getMessage.apply(this, arguments),\n        writable: true,\n        configurable: true\n      })\n\n      // Add the error code to the name to include it in the stack trace.\n      this.name = `${this.name} [${sym}]`\n      // Access the stack to generate the error message including the error code\n      // from the name.\n      this.stack // eslint-disable-line no-unused-expressions\n      // Reset the name to the actual name.\n      delete this.name\n    }\n\n    get code () {\n      return sym\n    }\n\n    set code (value) {\n      Object.defineProperty(this, 'code', {\n        configurable: true,\n        enumerable: true,\n        value,\n        writable: true\n      })\n    }\n\n    toString () {\n      return `${this.name} [${sym}]: ${this.message}`\n    }\n  }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n  function (name) {\n    if (name) {\n      return `${name} is outside of buffer bounds`\n    }\n\n    return 'Attempt to access memory outside buffer bounds'\n  }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n  function (name, actual) {\n    return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n  }, TypeError)\nE('ERR_OUT_OF_RANGE',\n  function (str, range, input) {\n    let msg = `The value of \"${str}\" is out of range.`\n    let received = input\n    if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n      received = addNumericalSeparator(String(input))\n    } else if (typeof input === 'bigint') {\n      received = String(input)\n      if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n        received = addNumericalSeparator(received)\n      }\n      received += 'n'\n    }\n    msg += ` It must be ${range}. Received ${received}`\n    return msg\n  }, RangeError)\n\nfunction addNumericalSeparator (val) {\n  let res = ''\n  let i = val.length\n  const start = val[0] === '-' ? 1 : 0\n  for (; i >= start + 4; i -= 3) {\n    res = `_${val.slice(i - 3, i)}${res}`\n  }\n  return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n  validateNumber(offset, 'offset')\n  if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n    boundsError(offset, buf.length - (byteLength + 1))\n  }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n  if (value > max || value < min) {\n    const n = typeof min === 'bigint' ? 'n' : ''\n    let range\n    if (byteLength > 3) {\n      if (min === 0 || min === BigInt(0)) {\n        range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n      } else {\n        range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n                `${(byteLength + 1) * 8 - 1}${n}`\n      }\n    } else {\n      range = `>= ${min}${n} and <= ${max}${n}`\n    }\n    throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n  }\n  checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n  if (typeof value !== 'number') {\n    throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n  }\n}\n\nfunction boundsError (value, length, type) {\n  if (Math.floor(value) !== value) {\n    validateNumber(value, type)\n    throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n  }\n\n  if (length < 0) {\n    throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n  }\n\n  throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n                                    `>= ${type ? 1 : 0} and <= ${length}`,\n                                    value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n  // Node takes equal signs as end of the Base64 encoding\n  str = str.split('=')[0]\n  // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n  str = str.trim().replace(INVALID_BASE64_RE, '')\n  // Node converts strings with length < 2 to ''\n  if (str.length < 2) return ''\n  // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n  while (str.length % 4 !== 0) {\n    str = str + '='\n  }\n  return str\n}\n\nfunction utf8ToBytes (string, units) {\n  units = units || Infinity\n  let codePoint\n  const length = string.length\n  let leadSurrogate = null\n  const bytes = []\n\n  for (let i = 0; i < length; ++i) {\n    codePoint = string.charCodeAt(i)\n\n    // is surrogate component\n    if (codePoint > 0xD7FF && codePoint < 0xE000) {\n      // last char was a lead\n      if (!leadSurrogate) {\n        // no lead yet\n        if (codePoint > 0xDBFF) {\n          // unexpected trail\n          if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n          continue\n        } else if (i + 1 === length) {\n          // unpaired lead\n          if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n          continue\n        }\n\n        // valid lead\n        leadSurrogate = codePoint\n\n        continue\n      }\n\n      // 2 leads in a row\n      if (codePoint < 0xDC00) {\n        if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n        leadSurrogate = codePoint\n        continue\n      }\n\n      // valid surrogate pair\n      codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n    } else if (leadSurrogate) {\n      // valid bmp char, but last char was a lead\n      if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n    }\n\n    leadSurrogate = null\n\n    // encode utf8\n    if (codePoint < 0x80) {\n      if ((units -= 1) < 0) break\n      bytes.push(codePoint)\n    } else if (codePoint < 0x800) {\n      if ((units -= 2) < 0) break\n      bytes.push(\n        codePoint >> 0x6 | 0xC0,\n        codePoint & 0x3F | 0x80\n      )\n    } else if (codePoint < 0x10000) {\n      if ((units -= 3) < 0) break\n      bytes.push(\n        codePoint >> 0xC | 0xE0,\n        codePoint >> 0x6 & 0x3F | 0x80,\n        codePoint & 0x3F | 0x80\n      )\n    } else if (codePoint < 0x110000) {\n      if ((units -= 4) < 0) break\n      bytes.push(\n        codePoint >> 0x12 | 0xF0,\n        codePoint >> 0xC & 0x3F | 0x80,\n        codePoint >> 0x6 & 0x3F | 0x80,\n        codePoint & 0x3F | 0x80\n      )\n    } else {\n      throw new Error('Invalid code point')\n    }\n  }\n\n  return bytes\n}\n\nfunction asciiToBytes (str) {\n  const byteArray = []\n  for (let i = 0; i < str.length; ++i) {\n    // Node's code seems to be doing this and not & 0x7F..\n    byteArray.push(str.charCodeAt(i) & 0xFF)\n  }\n  return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n  let c, hi, lo\n  const byteArray = []\n  for (let i = 0; i < str.length; ++i) {\n    if ((units -= 2) < 0) break\n\n    c = str.charCodeAt(i)\n    hi = c >> 8\n    lo = c % 256\n    byteArray.push(lo)\n    byteArray.push(hi)\n  }\n\n  return byteArray\n}\n\nfunction base64ToBytes (str) {\n  return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n  let i\n  for (i = 0; i < length; ++i) {\n    if ((i + offset >= dst.length) || (i >= src.length)) break\n    dst[i + offset] = src[i]\n  }\n  return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n  return obj instanceof type ||\n    (obj != null && obj.constructor != null && obj.constructor.name != null &&\n      obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n  // For IE11 support\n  return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n  const alphabet = '0123456789abcdef'\n  const table = new Array(256)\n  for (let i = 0; i < 16; ++i) {\n    const i16 = i * 16\n    for (let j = 0; j < 16; ++j) {\n      table[i16 + j] = alphabet[i] + alphabet[j]\n    }\n  }\n  return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n  return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n  throw new Error('BigInt not supported')\n}\n","'use strict';\n\nvar bind = require('function-bind');\n\nvar $apply = require('./functionApply');\nvar $call = require('./functionCall');\nvar $reflectApply = require('./reflectApply');\n\n/** @type {import('./actualApply')} */\nmodule.exports = $reflectApply || bind.call($call, $apply);\n","'use strict';\n\nvar bind = require('function-bind');\nvar $apply = require('./functionApply');\nvar actualApply = require('./actualApply');\n\n/** @type {import('./applyBind')} */\nmodule.exports = function applyBind() {\n\treturn actualApply(bind, $apply, arguments);\n};\n","'use strict';\n\n/** @type {import('./functionApply')} */\nmodule.exports = Function.prototype.apply;\n","'use strict';\n\n/** @type {import('./functionCall')} */\nmodule.exports = Function.prototype.call;\n","'use strict';\n\nvar bind = require('function-bind');\nvar $TypeError = require('es-errors/type');\n\nvar $call = require('./functionCall');\nvar $actualApply = require('./actualApply');\n\n/** @type {(args: [Function, thisArg?: unknown, ...args: unknown[]]) => Function} TODO FIXME, find a way to use import('.') */\nmodule.exports = function callBindBasic(args) {\n\tif (args.length < 1 || typeof args[0] !== 'function') {\n\t\tthrow new $TypeError('a function is required');\n\t}\n\treturn $actualApply(bind, $call, args);\n};\n","'use strict';\n\n/** @type {import('./reflectApply')} */\nmodule.exports = typeof Reflect !== 'undefined' && Reflect && Reflect.apply;\n","'use strict';\n\nvar setFunctionLength = require('set-function-length');\n\nvar $defineProperty = require('es-define-property');\n\nvar callBindBasic = require('call-bind-apply-helpers');\nvar applyBind = require('call-bind-apply-helpers/applyBind');\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = callBindBasic(arguments);\n\tvar adjustedLength = originalFunction.length - (arguments.length - 1);\n\treturn setFunctionLength(\n\t\tfunc,\n\t\t1 + (adjustedLength > 0 ? adjustedLength : 0),\n\t\ttrue\n\t);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBindBasic = require('call-bind-apply-helpers');\n\n/** @type {(thisArg: string, searchString: string, position?: number) => number} */\nvar $indexOf = callBindBasic([GetIntrinsic('%String.prototype.indexOf%')]);\n\n/** @type {import('.')} */\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\t/* eslint no-extra-parens: 0 */\n\n\tvar intrinsic = /** @type {(this: unknown, ...args: unknown[]) => unknown} */ (GetIntrinsic(name, !!allowMissing));\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBindBasic(/** @type {const} */ ([intrinsic]));\n\t}\n\treturn intrinsic;\n};\n","/* jshint esversion: 6 */\n/* jslint node: true */\n'use strict';\n\nmodule.exports = function serialize (object) {\n  if (typeof object === 'number' && isNaN(object)) {\n    throw new Error('NaN is not allowed');\n  }\n\n  if (typeof object === 'number' && !isFinite(object)) {\n    throw new Error('Infinity is not allowed');\n  }\n\n  if (object === null || typeof object !== 'object') {\n    return JSON.stringify(object);\n  }\n\n  if (object.toJSON instanceof Function) {\n    return serialize(object.toJSON());\n  }\n\n  if (Array.isArray(object)) {\n    const values = object.reduce((t, cv, ci) => {\n      const comma = ci === 0 ? '' : ',';\n      const value = cv === undefined || typeof cv === 'symbol' ? null : cv;\n      return `${t}${comma}${serialize(value)}`;\n    }, '');\n    return `[${values}]`;\n  }\n\n  const values = Object.keys(object).sort().reduce((t, cv) => {\n    if (object[cv] === undefined ||\n        typeof object[cv] === 'symbol') {\n      return t;\n    }\n    const comma = t.length === 0 ? '' : ',';\n    return `${t}${comma}${serialize(cv)}:${serialize(object[cv])}`;\n  }, '');\n  return `{${values}}`;\n};\n","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\n\nvar gopd = require('gopd');\n\n/** @type {import('.')} */\nmodule.exports = function defineDataProperty(\n\tobj,\n\tproperty,\n\tvalue\n) {\n\tif (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {\n\t\tthrow new $TypeError('`obj` must be an object or a function`');\n\t}\n\tif (typeof property !== 'string' && typeof property !== 'symbol') {\n\t\tthrow new $TypeError('`property` must be a string or a symbol`');\n\t}\n\tif (arguments.length > 3 && typeof arguments[3] !== 'boolean' && arguments[3] !== null) {\n\t\tthrow new $TypeError('`nonEnumerable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 4 && typeof arguments[4] !== 'boolean' && arguments[4] !== null) {\n\t\tthrow new $TypeError('`nonWritable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 5 && typeof arguments[5] !== 'boolean' && arguments[5] !== null) {\n\t\tthrow new $TypeError('`nonConfigurable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 6 && typeof arguments[6] !== 'boolean') {\n\t\tthrow new $TypeError('`loose`, if provided, must be a boolean');\n\t}\n\n\tvar nonEnumerable = arguments.length > 3 ? arguments[3] : null;\n\tvar nonWritable = arguments.length > 4 ? arguments[4] : null;\n\tvar nonConfigurable = arguments.length > 5 ? arguments[5] : null;\n\tvar loose = arguments.length > 6 ? arguments[6] : false;\n\n\t/* @type {false | TypedPropertyDescriptor<unknown>} */\n\tvar desc = !!gopd && gopd(obj, property);\n\n\tif ($defineProperty) {\n\t\t$defineProperty(obj, property, {\n\t\t\tconfigurable: nonConfigurable === null && desc ? desc.configurable : !nonConfigurable,\n\t\t\tenumerable: nonEnumerable === null && desc ? desc.enumerable : !nonEnumerable,\n\t\t\tvalue: value,\n\t\t\twritable: nonWritable === null && desc ? desc.writable : !nonWritable\n\t\t});\n\t} else if (loose || (!nonEnumerable && !nonWritable && !nonConfigurable)) {\n\t\t// must fall back to [[Set]], and was not explicitly asked to make non-enumerable, non-writable, or non-configurable\n\t\tobj[property] = value; // eslint-disable-line no-param-reassign\n\t} else {\n\t\tthrow new $SyntaxError('This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.');\n\t}\n};\n","'use strict';\n\nvar callBind = require('call-bind-apply-helpers');\nvar gOPD = require('gopd');\n\nvar hasProtoAccessor;\ntry {\n\t// eslint-disable-next-line no-extra-parens, no-proto\n\thasProtoAccessor = /** @type {{ __proto__?: typeof Array.prototype }} */ ([]).__proto__ === Array.prototype;\n} catch (e) {\n\tif (!e || typeof e !== 'object' || !('code' in e) || e.code !== 'ERR_PROTO_ACCESS') {\n\t\tthrow e;\n\t}\n}\n\n// eslint-disable-next-line no-extra-parens\nvar desc = !!hasProtoAccessor && gOPD && gOPD(Object.prototype, /** @type {keyof typeof Object.prototype} */ ('__proto__'));\n\nvar $Object = Object;\nvar $getPrototypeOf = $Object.getPrototypeOf;\n\n/** @type {import('./get')} */\nmodule.exports = desc && typeof desc.get === 'function'\n\t? callBind([desc.get])\n\t: typeof $getPrototypeOf === 'function'\n\t\t? /** @type {import('./get')} */ function getDunder(value) {\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\treturn $getPrototypeOf(value == null ? value : $Object(value));\n\t\t}\n\t\t: false;\n","'use strict';\n\n/** @type {import('.')} */\nvar $defineProperty = Object.defineProperty || false;\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = false;\n\t}\n}\n\nmodule.exports = $defineProperty;\n","'use strict';\n\n/** @type {import('./eval')} */\nmodule.exports = EvalError;\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Error;\n","'use strict';\n\n/** @type {import('./range')} */\nmodule.exports = RangeError;\n","'use strict';\n\n/** @type {import('./ref')} */\nmodule.exports = ReferenceError;\n","'use strict';\n\n/** @type {import('./syntax')} */\nmodule.exports = SyntaxError;\n","'use strict';\n\n/** @type {import('./type')} */\nmodule.exports = TypeError;\n","'use strict';\n\n/** @type {import('./uri')} */\nmodule.exports = URIError;\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Object;\n","var naiveFallback = function () {\n\tif (typeof self === \"object\" && self) return self;\n\tif (typeof window === \"object\" && window) return window;\n\tthrow new Error(\"Unable to resolve global `this`\");\n};\n\nmodule.exports = (function () {\n\tif (this) return this;\n\n\t// Unexpected strict mode (may happen if e.g. bundled into ESM module)\n\n\t// Fallback to standard globalThis if available\n\tif (typeof globalThis === \"object\" && globalThis) return globalThis;\n\n\t// Thanks @mathiasbynens -> https://mathiasbynens.be/notes/globalthis\n\t// In all ES5+ engines global object inherits from Object.prototype\n\t// (if you approached one that doesn't please report)\n\ttry {\n\t\tObject.defineProperty(Object.prototype, \"__global__\", {\n\t\t\tget: function () { return this; },\n\t\t\tconfigurable: true\n\t\t});\n\t} catch (error) {\n\t\t// Unfortunate case of updates to Object.prototype being restricted\n\t\t// via preventExtensions, seal or freeze\n\t\treturn naiveFallback();\n\t}\n\ttry {\n\t\t// Safari case (window.__global__ works, but __global__ does not)\n\t\tif (!__global__) return naiveFallback();\n\t\treturn __global__;\n\t} finally {\n\t\tdelete Object.prototype.__global__;\n\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","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n  ? R.apply\n  : function ReflectApply(target, receiver, args) {\n    return Function.prototype.apply.call(target, receiver, args);\n  }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n  ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n  ReflectOwnKeys = function ReflectOwnKeys(target) {\n    return Object.getOwnPropertyNames(target)\n      .concat(Object.getOwnPropertySymbols(target));\n  };\n} else {\n  ReflectOwnKeys = function ReflectOwnKeys(target) {\n    return Object.getOwnPropertyNames(target);\n  };\n}\n\nfunction ProcessEmitWarning(warning) {\n  if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n  return value !== value;\n}\n\nfunction EventEmitter() {\n  EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n  if (typeof listener !== 'function') {\n    throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n  }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n  enumerable: true,\n  get: function() {\n    return defaultMaxListeners;\n  },\n  set: function(arg) {\n    if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n      throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n    }\n    defaultMaxListeners = arg;\n  }\n});\n\nEventEmitter.init = function() {\n\n  if (this._events === undefined ||\n      this._events === Object.getPrototypeOf(this)._events) {\n    this._events = Object.create(null);\n    this._eventsCount = 0;\n  }\n\n  this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n  if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n    throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n  }\n  this._maxListeners = n;\n  return this;\n};\n\nfunction _getMaxListeners(that) {\n  if (that._maxListeners === undefined)\n    return EventEmitter.defaultMaxListeners;\n  return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n  return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n  var args = [];\n  for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n  var doError = (type === 'error');\n\n  var events = this._events;\n  if (events !== undefined)\n    doError = (doError && events.error === undefined);\n  else if (!doError)\n    return false;\n\n  // If there is no 'error' event listener then throw.\n  if (doError) {\n    var er;\n    if (args.length > 0)\n      er = args[0];\n    if (er instanceof Error) {\n      // Note: The comments on the `throw` lines are intentional, they show\n      // up in Node's output if this results in an unhandled exception.\n      throw er; // Unhandled 'error' event\n    }\n    // At least give some kind of context to the user\n    var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n    err.context = er;\n    throw err; // Unhandled 'error' event\n  }\n\n  var handler = events[type];\n\n  if (handler === undefined)\n    return false;\n\n  if (typeof handler === 'function') {\n    ReflectApply(handler, this, args);\n  } else {\n    var len = handler.length;\n    var listeners = arrayClone(handler, len);\n    for (var i = 0; i < len; ++i)\n      ReflectApply(listeners[i], this, args);\n  }\n\n  return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n  var m;\n  var events;\n  var existing;\n\n  checkListener(listener);\n\n  events = target._events;\n  if (events === undefined) {\n    events = target._events = Object.create(null);\n    target._eventsCount = 0;\n  } else {\n    // To avoid recursion in the case that type === \"newListener\"! Before\n    // adding it to the listeners, first emit \"newListener\".\n    if (events.newListener !== undefined) {\n      target.emit('newListener', type,\n                  listener.listener ? listener.listener : listener);\n\n      // Re-assign `events` because a newListener handler could have caused the\n      // this._events to be assigned to a new object\n      events = target._events;\n    }\n    existing = events[type];\n  }\n\n  if (existing === undefined) {\n    // Optimize the case of one listener. Don't need the extra array object.\n    existing = events[type] = listener;\n    ++target._eventsCount;\n  } else {\n    if (typeof existing === 'function') {\n      // Adding the second element, need to change to array.\n      existing = events[type] =\n        prepend ? [listener, existing] : [existing, listener];\n      // If we've already got an array, just append.\n    } else if (prepend) {\n      existing.unshift(listener);\n    } else {\n      existing.push(listener);\n    }\n\n    // Check for listener leak\n    m = _getMaxListeners(target);\n    if (m > 0 && existing.length > m && !existing.warned) {\n      existing.warned = true;\n      // No error code for this since it is a Warning\n      // eslint-disable-next-line no-restricted-syntax\n      var w = new Error('Possible EventEmitter memory leak detected. ' +\n                          existing.length + ' ' + String(type) + ' listeners ' +\n                          'added. Use emitter.setMaxListeners() to ' +\n                          'increase limit');\n      w.name = 'MaxListenersExceededWarning';\n      w.emitter = target;\n      w.type = type;\n      w.count = existing.length;\n      ProcessEmitWarning(w);\n    }\n  }\n\n  return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n  return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n    function prependListener(type, listener) {\n      return _addListener(this, type, listener, true);\n    };\n\nfunction onceWrapper() {\n  if (!this.fired) {\n    this.target.removeListener(this.type, this.wrapFn);\n    this.fired = true;\n    if (arguments.length === 0)\n      return this.listener.call(this.target);\n    return this.listener.apply(this.target, arguments);\n  }\n}\n\nfunction _onceWrap(target, type, listener) {\n  var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n  var wrapped = onceWrapper.bind(state);\n  wrapped.listener = listener;\n  state.wrapFn = wrapped;\n  return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n  checkListener(listener);\n  this.on(type, _onceWrap(this, type, listener));\n  return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n    function prependOnceListener(type, listener) {\n      checkListener(listener);\n      this.prependListener(type, _onceWrap(this, type, listener));\n      return this;\n    };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n    function removeListener(type, listener) {\n      var list, events, position, i, originalListener;\n\n      checkListener(listener);\n\n      events = this._events;\n      if (events === undefined)\n        return this;\n\n      list = events[type];\n      if (list === undefined)\n        return this;\n\n      if (list === listener || list.listener === listener) {\n        if (--this._eventsCount === 0)\n          this._events = Object.create(null);\n        else {\n          delete events[type];\n          if (events.removeListener)\n            this.emit('removeListener', type, list.listener || listener);\n        }\n      } else if (typeof list !== 'function') {\n        position = -1;\n\n        for (i = list.length - 1; i >= 0; i--) {\n          if (list[i] === listener || list[i].listener === listener) {\n            originalListener = list[i].listener;\n            position = i;\n            break;\n          }\n        }\n\n        if (position < 0)\n          return this;\n\n        if (position === 0)\n          list.shift();\n        else {\n          spliceOne(list, position);\n        }\n\n        if (list.length === 1)\n          events[type] = list[0];\n\n        if (events.removeListener !== undefined)\n          this.emit('removeListener', type, originalListener || listener);\n      }\n\n      return this;\n    };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n    function removeAllListeners(type) {\n      var listeners, events, i;\n\n      events = this._events;\n      if (events === undefined)\n        return this;\n\n      // not listening for removeListener, no need to emit\n      if (events.removeListener === undefined) {\n        if (arguments.length === 0) {\n          this._events = Object.create(null);\n          this._eventsCount = 0;\n        } else if (events[type] !== undefined) {\n          if (--this._eventsCount === 0)\n            this._events = Object.create(null);\n          else\n            delete events[type];\n        }\n        return this;\n      }\n\n      // emit removeListener for all listeners on all events\n      if (arguments.length === 0) {\n        var keys = Object.keys(events);\n        var key;\n        for (i = 0; i < keys.length; ++i) {\n          key = keys[i];\n          if (key === 'removeListener') continue;\n          this.removeAllListeners(key);\n        }\n        this.removeAllListeners('removeListener');\n        this._events = Object.create(null);\n        this._eventsCount = 0;\n        return this;\n      }\n\n      listeners = events[type];\n\n      if (typeof listeners === 'function') {\n        this.removeListener(type, listeners);\n      } else if (listeners !== undefined) {\n        // LIFO order\n        for (i = listeners.length - 1; i >= 0; i--) {\n          this.removeListener(type, listeners[i]);\n        }\n      }\n\n      return this;\n    };\n\nfunction _listeners(target, type, unwrap) {\n  var events = target._events;\n\n  if (events === undefined)\n    return [];\n\n  var evlistener = events[type];\n  if (evlistener === undefined)\n    return [];\n\n  if (typeof evlistener === 'function')\n    return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n  return unwrap ?\n    unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n  return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n  return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n  if (typeof emitter.listenerCount === 'function') {\n    return emitter.listenerCount(type);\n  } else {\n    return listenerCount.call(emitter, type);\n  }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n  var events = this._events;\n\n  if (events !== undefined) {\n    var evlistener = events[type];\n\n    if (typeof evlistener === 'function') {\n      return 1;\n    } else if (evlistener !== undefined) {\n      return evlistener.length;\n    }\n  }\n\n  return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n  return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n  var copy = new Array(n);\n  for (var i = 0; i < n; ++i)\n    copy[i] = arr[i];\n  return copy;\n}\n\nfunction spliceOne(list, index) {\n  for (; index + 1 < list.length; index++)\n    list[index] = list[index + 1];\n  list.pop();\n}\n\nfunction unwrapListeners(arr) {\n  var ret = new Array(arr.length);\n  for (var i = 0; i < ret.length; ++i) {\n    ret[i] = arr[i].listener || arr[i];\n  }\n  return ret;\n}\n\nfunction once(emitter, name) {\n  return new Promise(function (resolve, reject) {\n    function errorListener(err) {\n      emitter.removeListener(name, resolver);\n      reject(err);\n    }\n\n    function resolver() {\n      if (typeof emitter.removeListener === 'function') {\n        emitter.removeListener('error', errorListener);\n      }\n      resolve([].slice.call(arguments));\n    };\n\n    eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n    if (name !== 'error') {\n      addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n    }\n  });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n  if (typeof emitter.on === 'function') {\n    eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n  }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n  if (typeof emitter.on === 'function') {\n    if (flags.once) {\n      emitter.once(name, listener);\n    } else {\n      emitter.on(name, listener);\n    }\n  } else if (typeof emitter.addEventListener === 'function') {\n    // EventTarget does not have `error` event semantics like Node\n    // EventEmitters, we do not listen for `error` events here.\n    emitter.addEventListener(name, function wrapListener(arg) {\n      // IE does not have builtin `{ once: true }` support so we\n      // have to do it manually.\n      if (flags.once) {\n        emitter.removeEventListener(name, wrapListener);\n      }\n      listener(arg);\n    });\n  } else {\n    throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n  }\n}\n","'use strict';\n\nvar isCallable = require('is-callable');\n\nvar toStr = Object.prototype.toString;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/** @type {<This, A extends readonly unknown[]>(arr: A, iterator: (this: This | void, value: A[number], index: number, arr: A) => void, receiver: This | undefined) => void} */\nvar forEachArray = function forEachArray(array, iterator, receiver) {\n    for (var i = 0, len = array.length; i < len; i++) {\n        if (hasOwnProperty.call(array, i)) {\n            if (receiver == null) {\n                iterator(array[i], i, array);\n            } else {\n                iterator.call(receiver, array[i], i, array);\n            }\n        }\n    }\n};\n\n/** @type {<This, S extends string>(string: S, iterator: (this: This | void, value: S[number], index: number, string: S) => void, receiver: This | undefined) => void} */\nvar forEachString = function forEachString(string, iterator, receiver) {\n    for (var i = 0, len = string.length; i < len; i++) {\n        // no such thing as a sparse string.\n        if (receiver == null) {\n            iterator(string.charAt(i), i, string);\n        } else {\n            iterator.call(receiver, string.charAt(i), i, string);\n        }\n    }\n};\n\n/** @type {<This, O>(obj: O, iterator: (this: This | void, value: O[keyof O], index: keyof O, obj: O) => void, receiver: This | undefined) => void} */\nvar forEachObject = function forEachObject(object, iterator, receiver) {\n    for (var k in object) {\n        if (hasOwnProperty.call(object, k)) {\n            if (receiver == null) {\n                iterator(object[k], k, object);\n            } else {\n                iterator.call(receiver, object[k], k, object);\n            }\n        }\n    }\n};\n\n/** @type {(x: unknown) => x is readonly unknown[]} */\nfunction isArray(x) {\n    return toStr.call(x) === '[object Array]';\n}\n\n/** @type {import('.')._internal} */\nmodule.exports = function forEach(list, iterator, thisArg) {\n    if (!isCallable(iterator)) {\n        throw new TypeError('iterator must be a function');\n    }\n\n    var receiver;\n    if (arguments.length >= 3) {\n        receiver = thisArg;\n    }\n\n    if (isArray(list)) {\n        forEachArray(list, iterator, receiver);\n    } else if (typeof list === 'string') {\n        forEachString(list, iterator, receiver);\n    } else {\n        forEachObject(list, iterator, receiver);\n    }\n};\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar toStr = Object.prototype.toString;\nvar max = Math.max;\nvar funcType = '[object Function]';\n\nvar concatty = function concatty(a, b) {\n    var arr = [];\n\n    for (var i = 0; i < a.length; i += 1) {\n        arr[i] = a[i];\n    }\n    for (var j = 0; j < b.length; j += 1) {\n        arr[j + a.length] = b[j];\n    }\n\n    return arr;\n};\n\nvar slicy = function slicy(arrLike, offset) {\n    var arr = [];\n    for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) {\n        arr[j] = arrLike[i];\n    }\n    return arr;\n};\n\nvar joiny = function (arr, joiner) {\n    var str = '';\n    for (var i = 0; i < arr.length; i += 1) {\n        str += arr[i];\n        if (i + 1 < arr.length) {\n            str += joiner;\n        }\n    }\n    return str;\n};\n\nmodule.exports = function bind(that) {\n    var target = this;\n    if (typeof target !== 'function' || toStr.apply(target) !== funcType) {\n        throw new TypeError(ERROR_MESSAGE + target);\n    }\n    var args = slicy(arguments, 1);\n\n    var bound;\n    var binder = function () {\n        if (this instanceof bound) {\n            var result = target.apply(\n                this,\n                concatty(args, arguments)\n            );\n            if (Object(result) === result) {\n                return result;\n            }\n            return this;\n        }\n        return target.apply(\n            that,\n            concatty(args, arguments)\n        );\n\n    };\n\n    var boundLength = max(0, target.length - args.length);\n    var boundArgs = [];\n    for (var i = 0; i < boundLength; i++) {\n        boundArgs[i] = '$' + i;\n    }\n\n    bound = Function('binder', 'return function (' + joiny(boundArgs, ',') + '){ return binder.apply(this,arguments); }')(binder);\n\n    if (target.prototype) {\n        var Empty = function Empty() {};\n        Empty.prototype = target.prototype;\n        bound.prototype = new Empty();\n        Empty.prototype = null;\n    }\n\n    return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\nvar undefined;\n\nvar $Object = require('es-object-atoms');\n\nvar $Error = require('es-errors');\nvar $EvalError = require('es-errors/eval');\nvar $RangeError = require('es-errors/range');\nvar $ReferenceError = require('es-errors/ref');\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\nvar $URIError = require('es-errors/uri');\n\nvar abs = require('math-intrinsics/abs');\nvar floor = require('math-intrinsics/floor');\nvar max = require('math-intrinsics/max');\nvar min = require('math-intrinsics/min');\nvar pow = require('math-intrinsics/pow');\nvar round = require('math-intrinsics/round');\nvar sign = require('math-intrinsics/sign');\n\nvar $Function = Function;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = require('gopd');\nvar $defineProperty = require('es-define-property');\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = require('get-proto');\nvar $ObjectGPO = require('get-proto/Object.getPrototypeOf');\nvar $ReflectGPO = require('get-proto/Reflect.getPrototypeOf');\n\nvar $apply = require('call-bind-apply-helpers/functionApply');\nvar $call = require('call-bind-apply-helpers/functionCall');\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t__proto__: null,\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array,\n\t'%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': $Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': $EvalError,\n\t'%Float16Array%': typeof Float16Array === 'undefined' ? undefined : Float16Array,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': $Object,\n\t'%Object.getOwnPropertyDescriptor%': $gOPD,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': $RangeError,\n\t'%ReferenceError%': $ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': $URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet,\n\n\t'%Function.prototype.call%': $call,\n\t'%Function.prototype.apply%': $apply,\n\t'%Object.defineProperty%': $defineProperty,\n\t'%Object.getPrototypeOf%': $ObjectGPO,\n\t'%Math.abs%': abs,\n\t'%Math.floor%': floor,\n\t'%Math.max%': max,\n\t'%Math.min%': min,\n\t'%Math.pow%': pow,\n\t'%Math.round%': round,\n\t'%Math.sign%': sign,\n\t'%Reflect.getPrototypeOf%': $ReflectGPO\n};\n\nif (getProto) {\n\ttry {\n\t\tnull.error; // eslint-disable-line no-unused-expressions\n\t} catch (e) {\n\t\t// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229\n\t\tvar errorProto = getProto(getProto(e));\n\t\tINTRINSICS['%Error.prototype%'] = errorProto;\n\t}\n}\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen && getProto) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t__proto__: null,\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('hasown');\nvar $concat = bind.call($call, Array.prototype.concat);\nvar $spliceApply = bind.call($apply, Array.prototype.splice);\nvar $replace = bind.call($call, String.prototype.replace);\nvar $strSlice = bind.call($call, String.prototype.slice);\nvar $exec = bind.call($call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar $Object = require('es-object-atoms');\n\n/** @type {import('./Object.getPrototypeOf')} */\nmodule.exports = $Object.getPrototypeOf || null;\n","'use strict';\n\n/** @type {import('./Reflect.getPrototypeOf')} */\nmodule.exports = (typeof Reflect !== 'undefined' && Reflect.getPrototypeOf) || null;\n","'use strict';\n\nvar reflectGetProto = require('./Reflect.getPrototypeOf');\nvar originalGetProto = require('./Object.getPrototypeOf');\n\nvar getDunderProto = require('dunder-proto/get');\n\n/** @type {import('.')} */\nmodule.exports = reflectGetProto\n\t? function getProto(O) {\n\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\treturn reflectGetProto(O);\n\t}\n\t: originalGetProto\n\t\t? function getProto(O) {\n\t\t\tif (!O || (typeof O !== 'object' && typeof O !== 'function')) {\n\t\t\t\tthrow new TypeError('getProto: not an object');\n\t\t\t}\n\t\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\t\treturn originalGetProto(O);\n\t\t}\n\t\t: getDunderProto\n\t\t\t? function getProto(O) {\n\t\t\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\t\t\treturn getDunderProto(O);\n\t\t\t}\n\t\t\t: null;\n","'use strict';\n\n/** @type {import('./gOPD')} */\nmodule.exports = Object.getOwnPropertyDescriptor;\n","'use strict';\n\n/** @type {import('.')} */\nvar $gOPD = require('./gOPD');\n\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\treturn !!$defineProperty;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n\t// node v0.6 has a bug where array lengths can be Set but not Defined\n\tif (!$defineProperty) {\n\t\treturn null;\n\t}\n\ttry {\n\t\treturn $defineProperty([], 'length', { value: 1 }).length !== 1;\n\t} catch (e) {\n\t\t// In Firefox 4-22, defining length on an array throws an exception.\n\t\treturn true;\n\t}\n};\n\nmodule.exports = hasPropertyDescriptors;\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/** @type {import('./shams')} */\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\t/** @type {{ [k in symbol]?: unknown }} */\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (var _ in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\t// eslint-disable-next-line no-extra-parens\n\t\tvar descriptor = /** @type {PropertyDescriptor} */ (Object.getOwnPropertyDescriptor(obj, sym));\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n","'use strict';\n\nvar call = Function.prototype.call;\nvar $hasOwn = Object.prototype.hasOwnProperty;\nvar bind = require('function-bind');\n\n/** @type {import('.')} */\nmodule.exports = bind.call(call, $hasOwn);\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n  var e, m\n  var eLen = (nBytes * 8) - mLen - 1\n  var eMax = (1 << eLen) - 1\n  var eBias = eMax >> 1\n  var nBits = -7\n  var i = isLE ? (nBytes - 1) : 0\n  var d = isLE ? -1 : 1\n  var s = buffer[offset + i]\n\n  i += d\n\n  e = s & ((1 << (-nBits)) - 1)\n  s >>= (-nBits)\n  nBits += eLen\n  for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n  m = e & ((1 << (-nBits)) - 1)\n  e >>= (-nBits)\n  nBits += mLen\n  for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n  if (e === 0) {\n    e = 1 - eBias\n  } else if (e === eMax) {\n    return m ? NaN : ((s ? -1 : 1) * Infinity)\n  } else {\n    m = m + Math.pow(2, mLen)\n    e = e - eBias\n  }\n  return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n  var e, m, c\n  var eLen = (nBytes * 8) - mLen - 1\n  var eMax = (1 << eLen) - 1\n  var eBias = eMax >> 1\n  var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n  var i = isLE ? 0 : (nBytes - 1)\n  var d = isLE ? 1 : -1\n  var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n  value = Math.abs(value)\n\n  if (isNaN(value) || value === Infinity) {\n    m = isNaN(value) ? 1 : 0\n    e = eMax\n  } else {\n    e = Math.floor(Math.log(value) / Math.LN2)\n    if (value * (c = Math.pow(2, -e)) < 1) {\n      e--\n      c *= 2\n    }\n    if (e + eBias >= 1) {\n      value += rt / c\n    } else {\n      value += rt * Math.pow(2, 1 - eBias)\n    }\n    if (value * c >= 2) {\n      e++\n      c /= 2\n    }\n\n    if (e + eBias >= eMax) {\n      m = 0\n      e = eMax\n    } else if (e + eBias >= 1) {\n      m = ((value * c) - 1) * Math.pow(2, mLen)\n      e = e + eBias\n    } else {\n      m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n      e = 0\n    }\n  }\n\n  for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n  e = (e << mLen) | m\n  eLen += mLen\n  for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n  buffer[offset + i - d] |= s * 128\n}\n","if (typeof Object.create === 'function') {\n  // implementation from standard node.js 'util' module\n  module.exports = function inherits(ctor, superCtor) {\n    if (superCtor) {\n      ctor.super_ = superCtor\n      ctor.prototype = Object.create(superCtor.prototype, {\n        constructor: {\n          value: ctor,\n          enumerable: false,\n          writable: true,\n          configurable: true\n        }\n      })\n    }\n  };\n} else {\n  // old school shim for old browsers\n  module.exports = function inherits(ctor, superCtor) {\n    if (superCtor) {\n      ctor.super_ = superCtor\n      var TempCtor = function () {}\n      TempCtor.prototype = superCtor.prototype\n      ctor.prototype = new TempCtor()\n      ctor.prototype.constructor = ctor\n    }\n  }\n}\n","'use strict';\n\nvar fnToStr = Function.prototype.toString;\nvar reflectApply = typeof Reflect === 'object' && Reflect !== null && Reflect.apply;\nvar badArrayLike;\nvar isCallableMarker;\nif (typeof reflectApply === 'function' && typeof Object.defineProperty === 'function') {\n\ttry {\n\t\tbadArrayLike = Object.defineProperty({}, 'length', {\n\t\t\tget: function () {\n\t\t\t\tthrow isCallableMarker;\n\t\t\t}\n\t\t});\n\t\tisCallableMarker = {};\n\t\t// eslint-disable-next-line no-throw-literal\n\t\treflectApply(function () { throw 42; }, null, badArrayLike);\n\t} catch (_) {\n\t\tif (_ !== isCallableMarker) {\n\t\t\treflectApply = null;\n\t\t}\n\t}\n} else {\n\treflectApply = null;\n}\n\nvar constructorRegex = /^\\s*class\\b/;\nvar isES6ClassFn = function isES6ClassFunction(value) {\n\ttry {\n\t\tvar fnStr = fnToStr.call(value);\n\t\treturn constructorRegex.test(fnStr);\n\t} catch (e) {\n\t\treturn false; // not a function\n\t}\n};\n\nvar tryFunctionObject = function tryFunctionToStr(value) {\n\ttry {\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tfnToStr.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar objectClass = '[object Object]';\nvar fnClass = '[object Function]';\nvar genClass = '[object GeneratorFunction]';\nvar ddaClass = '[object HTMLAllCollection]'; // IE 11\nvar ddaClass2 = '[object HTML document.all class]';\nvar ddaClass3 = '[object HTMLCollection]'; // IE 9-10\nvar hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag; // better: use `has-tostringtag`\n\nvar isIE68 = !(0 in [,]); // eslint-disable-line no-sparse-arrays, comma-spacing\n\nvar isDDA = function isDocumentDotAll() { return false; };\nif (typeof document === 'object') {\n\t// Firefox 3 canonicalizes DDA to undefined when it's not accessed directly\n\tvar all = document.all;\n\tif (toStr.call(all) === toStr.call(document.all)) {\n\t\tisDDA = function isDocumentDotAll(value) {\n\t\t\t/* globals document: false */\n\t\t\t// in IE 6-8, typeof document.all is \"object\" and it's truthy\n\t\t\tif ((isIE68 || !value) && (typeof value === 'undefined' || typeof value === 'object')) {\n\t\t\t\ttry {\n\t\t\t\t\tvar str = toStr.call(value);\n\t\t\t\t\treturn (\n\t\t\t\t\t\tstr === ddaClass\n\t\t\t\t\t\t|| str === ddaClass2\n\t\t\t\t\t\t|| str === ddaClass3 // opera 12.16\n\t\t\t\t\t\t|| str === objectClass // IE 6-8\n\t\t\t\t\t) && value('') == null; // eslint-disable-line eqeqeq\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\t}\n}\n\nmodule.exports = reflectApply\n\t? function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\ttry {\n\t\t\treflectApply(value, null, badArrayLike);\n\t\t} catch (e) {\n\t\t\tif (e !== isCallableMarker) { return false; }\n\t\t}\n\t\treturn !isES6ClassFn(value) && tryFunctionObject(value);\n\t}\n\t: function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\tif (hasToStringTag) { return tryFunctionObject(value); }\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tvar strClass = toStr.call(value);\n\t\tif (strClass !== fnClass && strClass !== genClass && !(/^\\[object HTML/).test(strClass)) { return false; }\n\t\treturn tryFunctionObject(value);\n\t};\n","'use strict';\n\nvar whichTypedArray = require('which-typed-array');\n\n/** @type {import('.')} */\nmodule.exports = function isTypedArray(value) {\n\treturn !!whichTypedArray(value);\n};\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n  return toString.call(arr) == '[object Array]';\n};\n","var json_stringify = require('./lib/stringify.js').stringify;\nvar json_parse     = require('./lib/parse.js');\n\nmodule.exports = function(options) {\n    return  {\n        parse: json_parse(options),\n        stringify: json_stringify\n    }\n};\n//create the default method members with no options applied for backwards compatibility\nmodule.exports.parse = json_parse();\nmodule.exports.stringify = json_stringify;\n","var BigNumber = null;\n\n// regexpxs extracted from\n// (c) BSD-3-Clause\n// https://github.com/fastify/secure-json-parse/graphs/contributors and https://github.com/hapijs/bourne/graphs/contributors\n\nconst suspectProtoRx = /(?:_|\\\\u005[Ff])(?:_|\\\\u005[Ff])(?:p|\\\\u0070)(?:r|\\\\u0072)(?:o|\\\\u006[Ff])(?:t|\\\\u0074)(?:o|\\\\u006[Ff])(?:_|\\\\u005[Ff])(?:_|\\\\u005[Ff])/;\nconst suspectConstructorRx = /(?:c|\\\\u0063)(?:o|\\\\u006[Ff])(?:n|\\\\u006[Ee])(?:s|\\\\u0073)(?:t|\\\\u0074)(?:r|\\\\u0072)(?:u|\\\\u0075)(?:c|\\\\u0063)(?:t|\\\\u0074)(?:o|\\\\u006[Ff])(?:r|\\\\u0072)/;\n\n/*\n    json_parse.js\n    2012-06-20\n\n    Public Domain.\n\n    NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.\n\n    This file creates a json_parse function.\n    During create you can (optionally) specify some behavioural switches\n\n        require('json-bigint')(options)\n\n            The optional options parameter holds switches that drive certain\n            aspects of the parsing process:\n            * options.strict = true will warn about duplicate-key usage in the json.\n              The default (strict = false) will silently ignore those and overwrite\n              values for keys that are in duplicate use.\n\n    The resulting function follows this signature:\n        json_parse(text, reviver)\n            This method parses a JSON text to produce an object or array.\n            It can throw a SyntaxError exception.\n\n            The optional reviver parameter is a function that can filter and\n            transform the results. It receives each of the keys and values,\n            and its return value is used instead of the original value.\n            If it returns what it received, then the structure is not modified.\n            If it returns undefined then the member is deleted.\n\n            Example:\n\n            // Parse the text. Values that look like ISO date strings will\n            // be converted to Date objects.\n\n            myData = json_parse(text, function (key, value) {\n                var a;\n                if (typeof value === 'string') {\n                    a =\n/^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}(?:\\.\\d*)?)Z$/.exec(value);\n                    if (a) {\n                        return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4],\n                            +a[5], +a[6]));\n                    }\n                }\n                return value;\n            });\n\n    This is a reference implementation. You are free to copy, modify, or\n    redistribute.\n\n    This code should be minified before deployment.\n    See http://javascript.crockford.com/jsmin.html\n\n    USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO\n    NOT CONTROL.\n*/\n\n/*members \"\", \"\\\"\", \"\\/\", \"\\\\\", at, b, call, charAt, f, fromCharCode,\n    hasOwnProperty, message, n, name, prototype, push, r, t, text\n*/\n\nvar json_parse = function (options) {\n  'use strict';\n\n  // This is a function that can parse a JSON text, producing a JavaScript\n  // data structure. It is a simple, recursive descent parser. It does not use\n  // eval or regular expressions, so it can be used as a model for implementing\n  // a JSON parser in other languages.\n\n  // We are defining the function inside of another function to avoid creating\n  // global variables.\n\n  // Default options one can override by passing options to the parse()\n  var _options = {\n    strict: false, // not being strict means do not generate syntax errors for \"duplicate key\"\n    storeAsString: false, // toggles whether the values should be stored as BigNumber (default) or a string\n    alwaysParseAsBig: false, // toggles whether all numbers should be Big\n    useNativeBigInt: false, // toggles whether to use native BigInt instead of bignumber.js\n    protoAction: 'error',\n    constructorAction: 'error',\n  };\n\n  // If there are options, then use them to override the default _options\n  if (options !== undefined && options !== null) {\n    if (options.strict === true) {\n      _options.strict = true;\n    }\n    if (options.storeAsString === true) {\n      _options.storeAsString = true;\n    }\n    _options.alwaysParseAsBig =\n      options.alwaysParseAsBig === true ? options.alwaysParseAsBig : false;\n    _options.useNativeBigInt =\n      options.useNativeBigInt === true ? options.useNativeBigInt : false;\n\n    if (typeof options.constructorAction !== 'undefined') {\n      if (\n        options.constructorAction === 'error' ||\n        options.constructorAction === 'ignore' ||\n        options.constructorAction === 'preserve'\n      ) {\n        _options.constructorAction = options.constructorAction;\n      } else {\n        throw new Error(\n          `Incorrect value for constructorAction option, must be \"error\", \"ignore\" or undefined but passed ${options.constructorAction}`\n        );\n      }\n    }\n\n    if (typeof options.protoAction !== 'undefined') {\n      if (\n        options.protoAction === 'error' ||\n        options.protoAction === 'ignore' ||\n        options.protoAction === 'preserve'\n      ) {\n        _options.protoAction = options.protoAction;\n      } else {\n        throw new Error(\n          `Incorrect value for protoAction option, must be \"error\", \"ignore\" or undefined but passed ${options.protoAction}`\n        );\n      }\n    }\n  }\n\n  var at, // The index of the current character\n    ch, // The current character\n    escapee = {\n      '\"': '\"',\n      '\\\\': '\\\\',\n      '/': '/',\n      b: '\\b',\n      f: '\\f',\n      n: '\\n',\n      r: '\\r',\n      t: '\\t',\n    },\n    text,\n    error = function (m) {\n      // Call error when something is wrong.\n\n      throw {\n        name: 'SyntaxError',\n        message: m,\n        at: at,\n        text: text,\n      };\n    },\n    next = function (c) {\n      // If a c parameter is provided, verify that it matches the current character.\n\n      if (c && c !== ch) {\n        error(\"Expected '\" + c + \"' instead of '\" + ch + \"'\");\n      }\n\n      // Get the next character. When there are no more characters,\n      // return the empty string.\n\n      ch = text.charAt(at);\n      at += 1;\n      return ch;\n    },\n    number = function () {\n      // Parse a number value.\n\n      var number,\n        string = '';\n\n      if (ch === '-') {\n        string = '-';\n        next('-');\n      }\n      while (ch >= '0' && ch <= '9') {\n        string += ch;\n        next();\n      }\n      if (ch === '.') {\n        string += '.';\n        while (next() && ch >= '0' && ch <= '9') {\n          string += ch;\n        }\n      }\n      if (ch === 'e' || ch === 'E') {\n        string += ch;\n        next();\n        if (ch === '-' || ch === '+') {\n          string += ch;\n          next();\n        }\n        while (ch >= '0' && ch <= '9') {\n          string += ch;\n          next();\n        }\n      }\n      number = +string;\n      if (!isFinite(number)) {\n        error('Bad number');\n      } else {\n        if (BigNumber == null) BigNumber = require('bignumber.js');\n        //if (number > 9007199254740992 || number < -9007199254740992)\n        // Bignumber has stricter check: everything with length > 15 digits disallowed\n        if (string.length > 15)\n          return _options.storeAsString\n            ? string\n            : _options.useNativeBigInt\n            ? BigInt(string)\n            : new BigNumber(string);\n        else\n          return !_options.alwaysParseAsBig\n            ? number\n            : _options.useNativeBigInt\n            ? BigInt(number)\n            : new BigNumber(number);\n      }\n    },\n    string = function () {\n      // Parse a string value.\n\n      var hex,\n        i,\n        string = '',\n        uffff;\n\n      // When parsing for string values, we must look for \" and \\ characters.\n\n      if (ch === '\"') {\n        var startAt = at;\n        while (next()) {\n          if (ch === '\"') {\n            if (at - 1 > startAt) string += text.substring(startAt, at - 1);\n            next();\n            return string;\n          }\n          if (ch === '\\\\') {\n            if (at - 1 > startAt) string += text.substring(startAt, at - 1);\n            next();\n            if (ch === 'u') {\n              uffff = 0;\n              for (i = 0; i < 4; i += 1) {\n                hex = parseInt(next(), 16);\n                if (!isFinite(hex)) {\n                  break;\n                }\n                uffff = uffff * 16 + hex;\n              }\n              string += String.fromCharCode(uffff);\n            } else if (typeof escapee[ch] === 'string') {\n              string += escapee[ch];\n            } else {\n              break;\n            }\n            startAt = at;\n          }\n        }\n      }\n      error('Bad string');\n    },\n    white = function () {\n      // Skip whitespace.\n\n      while (ch && ch <= ' ') {\n        next();\n      }\n    },\n    word = function () {\n      // true, false, or null.\n\n      switch (ch) {\n        case 't':\n          next('t');\n          next('r');\n          next('u');\n          next('e');\n          return true;\n        case 'f':\n          next('f');\n          next('a');\n          next('l');\n          next('s');\n          next('e');\n          return false;\n        case 'n':\n          next('n');\n          next('u');\n          next('l');\n          next('l');\n          return null;\n      }\n      error(\"Unexpected '\" + ch + \"'\");\n    },\n    value, // Place holder for the value function.\n    array = function () {\n      // Parse an array value.\n\n      var array = [];\n\n      if (ch === '[') {\n        next('[');\n        white();\n        if (ch === ']') {\n          next(']');\n          return array; // empty array\n        }\n        while (ch) {\n          array.push(value());\n          white();\n          if (ch === ']') {\n            next(']');\n            return array;\n          }\n          next(',');\n          white();\n        }\n      }\n      error('Bad array');\n    },\n    object = function () {\n      // Parse an object value.\n\n      var key,\n        object = Object.create(null);\n\n      if (ch === '{') {\n        next('{');\n        white();\n        if (ch === '}') {\n          next('}');\n          return object; // empty object\n        }\n        while (ch) {\n          key = string();\n          white();\n          next(':');\n          if (\n            _options.strict === true &&\n            Object.hasOwnProperty.call(object, key)\n          ) {\n            error('Duplicate key \"' + key + '\"');\n          }\n\n          if (suspectProtoRx.test(key) === true) {\n            if (_options.protoAction === 'error') {\n              error('Object contains forbidden prototype property');\n            } else if (_options.protoAction === 'ignore') {\n              value();\n            } else {\n              object[key] = value();\n            }\n          } else if (suspectConstructorRx.test(key) === true) {\n            if (_options.constructorAction === 'error') {\n              error('Object contains forbidden constructor property');\n            } else if (_options.constructorAction === 'ignore') {\n              value();\n            } else {\n              object[key] = value();\n            }\n          } else {\n            object[key] = value();\n          }\n\n          white();\n          if (ch === '}') {\n            next('}');\n            return object;\n          }\n          next(',');\n          white();\n        }\n      }\n      error('Bad object');\n    };\n\n  value = function () {\n    // Parse a JSON value. It could be an object, an array, a string, a number,\n    // or a word.\n\n    white();\n    switch (ch) {\n      case '{':\n        return object();\n      case '[':\n        return array();\n      case '\"':\n        return string();\n      case '-':\n        return number();\n      default:\n        return ch >= '0' && ch <= '9' ? number() : word();\n    }\n  };\n\n  // Return the json_parse function. It will have access to all of the above\n  // functions and variables.\n\n  return function (source, reviver) {\n    var result;\n\n    text = source + '';\n    at = 0;\n    ch = ' ';\n    result = value();\n    white();\n    if (ch) {\n      error('Syntax error');\n    }\n\n    // If there is a reviver function, we recursively walk the new structure,\n    // passing each name/value pair to the reviver function for possible\n    // transformation, starting with a temporary root object that holds the result\n    // in an empty key. If there is not a reviver function, we simply return the\n    // result.\n\n    return typeof reviver === 'function'\n      ? (function walk(holder, key) {\n          var k,\n            v,\n            value = holder[key];\n          if (value && typeof value === 'object') {\n            Object.keys(value).forEach(function (k) {\n              v = walk(value, k);\n              if (v !== undefined) {\n                value[k] = v;\n              } else {\n                delete value[k];\n              }\n            });\n          }\n          return reviver.call(holder, key, value);\n        })({ '': result }, '')\n      : result;\n  };\n};\n\nmodule.exports = json_parse;\n","var BigNumber = require('bignumber.js');\n\n/*\n    json2.js\n    2013-05-26\n\n    Public Domain.\n\n    NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.\n\n    See http://www.JSON.org/js.html\n\n\n    This code should be minified before deployment.\n    See http://javascript.crockford.com/jsmin.html\n\n    USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO\n    NOT CONTROL.\n\n\n    This file creates a global JSON object containing two methods: stringify\n    and parse.\n\n        JSON.stringify(value, replacer, space)\n            value       any JavaScript value, usually an object or array.\n\n            replacer    an optional parameter that determines how object\n                        values are stringified for objects. It can be a\n                        function or an array of strings.\n\n            space       an optional parameter that specifies the indentation\n                        of nested structures. If it is omitted, the text will\n                        be packed without extra whitespace. If it is a number,\n                        it will specify the number of spaces to indent at each\n                        level. If it is a string (such as '\\t' or '&nbsp;'),\n                        it contains the characters used to indent at each level.\n\n            This method produces a JSON text from a JavaScript value.\n\n            When an object value is found, if the object contains a toJSON\n            method, its toJSON method will be called and the result will be\n            stringified. A toJSON method does not serialize: it returns the\n            value represented by the name/value pair that should be serialized,\n            or undefined if nothing should be serialized. The toJSON method\n            will be passed the key associated with the value, and this will be\n            bound to the value\n\n            For example, this would serialize Dates as ISO strings.\n\n                Date.prototype.toJSON = function (key) {\n                    function f(n) {\n                        // Format integers to have at least two digits.\n                        return n < 10 ? '0' + n : n;\n                    }\n\n                    return this.getUTCFullYear()   + '-' +\n                         f(this.getUTCMonth() + 1) + '-' +\n                         f(this.getUTCDate())      + 'T' +\n                         f(this.getUTCHours())     + ':' +\n                         f(this.getUTCMinutes())   + ':' +\n                         f(this.getUTCSeconds())   + 'Z';\n                };\n\n            You can provide an optional replacer method. It will be passed the\n            key and value of each member, with this bound to the containing\n            object. The value that is returned from your method will be\n            serialized. If your method returns undefined, then the member will\n            be excluded from the serialization.\n\n            If the replacer parameter is an array of strings, then it will be\n            used to select the members to be serialized. It filters the results\n            such that only members with keys listed in the replacer array are\n            stringified.\n\n            Values that do not have JSON representations, such as undefined or\n            functions, will not be serialized. Such values in objects will be\n            dropped; in arrays they will be replaced with null. You can use\n            a replacer function to replace those with JSON values.\n            JSON.stringify(undefined) returns undefined.\n\n            The optional space parameter produces a stringification of the\n            value that is filled with line breaks and indentation to make it\n            easier to read.\n\n            If the space parameter is a non-empty string, then that string will\n            be used for indentation. If the space parameter is a number, then\n            the indentation will be that many spaces.\n\n            Example:\n\n            text = JSON.stringify(['e', {pluribus: 'unum'}]);\n            // text is '[\"e\",{\"pluribus\":\"unum\"}]'\n\n\n            text = JSON.stringify(['e', {pluribus: 'unum'}], null, '\\t');\n            // text is '[\\n\\t\"e\",\\n\\t{\\n\\t\\t\"pluribus\": \"unum\"\\n\\t}\\n]'\n\n            text = JSON.stringify([new Date()], function (key, value) {\n                return this[key] instanceof Date ?\n                    'Date(' + this[key] + ')' : value;\n            });\n            // text is '[\"Date(---current time---)\"]'\n\n\n        JSON.parse(text, reviver)\n            This method parses a JSON text to produce an object or array.\n            It can throw a SyntaxError exception.\n\n            The optional reviver parameter is a function that can filter and\n            transform the results. It receives each of the keys and values,\n            and its return value is used instead of the original value.\n            If it returns what it received, then the structure is not modified.\n            If it returns undefined then the member is deleted.\n\n            Example:\n\n            // Parse the text. Values that look like ISO date strings will\n            // be converted to Date objects.\n\n            myData = JSON.parse(text, function (key, value) {\n                var a;\n                if (typeof value === 'string') {\n                    a =\n/^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}(?:\\.\\d*)?)Z$/.exec(value);\n                    if (a) {\n                        return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4],\n                            +a[5], +a[6]));\n                    }\n                }\n                return value;\n            });\n\n            myData = JSON.parse('[\"Date(09/09/2001)\"]', function (key, value) {\n                var d;\n                if (typeof value === 'string' &&\n                        value.slice(0, 5) === 'Date(' &&\n                        value.slice(-1) === ')') {\n                    d = new Date(value.slice(5, -1));\n                    if (d) {\n                        return d;\n                    }\n                }\n                return value;\n            });\n\n\n    This is a reference implementation. You are free to copy, modify, or\n    redistribute.\n*/\n\n/*jslint evil: true, regexp: true */\n\n/*members \"\", \"\\b\", \"\\t\", \"\\n\", \"\\f\", \"\\r\", \"\\\"\", JSON, \"\\\\\", apply,\n    call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours,\n    getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join,\n    lastIndex, length, parse, prototype, push, replace, slice, stringify,\n    test, toJSON, toString, valueOf\n*/\n\n\n// Create a JSON object only if one does not already exist. We create the\n// methods in a closure to avoid creating global variables.\n\nvar JSON = module.exports;\n\n(function () {\n    'use strict';\n\n    function f(n) {\n        // Format integers to have at least two digits.\n        return n < 10 ? '0' + n : n;\n    }\n\n    var cx = /[\\u0000\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g,\n        escapable = /[\\\\\\\"\\x00-\\x1f\\x7f-\\x9f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g,\n        gap,\n        indent,\n        meta = {    // table of character substitutions\n            '\\b': '\\\\b',\n            '\\t': '\\\\t',\n            '\\n': '\\\\n',\n            '\\f': '\\\\f',\n            '\\r': '\\\\r',\n            '\"' : '\\\\\"',\n            '\\\\': '\\\\\\\\'\n        },\n        rep;\n\n\n    function quote(string) {\n\n// If the string contains no control characters, no quote characters, and no\n// backslash characters, then we can safely slap some quotes around it.\n// Otherwise we must also replace the offending characters with safe escape\n// sequences.\n\n        escapable.lastIndex = 0;\n        return escapable.test(string) ? '\"' + string.replace(escapable, function (a) {\n            var c = meta[a];\n            return typeof c === 'string'\n                ? c\n                : '\\\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);\n        }) + '\"' : '\"' + string + '\"';\n    }\n\n\n    function str(key, holder) {\n\n// Produce a string from holder[key].\n\n        var i,          // The loop counter.\n            k,          // The member key.\n            v,          // The member value.\n            length,\n            mind = gap,\n            partial,\n            value = holder[key],\n            isBigNumber = value != null && (value instanceof BigNumber || BigNumber.isBigNumber(value));\n\n// If the value has a toJSON method, call it to obtain a replacement value.\n\n        if (value && typeof value === 'object' &&\n                typeof value.toJSON === 'function') {\n            value = value.toJSON(key);\n        }\n\n// If we were called with a replacer function, then call the replacer to\n// obtain a replacement value.\n\n        if (typeof rep === 'function') {\n            value = rep.call(holder, key, value);\n        }\n\n// What happens next depends on the value's type.\n\n        switch (typeof value) {\n        case 'string':\n            if (isBigNumber) {\n                return value;\n            } else {\n                return quote(value);\n            }\n\n        case 'number':\n\n// JSON numbers must be finite. Encode non-finite numbers as null.\n\n            return isFinite(value) ? String(value) : 'null';\n\n        case 'boolean':\n        case 'null':\n        case 'bigint':\n\n// If the value is a boolean or null, convert it to a string. Note:\n// typeof null does not produce 'null'. The case is included here in\n// the remote chance that this gets fixed someday.\n\n            return String(value);\n\n// If the type is 'object', we might be dealing with an object or an array or\n// null.\n\n        case 'object':\n\n// Due to a specification blunder in ECMAScript, typeof null is 'object',\n// so watch out for that case.\n\n            if (!value) {\n                return 'null';\n            }\n\n// Make an array to hold the partial results of stringifying this object value.\n\n            gap += indent;\n            partial = [];\n\n// Is the value an array?\n\n            if (Object.prototype.toString.apply(value) === '[object Array]') {\n\n// The value is an array. Stringify every element. Use null as a placeholder\n// for non-JSON values.\n\n                length = value.length;\n                for (i = 0; i < length; i += 1) {\n                    partial[i] = str(i, value) || 'null';\n                }\n\n// Join all of the elements together, separated with commas, and wrap them in\n// brackets.\n\n                v = partial.length === 0\n                    ? '[]'\n                    : gap\n                    ? '[\\n' + gap + partial.join(',\\n' + gap) + '\\n' + mind + ']'\n                    : '[' + partial.join(',') + ']';\n                gap = mind;\n                return v;\n            }\n\n// If the replacer is an array, use it to select the members to be stringified.\n\n            if (rep && typeof rep === 'object') {\n                length = rep.length;\n                for (i = 0; i < length; i += 1) {\n                    if (typeof rep[i] === 'string') {\n                        k = rep[i];\n                        v = str(k, value);\n                        if (v) {\n                            partial.push(quote(k) + (gap ? ': ' : ':') + v);\n                        }\n                    }\n                }\n            } else {\n\n// Otherwise, iterate through all of the keys in the object.\n\n                Object.keys(value).forEach(function(k) {\n                    var v = str(k, value);\n                    if (v) {\n                        partial.push(quote(k) + (gap ? ': ' : ':') + v);\n                    }\n                });\n            }\n\n// Join all of the member texts together, separated with commas,\n// and wrap them in braces.\n\n            v = partial.length === 0\n                ? '{}'\n                : gap\n                ? '{\\n' + gap + partial.join(',\\n' + gap) + '\\n' + mind + '}'\n                : '{' + partial.join(',') + '}';\n            gap = mind;\n            return v;\n        }\n    }\n\n// If the JSON object does not yet have a stringify method, give it one.\n\n    if (typeof JSON.stringify !== 'function') {\n        JSON.stringify = function (value, replacer, space) {\n\n// The stringify method takes a value and an optional replacer, and an optional\n// space parameter, and returns a JSON text. The replacer can be a function\n// that can replace values, or an array of strings that will select the keys.\n// A default replacer method can be provided. Use of the space parameter can\n// produce text that is more easily readable.\n\n            var i;\n            gap = '';\n            indent = '';\n\n// If the space parameter is a number, make an indent string containing that\n// many spaces.\n\n            if (typeof space === 'number') {\n                for (i = 0; i < space; i += 1) {\n                    indent += ' ';\n                }\n\n// If the space parameter is a string, it will be used as the indent string.\n\n            } else if (typeof space === 'string') {\n                indent = space;\n            }\n\n// If there is a replacer, it must be a function or an array.\n// Otherwise, throw an error.\n\n            rep = replacer;\n            if (replacer && typeof replacer !== 'function' &&\n                    (typeof replacer !== 'object' ||\n                    typeof replacer.length !== 'number')) {\n                throw new Error('JSON.stringify');\n            }\n\n// Make a fake root object containing our value under the key of ''.\n// Return the result of stringifying the value.\n\n            return str('', {'': value});\n        };\n    }\n}());\n","'use strict';\n\n/** @type {import('./abs')} */\nmodule.exports = Math.abs;\n","'use strict';\n\n/** @type {import('./floor')} */\nmodule.exports = Math.floor;\n","'use strict';\n\n/** @type {import('./isNaN')} */\nmodule.exports = Number.isNaN || function isNaN(a) {\n\treturn a !== a;\n};\n","'use strict';\n\n/** @type {import('./max')} */\nmodule.exports = Math.max;\n","'use strict';\n\n/** @type {import('./min')} */\nmodule.exports = Math.min;\n","'use strict';\n\n/** @type {import('./pow')} */\nmodule.exports = Math.pow;\n","'use strict';\n\n/** @type {import('./round')} */\nmodule.exports = Math.round;\n","'use strict';\n\nvar $isNaN = require('./isNaN');\n\n/** @type {import('./sign')} */\nmodule.exports = function sign(number) {\n\tif ($isNaN(number) || number === 0) {\n\t\treturn number;\n\t}\n\treturn number < 0 ? -1 : +1;\n};\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = [\n\t'Float16Array',\n\t'Float32Array',\n\t'Float64Array',\n\t'Int8Array',\n\t'Int16Array',\n\t'Int32Array',\n\t'Uint8Array',\n\t'Uint8ClampedArray',\n\t'Uint16Array',\n\t'Uint32Array',\n\t'BigInt64Array',\n\t'BigUint64Array'\n];\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things.  But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals.  It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n    throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n    throw new Error('clearTimeout has not been defined');\n}\n(function () {\n    try {\n        if (typeof setTimeout === 'function') {\n            cachedSetTimeout = setTimeout;\n        } else {\n            cachedSetTimeout = defaultSetTimout;\n        }\n    } catch (e) {\n        cachedSetTimeout = defaultSetTimout;\n    }\n    try {\n        if (typeof clearTimeout === 'function') {\n            cachedClearTimeout = clearTimeout;\n        } else {\n            cachedClearTimeout = defaultClearTimeout;\n        }\n    } catch (e) {\n        cachedClearTimeout = defaultClearTimeout;\n    }\n} ())\nfunction runTimeout(fun) {\n    if (cachedSetTimeout === setTimeout) {\n        //normal enviroments in sane situations\n        return setTimeout(fun, 0);\n    }\n    // if setTimeout wasn't available but was latter defined\n    if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n        cachedSetTimeout = setTimeout;\n        return setTimeout(fun, 0);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedSetTimeout(fun, 0);\n    } catch(e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n            return cachedSetTimeout.call(null, fun, 0);\n        } catch(e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n            return cachedSetTimeout.call(this, fun, 0);\n        }\n    }\n\n\n}\nfunction runClearTimeout(marker) {\n    if (cachedClearTimeout === clearTimeout) {\n        //normal enviroments in sane situations\n        return clearTimeout(marker);\n    }\n    // if clearTimeout wasn't available but was latter defined\n    if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n        cachedClearTimeout = clearTimeout;\n        return clearTimeout(marker);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedClearTimeout(marker);\n    } catch (e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally\n            return cachedClearTimeout.call(null, marker);\n        } catch (e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n            // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n            return cachedClearTimeout.call(this, marker);\n        }\n    }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n    if (!draining || !currentQueue) {\n        return;\n    }\n    draining = false;\n    if (currentQueue.length) {\n        queue = currentQueue.concat(queue);\n    } else {\n        queueIndex = -1;\n    }\n    if (queue.length) {\n        drainQueue();\n    }\n}\n\nfunction drainQueue() {\n    if (draining) {\n        return;\n    }\n    var timeout = runTimeout(cleanUpNextTick);\n    draining = true;\n\n    var len = queue.length;\n    while(len) {\n        currentQueue = queue;\n        queue = [];\n        while (++queueIndex < len) {\n            if (currentQueue) {\n                currentQueue[queueIndex].run();\n            }\n        }\n        queueIndex = -1;\n        len = queue.length;\n    }\n    currentQueue = null;\n    draining = false;\n    runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n    var args = new Array(arguments.length - 1);\n    if (arguments.length > 1) {\n        for (var i = 1; i < arguments.length; i++) {\n            args[i - 1] = arguments[i];\n        }\n    }\n    queue.push(new Item(fun, args));\n    if (queue.length === 1 && !draining) {\n        runTimeout(drainQueue);\n    }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n    this.fun = fun;\n    this.array = array;\n}\nItem.prototype.run = function () {\n    this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n    throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n    throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.utils = exports.decode = exports.encode = void 0;\n/**\n * RLP Encoding based on https://eth.wiki/en/fundamentals/rlp\n * This function takes in data, converts it to Uint8Array if not,\n * and adds a length for recursion.\n * @param input Will be converted to Uint8Array\n * @returns Uint8Array of encoded data\n **/\nfunction encode(input) {\n    if (Array.isArray(input)) {\n        const output = [];\n        for (let i = 0; i < input.length; i++) {\n            output.push(encode(input[i]));\n        }\n        const buf = concatBytes(...output);\n        return concatBytes(encodeLength(buf.length, 192), buf);\n    }\n    const inputBuf = toBytes(input);\n    if (inputBuf.length === 1 && inputBuf[0] < 128) {\n        return inputBuf;\n    }\n    return concatBytes(encodeLength(inputBuf.length, 128), inputBuf);\n}\nexports.encode = encode;\n/**\n * Slices a Uint8Array, throws if the slice goes out-of-bounds of the Uint8Array.\n * E.g. `safeSlice(hexToBytes('aa'), 1, 2)` will throw.\n * @param input\n * @param start\n * @param end\n */\nfunction safeSlice(input, start, end) {\n    if (end > input.length) {\n        throw new Error('invalid RLP (safeSlice): end slice of Uint8Array out-of-bounds');\n    }\n    return input.slice(start, end);\n}\n/**\n * Parse integers. Check if there is no leading zeros\n * @param v The value to parse\n */\nfunction decodeLength(v) {\n    if (v[0] === 0) {\n        throw new Error('invalid RLP: extra zeros');\n    }\n    return parseHexByte(bytesToHex(v));\n}\nfunction encodeLength(len, offset) {\n    if (len < 56) {\n        return Uint8Array.from([len + offset]);\n    }\n    const hexLength = numberToHex(len);\n    const lLength = hexLength.length / 2;\n    const firstByte = numberToHex(offset + 55 + lLength);\n    return Uint8Array.from(hexToBytes(firstByte + hexLength));\n}\nfunction decode(input, stream = false) {\n    if (!input || input.length === 0) {\n        return Uint8Array.from([]);\n    }\n    const inputBytes = toBytes(input);\n    const decoded = _decode(inputBytes);\n    if (stream) {\n        return decoded;\n    }\n    if (decoded.remainder.length !== 0) {\n        throw new Error('invalid RLP: remainder must be zero');\n    }\n    return decoded.data;\n}\nexports.decode = decode;\n/** Decode an input with RLP */\nfunction _decode(input) {\n    let length, llength, data, innerRemainder, d;\n    const decoded = [];\n    const firstByte = input[0];\n    if (firstByte <= 0x7f) {\n        // a single byte whose value is in the [0x00, 0x7f] range, that byte is its own RLP encoding.\n        return {\n            data: input.slice(0, 1),\n            remainder: input.slice(1),\n        };\n    }\n    else if (firstByte <= 0xb7) {\n        // string is 0-55 bytes long. A single byte with value 0x80 plus the length of the string followed by the string\n        // The range of the first byte is [0x80, 0xb7]\n        length = firstByte - 0x7f;\n        // set 0x80 null to 0\n        if (firstByte === 0x80) {\n            data = Uint8Array.from([]);\n        }\n        else {\n            data = safeSlice(input, 1, length);\n        }\n        if (length === 2 && data[0] < 0x80) {\n            throw new Error('invalid RLP encoding: invalid prefix, single byte < 0x80 are not prefixed');\n        }\n        return {\n            data: data,\n            remainder: input.slice(length),\n        };\n    }\n    else if (firstByte <= 0xbf) {\n        // string is greater than 55 bytes long. A single byte with the value (0xb7 plus the length of the length),\n        // followed by the length, followed by the string\n        llength = firstByte - 0xb6;\n        if (input.length - 1 < llength) {\n            throw new Error('invalid RLP: not enough bytes for string length');\n        }\n        length = decodeLength(safeSlice(input, 1, llength));\n        if (length <= 55) {\n            throw new Error('invalid RLP: expected string length to be greater than 55');\n        }\n        data = safeSlice(input, llength, length + llength);\n        return {\n            data: data,\n            remainder: input.slice(length + llength),\n        };\n    }\n    else if (firstByte <= 0xf7) {\n        // a list between 0-55 bytes long\n        length = firstByte - 0xbf;\n        innerRemainder = safeSlice(input, 1, length);\n        while (innerRemainder.length) {\n            d = _decode(innerRemainder);\n            decoded.push(d.data);\n            innerRemainder = d.remainder;\n        }\n        return {\n            data: decoded,\n            remainder: input.slice(length),\n        };\n    }\n    else {\n        // a list over 55 bytes long\n        llength = firstByte - 0xf6;\n        length = decodeLength(safeSlice(input, 1, llength));\n        if (length < 56) {\n            throw new Error('invalid RLP: encoded list too short');\n        }\n        const totalLength = llength + length;\n        if (totalLength > input.length) {\n            throw new Error('invalid RLP: total length is larger than the data');\n        }\n        innerRemainder = safeSlice(input, llength, totalLength);\n        while (innerRemainder.length) {\n            d = _decode(innerRemainder);\n            decoded.push(d.data);\n            innerRemainder = d.remainder;\n        }\n        return {\n            data: decoded,\n            remainder: input.slice(totalLength),\n        };\n    }\n}\nconst cachedHexes = Array.from({ length: 256 }, (_v, i) => i.toString(16).padStart(2, '0'));\nfunction bytesToHex(uint8a) {\n    // Pre-caching chars with `cachedHexes` speeds this up 6x\n    let hex = '';\n    for (let i = 0; i < uint8a.length; i++) {\n        hex += cachedHexes[uint8a[i]];\n    }\n    return hex;\n}\nfunction parseHexByte(hexByte) {\n    const byte = Number.parseInt(hexByte, 16);\n    if (Number.isNaN(byte))\n        throw new Error('Invalid byte sequence');\n    return byte;\n}\n// Caching slows it down 2-3x\nfunction hexToBytes(hex) {\n    if (typeof hex !== 'string') {\n        throw new TypeError('hexToBytes: expected string, got ' + typeof hex);\n    }\n    if (hex.length % 2)\n        throw new Error('hexToBytes: received invalid unpadded hex');\n    const array = new Uint8Array(hex.length / 2);\n    for (let i = 0; i < array.length; i++) {\n        const j = i * 2;\n        array[i] = parseHexByte(hex.slice(j, j + 2));\n    }\n    return array;\n}\n/** Concatenates two Uint8Arrays into one. */\nfunction concatBytes(...arrays) {\n    if (arrays.length === 1)\n        return arrays[0];\n    const length = arrays.reduce((a, arr) => a + arr.length, 0);\n    const result = new Uint8Array(length);\n    for (let i = 0, pad = 0; i < arrays.length; i++) {\n        const arr = arrays[i];\n        result.set(arr, pad);\n        pad += arr.length;\n    }\n    return result;\n}\nfunction utf8ToBytes(utf) {\n    return new TextEncoder().encode(utf);\n}\n/** Transform an integer into its hexadecimal value */\nfunction numberToHex(integer) {\n    if (integer < 0) {\n        throw new Error('Invalid integer as argument, must be unsigned!');\n    }\n    const hex = integer.toString(16);\n    return hex.length % 2 ? `0${hex}` : hex;\n}\n/** Pad a string to be even */\nfunction padToEven(a) {\n    return a.length % 2 ? `0${a}` : a;\n}\n/** Check if a string is prefixed by 0x */\nfunction isHexPrefixed(str) {\n    return str.length >= 2 && str[0] === '0' && str[1] === 'x';\n}\n/** Removes 0x from a given String */\nfunction stripHexPrefix(str) {\n    if (typeof str !== 'string') {\n        return str;\n    }\n    return isHexPrefixed(str) ? str.slice(2) : str;\n}\n/** Transform anything into a Uint8Array */\nfunction toBytes(v) {\n    if (v instanceof Uint8Array) {\n        return v;\n    }\n    if (typeof v === 'string') {\n        if (isHexPrefixed(v)) {\n            return hexToBytes(padToEven(stripHexPrefix(v)));\n        }\n        return utf8ToBytes(v);\n    }\n    if (typeof v === 'number' || typeof v === 'bigint') {\n        if (!v) {\n            return Uint8Array.from([]);\n        }\n        return hexToBytes(numberToHex(v));\n    }\n    if (v === null || v === undefined) {\n        return Uint8Array.from([]);\n    }\n    throw new Error('toBytes: received unsupported type ' + typeof v);\n}\nexports.utils = {\n    bytesToHex,\n    concatBytes,\n    hexToBytes,\n    utf8ToBytes,\n};\nconst RLP = { encode, decode };\nexports.default = RLP;\n//# sourceMappingURL=index.js.map","/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n  for (var key in src) {\n    dst[key] = src[key]\n  }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n  module.exports = buffer\n} else {\n  // Copy properties from require('buffer')\n  copyProps(buffer, exports)\n  exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n  return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n  if (typeof arg === 'number') {\n    throw new TypeError('Argument must not be a number')\n  }\n  return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n  if (typeof size !== 'number') {\n    throw new TypeError('Argument must be a number')\n  }\n  var buf = Buffer(size)\n  if (fill !== undefined) {\n    if (typeof encoding === 'string') {\n      buf.fill(fill, encoding)\n    } else {\n      buf.fill(fill)\n    }\n  } else {\n    buf.fill(0)\n  }\n  return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n  if (typeof size !== 'number') {\n    throw new TypeError('Argument must be a number')\n  }\n  return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n  if (typeof size !== 'number') {\n    throw new TypeError('Argument must be a number')\n  }\n  return buffer.SlowBuffer(size)\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar define = require('define-data-property');\nvar hasDescriptors = require('has-property-descriptors')();\nvar gOPD = require('gopd');\n\nvar $TypeError = require('es-errors/type');\nvar $floor = GetIntrinsic('%Math.floor%');\n\n/** @type {import('.')} */\nmodule.exports = function setFunctionLength(fn, length) {\n\tif (typeof fn !== 'function') {\n\t\tthrow new $TypeError('`fn` is not a function');\n\t}\n\tif (typeof length !== 'number' || length < 0 || length > 0xFFFFFFFF || $floor(length) !== length) {\n\t\tthrow new $TypeError('`length` must be a positive 32-bit integer');\n\t}\n\n\tvar loose = arguments.length > 2 && !!arguments[2];\n\n\tvar functionLengthIsConfigurable = true;\n\tvar functionLengthIsWritable = true;\n\tif ('length' in fn && gOPD) {\n\t\tvar desc = gOPD(fn, 'length');\n\t\tif (desc && !desc.configurable) {\n\t\t\tfunctionLengthIsConfigurable = false;\n\t\t}\n\t\tif (desc && !desc.writable) {\n\t\t\tfunctionLengthIsWritable = false;\n\t\t}\n\t}\n\n\tif (functionLengthIsConfigurable || functionLengthIsWritable || !loose) {\n\t\tif (hasDescriptors) {\n\t\t\tdefine(/** @type {Parameters<define>[0]} */ (fn), 'length', length, true, true);\n\t\t} else {\n\t\t\tdefine(/** @type {Parameters<define>[0]} */ (fn), 'length', length);\n\t\t}\n\t}\n\treturn fn;\n};\n","'use strict';\n\nvar Buffer = require('safe-buffer').Buffer;\nvar toBuffer = require('to-buffer');\n\n// prototype class for hash functions\nfunction Hash(blockSize, finalSize) {\n\tthis._block = Buffer.alloc(blockSize);\n\tthis._finalSize = finalSize;\n\tthis._blockSize = blockSize;\n\tthis._len = 0;\n}\n\nHash.prototype.update = function (data, enc) {\n\t/* eslint no-param-reassign: 0 */\n\tdata = toBuffer(data, enc || 'utf8');\n\n\tvar block = this._block;\n\tvar blockSize = this._blockSize;\n\tvar length = data.length;\n\tvar accum = this._len;\n\n\tfor (var offset = 0; offset < length;) {\n\t\tvar assigned = accum % blockSize;\n\t\tvar remainder = Math.min(length - offset, blockSize - assigned);\n\n\t\tfor (var i = 0; i < remainder; i++) {\n\t\t\tblock[assigned + i] = data[offset + i];\n\t\t}\n\n\t\taccum += remainder;\n\t\toffset += remainder;\n\n\t\tif ((accum % blockSize) === 0) {\n\t\t\tthis._update(block);\n\t\t}\n\t}\n\n\tthis._len += length;\n\treturn this;\n};\n\nHash.prototype.digest = function (enc) {\n\tvar rem = this._len % this._blockSize;\n\n\tthis._block[rem] = 0x80;\n\n\t/*\n\t * zero (rem + 1) trailing bits, where (rem + 1) is the smallest\n\t * non-negative solution to the equation (length + 1 + (rem + 1)) === finalSize mod blockSize\n\t */\n\tthis._block.fill(0, rem + 1);\n\n\tif (rem >= this._finalSize) {\n\t\tthis._update(this._block);\n\t\tthis._block.fill(0);\n\t}\n\n\tvar bits = this._len * 8;\n\n\t// uint32\n\tif (bits <= 0xffffffff) {\n\t\tthis._block.writeUInt32BE(bits, this._blockSize - 4);\n\n\t\t// uint64\n\t} else {\n\t\tvar lowBits = (bits & 0xffffffff) >>> 0;\n\t\tvar highBits = (bits - lowBits) / 0x100000000;\n\n\t\tthis._block.writeUInt32BE(highBits, this._blockSize - 8);\n\t\tthis._block.writeUInt32BE(lowBits, this._blockSize - 4);\n\t}\n\n\tthis._update(this._block);\n\tvar hash = this._hash();\n\n\treturn enc ? hash.toString(enc) : hash;\n};\n\nHash.prototype._update = function () {\n\tthrow new Error('_update must be implemented by subclass');\n};\n\nmodule.exports = Hash;\n","'use strict';\n\n/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits');\nvar Hash = require('./hash');\nvar Buffer = require('safe-buffer').Buffer;\n\nvar K = [\n\t0x428A2F98,\n\t0x71374491,\n\t0xB5C0FBCF,\n\t0xE9B5DBA5,\n\t0x3956C25B,\n\t0x59F111F1,\n\t0x923F82A4,\n\t0xAB1C5ED5,\n\t0xD807AA98,\n\t0x12835B01,\n\t0x243185BE,\n\t0x550C7DC3,\n\t0x72BE5D74,\n\t0x80DEB1FE,\n\t0x9BDC06A7,\n\t0xC19BF174,\n\t0xE49B69C1,\n\t0xEFBE4786,\n\t0x0FC19DC6,\n\t0x240CA1CC,\n\t0x2DE92C6F,\n\t0x4A7484AA,\n\t0x5CB0A9DC,\n\t0x76F988DA,\n\t0x983E5152,\n\t0xA831C66D,\n\t0xB00327C8,\n\t0xBF597FC7,\n\t0xC6E00BF3,\n\t0xD5A79147,\n\t0x06CA6351,\n\t0x14292967,\n\t0x27B70A85,\n\t0x2E1B2138,\n\t0x4D2C6DFC,\n\t0x53380D13,\n\t0x650A7354,\n\t0x766A0ABB,\n\t0x81C2C92E,\n\t0x92722C85,\n\t0xA2BFE8A1,\n\t0xA81A664B,\n\t0xC24B8B70,\n\t0xC76C51A3,\n\t0xD192E819,\n\t0xD6990624,\n\t0xF40E3585,\n\t0x106AA070,\n\t0x19A4C116,\n\t0x1E376C08,\n\t0x2748774C,\n\t0x34B0BCB5,\n\t0x391C0CB3,\n\t0x4ED8AA4A,\n\t0x5B9CCA4F,\n\t0x682E6FF3,\n\t0x748F82EE,\n\t0x78A5636F,\n\t0x84C87814,\n\t0x8CC70208,\n\t0x90BEFFFA,\n\t0xA4506CEB,\n\t0xBEF9A3F7,\n\t0xC67178F2\n];\n\nvar W = new Array(64);\n\nfunction Sha256() {\n\tthis.init();\n\n\tthis._w = W; // new Array(64)\n\n\tHash.call(this, 64, 56);\n}\n\ninherits(Sha256, Hash);\n\nSha256.prototype.init = function () {\n\tthis._a = 0x6a09e667;\n\tthis._b = 0xbb67ae85;\n\tthis._c = 0x3c6ef372;\n\tthis._d = 0xa54ff53a;\n\tthis._e = 0x510e527f;\n\tthis._f = 0x9b05688c;\n\tthis._g = 0x1f83d9ab;\n\tthis._h = 0x5be0cd19;\n\n\treturn this;\n};\n\nfunction ch(x, y, z) {\n\treturn z ^ (x & (y ^ z));\n}\n\nfunction maj(x, y, z) {\n\treturn (x & y) | (z & (x | y));\n}\n\nfunction sigma0(x) {\n\treturn ((x >>> 2) | (x << 30)) ^ ((x >>> 13) | (x << 19)) ^ ((x >>> 22) | (x << 10));\n}\n\nfunction sigma1(x) {\n\treturn ((x >>> 6) | (x << 26)) ^ ((x >>> 11) | (x << 21)) ^ ((x >>> 25) | (x << 7));\n}\n\nfunction gamma0(x) {\n\treturn ((x >>> 7) | (x << 25)) ^ ((x >>> 18) | (x << 14)) ^ (x >>> 3);\n}\n\nfunction gamma1(x) {\n\treturn ((x >>> 17) | (x << 15)) ^ ((x >>> 19) | (x << 13)) ^ (x >>> 10);\n}\n\nSha256.prototype._update = function (M) {\n\tvar w = this._w;\n\n\tvar a = this._a | 0;\n\tvar b = this._b | 0;\n\tvar c = this._c | 0;\n\tvar d = this._d | 0;\n\tvar e = this._e | 0;\n\tvar f = this._f | 0;\n\tvar g = this._g | 0;\n\tvar h = this._h | 0;\n\n\tfor (var i = 0; i < 16; ++i) {\n\t\tw[i] = M.readInt32BE(i * 4);\n\t}\n\tfor (; i < 64; ++i) {\n\t\tw[i] = (gamma1(w[i - 2]) + w[i - 7] + gamma0(w[i - 15]) + w[i - 16]) | 0;\n\t}\n\n\tfor (var j = 0; j < 64; ++j) {\n\t\tvar T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + w[j]) | 0;\n\t\tvar T2 = (sigma0(a) + maj(a, b, c)) | 0;\n\n\t\th = g;\n\t\tg = f;\n\t\tf = e;\n\t\te = (d + T1) | 0;\n\t\td = c;\n\t\tc = b;\n\t\tb = a;\n\t\ta = (T1 + T2) | 0;\n\t}\n\n\tthis._a = (a + this._a) | 0;\n\tthis._b = (b + this._b) | 0;\n\tthis._c = (c + this._c) | 0;\n\tthis._d = (d + this._d) | 0;\n\tthis._e = (e + this._e) | 0;\n\tthis._f = (f + this._f) | 0;\n\tthis._g = (g + this._g) | 0;\n\tthis._h = (h + this._h) | 0;\n};\n\nSha256.prototype._hash = function () {\n\tvar H = Buffer.allocUnsafe(32);\n\n\tH.writeInt32BE(this._a, 0);\n\tH.writeInt32BE(this._b, 4);\n\tH.writeInt32BE(this._c, 8);\n\tH.writeInt32BE(this._d, 12);\n\tH.writeInt32BE(this._e, 16);\n\tH.writeInt32BE(this._f, 20);\n\tH.writeInt32BE(this._g, 24);\n\tH.writeInt32BE(this._h, 28);\n\n\treturn H;\n};\n\nmodule.exports = Sha256;\n","'use strict';\n\nvar Buffer = require('safe-buffer').Buffer;\nvar isArray = require('isarray');\nvar typedArrayBuffer = require('typed-array-buffer');\n\nvar isView = ArrayBuffer.isView || function isView(obj) {\n\ttry {\n\t\ttypedArrayBuffer(obj);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar useUint8Array = typeof Uint8Array !== 'undefined';\nvar useArrayBuffer = typeof ArrayBuffer !== 'undefined'\n\t&& typeof Uint8Array !== 'undefined';\nvar useFromArrayBuffer = useArrayBuffer && (Buffer.prototype instanceof Uint8Array || Buffer.TYPED_ARRAY_SUPPORT);\n\nmodule.exports = function toBuffer(data, encoding) {\n\tif (Buffer.isBuffer(data)) {\n\t\tif (data.constructor && !('isBuffer' in data)) {\n\t\t\t// probably a SlowBuffer\n\t\t\treturn Buffer.from(data);\n\t\t}\n\t\treturn data;\n\t}\n\n\tif (typeof data === 'string') {\n\t\treturn Buffer.from(data, encoding);\n\t}\n\n\t/*\n\t * Wrap any TypedArray instances and DataViews\n\t * Makes sense only on engines with full TypedArray support -- let Buffer detect that\n\t */\n\tif (useArrayBuffer && isView(data)) {\n\t\t// Bug in Node.js <6.3.1, which treats this as out-of-bounds\n\t\tif (data.byteLength === 0) {\n\t\t\treturn Buffer.alloc(0);\n\t\t}\n\n\t\t// When Buffer is based on Uint8Array, we can just construct it from ArrayBuffer\n\t\tif (useFromArrayBuffer) {\n\t\t\tvar res = Buffer.from(data.buffer, data.byteOffset, data.byteLength);\n\t\t\t/*\n\t\t\t * Recheck result size, as offset/length doesn't work on Node.js <5.10\n\t\t\t * We just go to Uint8Array case if this fails\n\t\t\t */\n\t\t\tif (res.byteLength === data.byteLength) {\n\t\t\t\treturn res;\n\t\t\t}\n\t\t}\n\n\t\t// Convert to Uint8Array bytes and then to Buffer\n\t\tvar uint8 = data instanceof Uint8Array ? data : new Uint8Array(data.buffer, data.byteOffset, data.byteLength);\n\t\tvar result = Buffer.from(uint8);\n\n\t\t/*\n\t\t * Let's recheck that conversion succeeded\n\t\t * We have .length but not .byteLength when useFromArrayBuffer is false\n\t\t */\n\t\tif (result.length === data.byteLength) {\n\t\t\treturn result;\n\t\t}\n\t}\n\n\t/*\n\t * Uint8Array in engines where Buffer.from might not work with ArrayBuffer, just copy over\n\t * Doesn't make sense with other TypedArray instances\n\t */\n\tif (useUint8Array && data instanceof Uint8Array) {\n\t\treturn Buffer.from(data);\n\t}\n\n\tvar isArr = isArray(data);\n\tif (isArr) {\n\t\tfor (var i = 0; i < data.length; i += 1) {\n\t\t\tvar x = data[i];\n\t\t\tif (\n\t\t\t\ttypeof x !== 'number'\n\t\t\t\t|| x < 0\n\t\t\t\t|| x > 255\n\t\t\t\t|| ~~x !== x // NaN and integer check\n\t\t\t) {\n\t\t\t\tthrow new RangeError('Array items must be numbers in the range 0-255.');\n\t\t\t}\n\t\t}\n\t}\n\n\t/*\n\t * Old Buffer polyfill on an engine that doesn't have TypedArray support\n\t * Also, this is from a different Buffer polyfill implementation then we have, as instanceof check failed\n\t * Convert to our current Buffer implementation\n\t */\n\tif (\n\t\tisArr || (\n\t\t\tBuffer.isBuffer(data)\n\t\t\t&& data.constructor\n\t\t\t&& typeof data.constructor.isBuffer === 'function'\n\t\t\t&& data.constructor.isBuffer(data)\n\t\t)\n\t) {\n\t\treturn Buffer.from(data);\n\t}\n\n\tthrow new TypeError('The \"data\" argument must be a string, an Array, a Buffer, a Uint8Array, or a DataView.');\n};\n","(function(root, f) {\n  'use strict';\n  if (typeof module !== 'undefined' && module.exports) module.exports = f(require('tweetnacl'));\n  else root.nacl.auth = f(root.nacl);\n\n}(this, function(nacl) {\n  'use strict';\n\n  if (!nacl) throw new Error('tweetnacl not loaded');\n\n  var BLOCK_SIZE = 128, HASH_SIZE = 64;\n\n  function hmac(message, key) {\n    var buf = new Uint8Array(BLOCK_SIZE + Math.max(HASH_SIZE, message.length));\n    var i, innerHash;\n\n    if (key.length > BLOCK_SIZE)\n      key = nacl.hash(key);\n\n    for (i = 0; i < BLOCK_SIZE; i++) buf[i] = 0x36;\n    for (i = 0; i < key.length; i++) buf[i] ^= key[i];\n    buf.set(message, BLOCK_SIZE);\n    innerHash = nacl.hash(buf.subarray(0, BLOCK_SIZE + message.length));\n\n    for (i = 0; i < BLOCK_SIZE; i++) buf[i] = 0x5c;\n    for (i = 0; i < key.length; i++) buf[i] ^= key[i];\n    buf.set(innerHash, BLOCK_SIZE);\n    return nacl.hash(buf.subarray(0, BLOCK_SIZE + innerHash.length));\n  }\n\n  function auth(message, key) {\n    var out = new Uint8Array(32);\n    out.set(hmac(message, key).subarray(0, 32));\n    return out;\n  }\n\n  auth.full = function (message, key) {\n    return hmac(message, key);\n  };\n\n  auth.authLength = 32;\n  auth.authFullLength = 64;\n  auth.keyLength = 32;\n\n  return auth;\n\n}));\n","(function(nacl) {\n'use strict';\n\n// Ported in 2014 by Dmitry Chestnykh and Devi Mandiri.\n// Public domain.\n//\n// Implementation derived from TweetNaCl version 20140427.\n// See for details: http://tweetnacl.cr.yp.to/\n\nvar gf = function(init) {\n  var i, r = new Float64Array(16);\n  if (init) for (i = 0; i < init.length; i++) r[i] = init[i];\n  return r;\n};\n\n//  Pluggable, initialized in high-level API below.\nvar randombytes = function(/* x, n */) { throw new Error('no PRNG'); };\n\nvar _0 = new Uint8Array(16);\nvar _9 = new Uint8Array(32); _9[0] = 9;\n\nvar gf0 = gf(),\n    gf1 = gf([1]),\n    _121665 = gf([0xdb41, 1]),\n    D = gf([0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070, 0xe898, 0x7779, 0x4079, 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203]),\n    D2 = gf([0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0, 0xd130, 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406]),\n    X = gf([0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c, 0xdc5c, 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, 0x2169]),\n    Y = gf([0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666]),\n    I = gf([0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43, 0xd7a7, 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83]);\n\nfunction ts64(x, i, h, l) {\n  x[i]   = (h >> 24) & 0xff;\n  x[i+1] = (h >> 16) & 0xff;\n  x[i+2] = (h >>  8) & 0xff;\n  x[i+3] = h & 0xff;\n  x[i+4] = (l >> 24)  & 0xff;\n  x[i+5] = (l >> 16)  & 0xff;\n  x[i+6] = (l >>  8)  & 0xff;\n  x[i+7] = l & 0xff;\n}\n\nfunction vn(x, xi, y, yi, n) {\n  var i,d = 0;\n  for (i = 0; i < n; i++) d |= x[xi+i]^y[yi+i];\n  return (1 & ((d - 1) >>> 8)) - 1;\n}\n\nfunction crypto_verify_16(x, xi, y, yi) {\n  return vn(x,xi,y,yi,16);\n}\n\nfunction crypto_verify_32(x, xi, y, yi) {\n  return vn(x,xi,y,yi,32);\n}\n\nfunction core_salsa20(o, p, k, c) {\n  var j0  = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n      j1  = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n      j2  = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n      j3  = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n      j4  = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n      j5  = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n      j6  = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n      j7  = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n      j8  = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n      j9  = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n      j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n      j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n      j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n      j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n      j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n      j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n  var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n      x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n      x15 = j15, u;\n\n  for (var i = 0; i < 20; i += 2) {\n    u = x0 + x12 | 0;\n    x4 ^= u<<7 | u>>>(32-7);\n    u = x4 + x0 | 0;\n    x8 ^= u<<9 | u>>>(32-9);\n    u = x8 + x4 | 0;\n    x12 ^= u<<13 | u>>>(32-13);\n    u = x12 + x8 | 0;\n    x0 ^= u<<18 | u>>>(32-18);\n\n    u = x5 + x1 | 0;\n    x9 ^= u<<7 | u>>>(32-7);\n    u = x9 + x5 | 0;\n    x13 ^= u<<9 | u>>>(32-9);\n    u = x13 + x9 | 0;\n    x1 ^= u<<13 | u>>>(32-13);\n    u = x1 + x13 | 0;\n    x5 ^= u<<18 | u>>>(32-18);\n\n    u = x10 + x6 | 0;\n    x14 ^= u<<7 | u>>>(32-7);\n    u = x14 + x10 | 0;\n    x2 ^= u<<9 | u>>>(32-9);\n    u = x2 + x14 | 0;\n    x6 ^= u<<13 | u>>>(32-13);\n    u = x6 + x2 | 0;\n    x10 ^= u<<18 | u>>>(32-18);\n\n    u = x15 + x11 | 0;\n    x3 ^= u<<7 | u>>>(32-7);\n    u = x3 + x15 | 0;\n    x7 ^= u<<9 | u>>>(32-9);\n    u = x7 + x3 | 0;\n    x11 ^= u<<13 | u>>>(32-13);\n    u = x11 + x7 | 0;\n    x15 ^= u<<18 | u>>>(32-18);\n\n    u = x0 + x3 | 0;\n    x1 ^= u<<7 | u>>>(32-7);\n    u = x1 + x0 | 0;\n    x2 ^= u<<9 | u>>>(32-9);\n    u = x2 + x1 | 0;\n    x3 ^= u<<13 | u>>>(32-13);\n    u = x3 + x2 | 0;\n    x0 ^= u<<18 | u>>>(32-18);\n\n    u = x5 + x4 | 0;\n    x6 ^= u<<7 | u>>>(32-7);\n    u = x6 + x5 | 0;\n    x7 ^= u<<9 | u>>>(32-9);\n    u = x7 + x6 | 0;\n    x4 ^= u<<13 | u>>>(32-13);\n    u = x4 + x7 | 0;\n    x5 ^= u<<18 | u>>>(32-18);\n\n    u = x10 + x9 | 0;\n    x11 ^= u<<7 | u>>>(32-7);\n    u = x11 + x10 | 0;\n    x8 ^= u<<9 | u>>>(32-9);\n    u = x8 + x11 | 0;\n    x9 ^= u<<13 | u>>>(32-13);\n    u = x9 + x8 | 0;\n    x10 ^= u<<18 | u>>>(32-18);\n\n    u = x15 + x14 | 0;\n    x12 ^= u<<7 | u>>>(32-7);\n    u = x12 + x15 | 0;\n    x13 ^= u<<9 | u>>>(32-9);\n    u = x13 + x12 | 0;\n    x14 ^= u<<13 | u>>>(32-13);\n    u = x14 + x13 | 0;\n    x15 ^= u<<18 | u>>>(32-18);\n  }\n   x0 =  x0 +  j0 | 0;\n   x1 =  x1 +  j1 | 0;\n   x2 =  x2 +  j2 | 0;\n   x3 =  x3 +  j3 | 0;\n   x4 =  x4 +  j4 | 0;\n   x5 =  x5 +  j5 | 0;\n   x6 =  x6 +  j6 | 0;\n   x7 =  x7 +  j7 | 0;\n   x8 =  x8 +  j8 | 0;\n   x9 =  x9 +  j9 | 0;\n  x10 = x10 + j10 | 0;\n  x11 = x11 + j11 | 0;\n  x12 = x12 + j12 | 0;\n  x13 = x13 + j13 | 0;\n  x14 = x14 + j14 | 0;\n  x15 = x15 + j15 | 0;\n\n  o[ 0] = x0 >>>  0 & 0xff;\n  o[ 1] = x0 >>>  8 & 0xff;\n  o[ 2] = x0 >>> 16 & 0xff;\n  o[ 3] = x0 >>> 24 & 0xff;\n\n  o[ 4] = x1 >>>  0 & 0xff;\n  o[ 5] = x1 >>>  8 & 0xff;\n  o[ 6] = x1 >>> 16 & 0xff;\n  o[ 7] = x1 >>> 24 & 0xff;\n\n  o[ 8] = x2 >>>  0 & 0xff;\n  o[ 9] = x2 >>>  8 & 0xff;\n  o[10] = x2 >>> 16 & 0xff;\n  o[11] = x2 >>> 24 & 0xff;\n\n  o[12] = x3 >>>  0 & 0xff;\n  o[13] = x3 >>>  8 & 0xff;\n  o[14] = x3 >>> 16 & 0xff;\n  o[15] = x3 >>> 24 & 0xff;\n\n  o[16] = x4 >>>  0 & 0xff;\n  o[17] = x4 >>>  8 & 0xff;\n  o[18] = x4 >>> 16 & 0xff;\n  o[19] = x4 >>> 24 & 0xff;\n\n  o[20] = x5 >>>  0 & 0xff;\n  o[21] = x5 >>>  8 & 0xff;\n  o[22] = x5 >>> 16 & 0xff;\n  o[23] = x5 >>> 24 & 0xff;\n\n  o[24] = x6 >>>  0 & 0xff;\n  o[25] = x6 >>>  8 & 0xff;\n  o[26] = x6 >>> 16 & 0xff;\n  o[27] = x6 >>> 24 & 0xff;\n\n  o[28] = x7 >>>  0 & 0xff;\n  o[29] = x7 >>>  8 & 0xff;\n  o[30] = x7 >>> 16 & 0xff;\n  o[31] = x7 >>> 24 & 0xff;\n\n  o[32] = x8 >>>  0 & 0xff;\n  o[33] = x8 >>>  8 & 0xff;\n  o[34] = x8 >>> 16 & 0xff;\n  o[35] = x8 >>> 24 & 0xff;\n\n  o[36] = x9 >>>  0 & 0xff;\n  o[37] = x9 >>>  8 & 0xff;\n  o[38] = x9 >>> 16 & 0xff;\n  o[39] = x9 >>> 24 & 0xff;\n\n  o[40] = x10 >>>  0 & 0xff;\n  o[41] = x10 >>>  8 & 0xff;\n  o[42] = x10 >>> 16 & 0xff;\n  o[43] = x10 >>> 24 & 0xff;\n\n  o[44] = x11 >>>  0 & 0xff;\n  o[45] = x11 >>>  8 & 0xff;\n  o[46] = x11 >>> 16 & 0xff;\n  o[47] = x11 >>> 24 & 0xff;\n\n  o[48] = x12 >>>  0 & 0xff;\n  o[49] = x12 >>>  8 & 0xff;\n  o[50] = x12 >>> 16 & 0xff;\n  o[51] = x12 >>> 24 & 0xff;\n\n  o[52] = x13 >>>  0 & 0xff;\n  o[53] = x13 >>>  8 & 0xff;\n  o[54] = x13 >>> 16 & 0xff;\n  o[55] = x13 >>> 24 & 0xff;\n\n  o[56] = x14 >>>  0 & 0xff;\n  o[57] = x14 >>>  8 & 0xff;\n  o[58] = x14 >>> 16 & 0xff;\n  o[59] = x14 >>> 24 & 0xff;\n\n  o[60] = x15 >>>  0 & 0xff;\n  o[61] = x15 >>>  8 & 0xff;\n  o[62] = x15 >>> 16 & 0xff;\n  o[63] = x15 >>> 24 & 0xff;\n}\n\nfunction core_hsalsa20(o,p,k,c) {\n  var j0  = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n      j1  = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n      j2  = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n      j3  = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n      j4  = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n      j5  = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n      j6  = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n      j7  = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n      j8  = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n      j9  = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n      j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n      j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n      j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n      j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n      j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n      j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n  var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n      x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n      x15 = j15, u;\n\n  for (var i = 0; i < 20; i += 2) {\n    u = x0 + x12 | 0;\n    x4 ^= u<<7 | u>>>(32-7);\n    u = x4 + x0 | 0;\n    x8 ^= u<<9 | u>>>(32-9);\n    u = x8 + x4 | 0;\n    x12 ^= u<<13 | u>>>(32-13);\n    u = x12 + x8 | 0;\n    x0 ^= u<<18 | u>>>(32-18);\n\n    u = x5 + x1 | 0;\n    x9 ^= u<<7 | u>>>(32-7);\n    u = x9 + x5 | 0;\n    x13 ^= u<<9 | u>>>(32-9);\n    u = x13 + x9 | 0;\n    x1 ^= u<<13 | u>>>(32-13);\n    u = x1 + x13 | 0;\n    x5 ^= u<<18 | u>>>(32-18);\n\n    u = x10 + x6 | 0;\n    x14 ^= u<<7 | u>>>(32-7);\n    u = x14 + x10 | 0;\n    x2 ^= u<<9 | u>>>(32-9);\n    u = x2 + x14 | 0;\n    x6 ^= u<<13 | u>>>(32-13);\n    u = x6 + x2 | 0;\n    x10 ^= u<<18 | u>>>(32-18);\n\n    u = x15 + x11 | 0;\n    x3 ^= u<<7 | u>>>(32-7);\n    u = x3 + x15 | 0;\n    x7 ^= u<<9 | u>>>(32-9);\n    u = x7 + x3 | 0;\n    x11 ^= u<<13 | u>>>(32-13);\n    u = x11 + x7 | 0;\n    x15 ^= u<<18 | u>>>(32-18);\n\n    u = x0 + x3 | 0;\n    x1 ^= u<<7 | u>>>(32-7);\n    u = x1 + x0 | 0;\n    x2 ^= u<<9 | u>>>(32-9);\n    u = x2 + x1 | 0;\n    x3 ^= u<<13 | u>>>(32-13);\n    u = x3 + x2 | 0;\n    x0 ^= u<<18 | u>>>(32-18);\n\n    u = x5 + x4 | 0;\n    x6 ^= u<<7 | u>>>(32-7);\n    u = x6 + x5 | 0;\n    x7 ^= u<<9 | u>>>(32-9);\n    u = x7 + x6 | 0;\n    x4 ^= u<<13 | u>>>(32-13);\n    u = x4 + x7 | 0;\n    x5 ^= u<<18 | u>>>(32-18);\n\n    u = x10 + x9 | 0;\n    x11 ^= u<<7 | u>>>(32-7);\n    u = x11 + x10 | 0;\n    x8 ^= u<<9 | u>>>(32-9);\n    u = x8 + x11 | 0;\n    x9 ^= u<<13 | u>>>(32-13);\n    u = x9 + x8 | 0;\n    x10 ^= u<<18 | u>>>(32-18);\n\n    u = x15 + x14 | 0;\n    x12 ^= u<<7 | u>>>(32-7);\n    u = x12 + x15 | 0;\n    x13 ^= u<<9 | u>>>(32-9);\n    u = x13 + x12 | 0;\n    x14 ^= u<<13 | u>>>(32-13);\n    u = x14 + x13 | 0;\n    x15 ^= u<<18 | u>>>(32-18);\n  }\n\n  o[ 0] = x0 >>>  0 & 0xff;\n  o[ 1] = x0 >>>  8 & 0xff;\n  o[ 2] = x0 >>> 16 & 0xff;\n  o[ 3] = x0 >>> 24 & 0xff;\n\n  o[ 4] = x5 >>>  0 & 0xff;\n  o[ 5] = x5 >>>  8 & 0xff;\n  o[ 6] = x5 >>> 16 & 0xff;\n  o[ 7] = x5 >>> 24 & 0xff;\n\n  o[ 8] = x10 >>>  0 & 0xff;\n  o[ 9] = x10 >>>  8 & 0xff;\n  o[10] = x10 >>> 16 & 0xff;\n  o[11] = x10 >>> 24 & 0xff;\n\n  o[12] = x15 >>>  0 & 0xff;\n  o[13] = x15 >>>  8 & 0xff;\n  o[14] = x15 >>> 16 & 0xff;\n  o[15] = x15 >>> 24 & 0xff;\n\n  o[16] = x6 >>>  0 & 0xff;\n  o[17] = x6 >>>  8 & 0xff;\n  o[18] = x6 >>> 16 & 0xff;\n  o[19] = x6 >>> 24 & 0xff;\n\n  o[20] = x7 >>>  0 & 0xff;\n  o[21] = x7 >>>  8 & 0xff;\n  o[22] = x7 >>> 16 & 0xff;\n  o[23] = x7 >>> 24 & 0xff;\n\n  o[24] = x8 >>>  0 & 0xff;\n  o[25] = x8 >>>  8 & 0xff;\n  o[26] = x8 >>> 16 & 0xff;\n  o[27] = x8 >>> 24 & 0xff;\n\n  o[28] = x9 >>>  0 & 0xff;\n  o[29] = x9 >>>  8 & 0xff;\n  o[30] = x9 >>> 16 & 0xff;\n  o[31] = x9 >>> 24 & 0xff;\n}\n\nfunction crypto_core_salsa20(out,inp,k,c) {\n  core_salsa20(out,inp,k,c);\n}\n\nfunction crypto_core_hsalsa20(out,inp,k,c) {\n  core_hsalsa20(out,inp,k,c);\n}\n\nvar sigma = new Uint8Array([101, 120, 112, 97, 110, 100, 32, 51, 50, 45, 98, 121, 116, 101, 32, 107]);\n            // \"expand 32-byte k\"\n\nfunction crypto_stream_salsa20_xor(c,cpos,m,mpos,b,n,k) {\n  var z = new Uint8Array(16), x = new Uint8Array(64);\n  var u, i;\n  for (i = 0; i < 16; i++) z[i] = 0;\n  for (i = 0; i < 8; i++) z[i] = n[i];\n  while (b >= 64) {\n    crypto_core_salsa20(x,z,k,sigma);\n    for (i = 0; i < 64; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n    u = 1;\n    for (i = 8; i < 16; i++) {\n      u = u + (z[i] & 0xff) | 0;\n      z[i] = u & 0xff;\n      u >>>= 8;\n    }\n    b -= 64;\n    cpos += 64;\n    mpos += 64;\n  }\n  if (b > 0) {\n    crypto_core_salsa20(x,z,k,sigma);\n    for (i = 0; i < b; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n  }\n  return 0;\n}\n\nfunction crypto_stream_salsa20(c,cpos,b,n,k) {\n  var z = new Uint8Array(16), x = new Uint8Array(64);\n  var u, i;\n  for (i = 0; i < 16; i++) z[i] = 0;\n  for (i = 0; i < 8; i++) z[i] = n[i];\n  while (b >= 64) {\n    crypto_core_salsa20(x,z,k,sigma);\n    for (i = 0; i < 64; i++) c[cpos+i] = x[i];\n    u = 1;\n    for (i = 8; i < 16; i++) {\n      u = u + (z[i] & 0xff) | 0;\n      z[i] = u & 0xff;\n      u >>>= 8;\n    }\n    b -= 64;\n    cpos += 64;\n  }\n  if (b > 0) {\n    crypto_core_salsa20(x,z,k,sigma);\n    for (i = 0; i < b; i++) c[cpos+i] = x[i];\n  }\n  return 0;\n}\n\nfunction crypto_stream(c,cpos,d,n,k) {\n  var s = new Uint8Array(32);\n  crypto_core_hsalsa20(s,n,k,sigma);\n  var sn = new Uint8Array(8);\n  for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n  return crypto_stream_salsa20(c,cpos,d,sn,s);\n}\n\nfunction crypto_stream_xor(c,cpos,m,mpos,d,n,k) {\n  var s = new Uint8Array(32);\n  crypto_core_hsalsa20(s,n,k,sigma);\n  var sn = new Uint8Array(8);\n  for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n  return crypto_stream_salsa20_xor(c,cpos,m,mpos,d,sn,s);\n}\n\n/*\n* Port of Andrew Moon's Poly1305-donna-16. Public domain.\n* https://github.com/floodyberry/poly1305-donna\n*/\n\nvar poly1305 = function(key) {\n  this.buffer = new Uint8Array(16);\n  this.r = new Uint16Array(10);\n  this.h = new Uint16Array(10);\n  this.pad = new Uint16Array(8);\n  this.leftover = 0;\n  this.fin = 0;\n\n  var t0, t1, t2, t3, t4, t5, t6, t7;\n\n  t0 = key[ 0] & 0xff | (key[ 1] & 0xff) << 8; this.r[0] = ( t0                     ) & 0x1fff;\n  t1 = key[ 2] & 0xff | (key[ 3] & 0xff) << 8; this.r[1] = ((t0 >>> 13) | (t1 <<  3)) & 0x1fff;\n  t2 = key[ 4] & 0xff | (key[ 5] & 0xff) << 8; this.r[2] = ((t1 >>> 10) | (t2 <<  6)) & 0x1f03;\n  t3 = key[ 6] & 0xff | (key[ 7] & 0xff) << 8; this.r[3] = ((t2 >>>  7) | (t3 <<  9)) & 0x1fff;\n  t4 = key[ 8] & 0xff | (key[ 9] & 0xff) << 8; this.r[4] = ((t3 >>>  4) | (t4 << 12)) & 0x00ff;\n  this.r[5] = ((t4 >>>  1)) & 0x1ffe;\n  t5 = key[10] & 0xff | (key[11] & 0xff) << 8; this.r[6] = ((t4 >>> 14) | (t5 <<  2)) & 0x1fff;\n  t6 = key[12] & 0xff | (key[13] & 0xff) << 8; this.r[7] = ((t5 >>> 11) | (t6 <<  5)) & 0x1f81;\n  t7 = key[14] & 0xff | (key[15] & 0xff) << 8; this.r[8] = ((t6 >>>  8) | (t7 <<  8)) & 0x1fff;\n  this.r[9] = ((t7 >>>  5)) & 0x007f;\n\n  this.pad[0] = key[16] & 0xff | (key[17] & 0xff) << 8;\n  this.pad[1] = key[18] & 0xff | (key[19] & 0xff) << 8;\n  this.pad[2] = key[20] & 0xff | (key[21] & 0xff) << 8;\n  this.pad[3] = key[22] & 0xff | (key[23] & 0xff) << 8;\n  this.pad[4] = key[24] & 0xff | (key[25] & 0xff) << 8;\n  this.pad[5] = key[26] & 0xff | (key[27] & 0xff) << 8;\n  this.pad[6] = key[28] & 0xff | (key[29] & 0xff) << 8;\n  this.pad[7] = key[30] & 0xff | (key[31] & 0xff) << 8;\n};\n\npoly1305.prototype.blocks = function(m, mpos, bytes) {\n  var hibit = this.fin ? 0 : (1 << 11);\n  var t0, t1, t2, t3, t4, t5, t6, t7, c;\n  var d0, d1, d2, d3, d4, d5, d6, d7, d8, d9;\n\n  var h0 = this.h[0],\n      h1 = this.h[1],\n      h2 = this.h[2],\n      h3 = this.h[3],\n      h4 = this.h[4],\n      h5 = this.h[5],\n      h6 = this.h[6],\n      h7 = this.h[7],\n      h8 = this.h[8],\n      h9 = this.h[9];\n\n  var r0 = this.r[0],\n      r1 = this.r[1],\n      r2 = this.r[2],\n      r3 = this.r[3],\n      r4 = this.r[4],\n      r5 = this.r[5],\n      r6 = this.r[6],\n      r7 = this.r[7],\n      r8 = this.r[8],\n      r9 = this.r[9];\n\n  while (bytes >= 16) {\n    t0 = m[mpos+ 0] & 0xff | (m[mpos+ 1] & 0xff) << 8; h0 += ( t0                     ) & 0x1fff;\n    t1 = m[mpos+ 2] & 0xff | (m[mpos+ 3] & 0xff) << 8; h1 += ((t0 >>> 13) | (t1 <<  3)) & 0x1fff;\n    t2 = m[mpos+ 4] & 0xff | (m[mpos+ 5] & 0xff) << 8; h2 += ((t1 >>> 10) | (t2 <<  6)) & 0x1fff;\n    t3 = m[mpos+ 6] & 0xff | (m[mpos+ 7] & 0xff) << 8; h3 += ((t2 >>>  7) | (t3 <<  9)) & 0x1fff;\n    t4 = m[mpos+ 8] & 0xff | (m[mpos+ 9] & 0xff) << 8; h4 += ((t3 >>>  4) | (t4 << 12)) & 0x1fff;\n    h5 += ((t4 >>>  1)) & 0x1fff;\n    t5 = m[mpos+10] & 0xff | (m[mpos+11] & 0xff) << 8; h6 += ((t4 >>> 14) | (t5 <<  2)) & 0x1fff;\n    t6 = m[mpos+12] & 0xff | (m[mpos+13] & 0xff) << 8; h7 += ((t5 >>> 11) | (t6 <<  5)) & 0x1fff;\n    t7 = m[mpos+14] & 0xff | (m[mpos+15] & 0xff) << 8; h8 += ((t6 >>>  8) | (t7 <<  8)) & 0x1fff;\n    h9 += ((t7 >>> 5)) | hibit;\n\n    c = 0;\n\n    d0 = c;\n    d0 += h0 * r0;\n    d0 += h1 * (5 * r9);\n    d0 += h2 * (5 * r8);\n    d0 += h3 * (5 * r7);\n    d0 += h4 * (5 * r6);\n    c = (d0 >>> 13); d0 &= 0x1fff;\n    d0 += h5 * (5 * r5);\n    d0 += h6 * (5 * r4);\n    d0 += h7 * (5 * r3);\n    d0 += h8 * (5 * r2);\n    d0 += h9 * (5 * r1);\n    c += (d0 >>> 13); d0 &= 0x1fff;\n\n    d1 = c;\n    d1 += h0 * r1;\n    d1 += h1 * r0;\n    d1 += h2 * (5 * r9);\n    d1 += h3 * (5 * r8);\n    d1 += h4 * (5 * r7);\n    c = (d1 >>> 13); d1 &= 0x1fff;\n    d1 += h5 * (5 * r6);\n    d1 += h6 * (5 * r5);\n    d1 += h7 * (5 * r4);\n    d1 += h8 * (5 * r3);\n    d1 += h9 * (5 * r2);\n    c += (d1 >>> 13); d1 &= 0x1fff;\n\n    d2 = c;\n    d2 += h0 * r2;\n    d2 += h1 * r1;\n    d2 += h2 * r0;\n    d2 += h3 * (5 * r9);\n    d2 += h4 * (5 * r8);\n    c = (d2 >>> 13); d2 &= 0x1fff;\n    d2 += h5 * (5 * r7);\n    d2 += h6 * (5 * r6);\n    d2 += h7 * (5 * r5);\n    d2 += h8 * (5 * r4);\n    d2 += h9 * (5 * r3);\n    c += (d2 >>> 13); d2 &= 0x1fff;\n\n    d3 = c;\n    d3 += h0 * r3;\n    d3 += h1 * r2;\n    d3 += h2 * r1;\n    d3 += h3 * r0;\n    d3 += h4 * (5 * r9);\n    c = (d3 >>> 13); d3 &= 0x1fff;\n    d3 += h5 * (5 * r8);\n    d3 += h6 * (5 * r7);\n    d3 += h7 * (5 * r6);\n    d3 += h8 * (5 * r5);\n    d3 += h9 * (5 * r4);\n    c += (d3 >>> 13); d3 &= 0x1fff;\n\n    d4 = c;\n    d4 += h0 * r4;\n    d4 += h1 * r3;\n    d4 += h2 * r2;\n    d4 += h3 * r1;\n    d4 += h4 * r0;\n    c = (d4 >>> 13); d4 &= 0x1fff;\n    d4 += h5 * (5 * r9);\n    d4 += h6 * (5 * r8);\n    d4 += h7 * (5 * r7);\n    d4 += h8 * (5 * r6);\n    d4 += h9 * (5 * r5);\n    c += (d4 >>> 13); d4 &= 0x1fff;\n\n    d5 = c;\n    d5 += h0 * r5;\n    d5 += h1 * r4;\n    d5 += h2 * r3;\n    d5 += h3 * r2;\n    d5 += h4 * r1;\n    c = (d5 >>> 13); d5 &= 0x1fff;\n    d5 += h5 * r0;\n    d5 += h6 * (5 * r9);\n    d5 += h7 * (5 * r8);\n    d5 += h8 * (5 * r7);\n    d5 += h9 * (5 * r6);\n    c += (d5 >>> 13); d5 &= 0x1fff;\n\n    d6 = c;\n    d6 += h0 * r6;\n    d6 += h1 * r5;\n    d6 += h2 * r4;\n    d6 += h3 * r3;\n    d6 += h4 * r2;\n    c = (d6 >>> 13); d6 &= 0x1fff;\n    d6 += h5 * r1;\n    d6 += h6 * r0;\n    d6 += h7 * (5 * r9);\n    d6 += h8 * (5 * r8);\n    d6 += h9 * (5 * r7);\n    c += (d6 >>> 13); d6 &= 0x1fff;\n\n    d7 = c;\n    d7 += h0 * r7;\n    d7 += h1 * r6;\n    d7 += h2 * r5;\n    d7 += h3 * r4;\n    d7 += h4 * r3;\n    c = (d7 >>> 13); d7 &= 0x1fff;\n    d7 += h5 * r2;\n    d7 += h6 * r1;\n    d7 += h7 * r0;\n    d7 += h8 * (5 * r9);\n    d7 += h9 * (5 * r8);\n    c += (d7 >>> 13); d7 &= 0x1fff;\n\n    d8 = c;\n    d8 += h0 * r8;\n    d8 += h1 * r7;\n    d8 += h2 * r6;\n    d8 += h3 * r5;\n    d8 += h4 * r4;\n    c = (d8 >>> 13); d8 &= 0x1fff;\n    d8 += h5 * r3;\n    d8 += h6 * r2;\n    d8 += h7 * r1;\n    d8 += h8 * r0;\n    d8 += h9 * (5 * r9);\n    c += (d8 >>> 13); d8 &= 0x1fff;\n\n    d9 = c;\n    d9 += h0 * r9;\n    d9 += h1 * r8;\n    d9 += h2 * r7;\n    d9 += h3 * r6;\n    d9 += h4 * r5;\n    c = (d9 >>> 13); d9 &= 0x1fff;\n    d9 += h5 * r4;\n    d9 += h6 * r3;\n    d9 += h7 * r2;\n    d9 += h8 * r1;\n    d9 += h9 * r0;\n    c += (d9 >>> 13); d9 &= 0x1fff;\n\n    c = (((c << 2) + c)) | 0;\n    c = (c + d0) | 0;\n    d0 = c & 0x1fff;\n    c = (c >>> 13);\n    d1 += c;\n\n    h0 = d0;\n    h1 = d1;\n    h2 = d2;\n    h3 = d3;\n    h4 = d4;\n    h5 = d5;\n    h6 = d6;\n    h7 = d7;\n    h8 = d8;\n    h9 = d9;\n\n    mpos += 16;\n    bytes -= 16;\n  }\n  this.h[0] = h0;\n  this.h[1] = h1;\n  this.h[2] = h2;\n  this.h[3] = h3;\n  this.h[4] = h4;\n  this.h[5] = h5;\n  this.h[6] = h6;\n  this.h[7] = h7;\n  this.h[8] = h8;\n  this.h[9] = h9;\n};\n\npoly1305.prototype.finish = function(mac, macpos) {\n  var g = new Uint16Array(10);\n  var c, mask, f, i;\n\n  if (this.leftover) {\n    i = this.leftover;\n    this.buffer[i++] = 1;\n    for (; i < 16; i++) this.buffer[i] = 0;\n    this.fin = 1;\n    this.blocks(this.buffer, 0, 16);\n  }\n\n  c = this.h[1] >>> 13;\n  this.h[1] &= 0x1fff;\n  for (i = 2; i < 10; i++) {\n    this.h[i] += c;\n    c = this.h[i] >>> 13;\n    this.h[i] &= 0x1fff;\n  }\n  this.h[0] += (c * 5);\n  c = this.h[0] >>> 13;\n  this.h[0] &= 0x1fff;\n  this.h[1] += c;\n  c = this.h[1] >>> 13;\n  this.h[1] &= 0x1fff;\n  this.h[2] += c;\n\n  g[0] = this.h[0] + 5;\n  c = g[0] >>> 13;\n  g[0] &= 0x1fff;\n  for (i = 1; i < 10; i++) {\n    g[i] = this.h[i] + c;\n    c = g[i] >>> 13;\n    g[i] &= 0x1fff;\n  }\n  g[9] -= (1 << 13);\n\n  mask = (c ^ 1) - 1;\n  for (i = 0; i < 10; i++) g[i] &= mask;\n  mask = ~mask;\n  for (i = 0; i < 10; i++) this.h[i] = (this.h[i] & mask) | g[i];\n\n  this.h[0] = ((this.h[0]       ) | (this.h[1] << 13)                    ) & 0xffff;\n  this.h[1] = ((this.h[1] >>>  3) | (this.h[2] << 10)                    ) & 0xffff;\n  this.h[2] = ((this.h[2] >>>  6) | (this.h[3] <<  7)                    ) & 0xffff;\n  this.h[3] = ((this.h[3] >>>  9) | (this.h[4] <<  4)                    ) & 0xffff;\n  this.h[4] = ((this.h[4] >>> 12) | (this.h[5] <<  1) | (this.h[6] << 14)) & 0xffff;\n  this.h[5] = ((this.h[6] >>>  2) | (this.h[7] << 11)                    ) & 0xffff;\n  this.h[6] = ((this.h[7] >>>  5) | (this.h[8] <<  8)                    ) & 0xffff;\n  this.h[7] = ((this.h[8] >>>  8) | (this.h[9] <<  5)                    ) & 0xffff;\n\n  f = this.h[0] + this.pad[0];\n  this.h[0] = f & 0xffff;\n  for (i = 1; i < 8; i++) {\n    f = (((this.h[i] + this.pad[i]) | 0) + (f >>> 16)) | 0;\n    this.h[i] = f & 0xffff;\n  }\n\n  mac[macpos+ 0] = (this.h[0] >>> 0) & 0xff;\n  mac[macpos+ 1] = (this.h[0] >>> 8) & 0xff;\n  mac[macpos+ 2] = (this.h[1] >>> 0) & 0xff;\n  mac[macpos+ 3] = (this.h[1] >>> 8) & 0xff;\n  mac[macpos+ 4] = (this.h[2] >>> 0) & 0xff;\n  mac[macpos+ 5] = (this.h[2] >>> 8) & 0xff;\n  mac[macpos+ 6] = (this.h[3] >>> 0) & 0xff;\n  mac[macpos+ 7] = (this.h[3] >>> 8) & 0xff;\n  mac[macpos+ 8] = (this.h[4] >>> 0) & 0xff;\n  mac[macpos+ 9] = (this.h[4] >>> 8) & 0xff;\n  mac[macpos+10] = (this.h[5] >>> 0) & 0xff;\n  mac[macpos+11] = (this.h[5] >>> 8) & 0xff;\n  mac[macpos+12] = (this.h[6] >>> 0) & 0xff;\n  mac[macpos+13] = (this.h[6] >>> 8) & 0xff;\n  mac[macpos+14] = (this.h[7] >>> 0) & 0xff;\n  mac[macpos+15] = (this.h[7] >>> 8) & 0xff;\n};\n\npoly1305.prototype.update = function(m, mpos, bytes) {\n  var i, want;\n\n  if (this.leftover) {\n    want = (16 - this.leftover);\n    if (want > bytes)\n      want = bytes;\n    for (i = 0; i < want; i++)\n      this.buffer[this.leftover + i] = m[mpos+i];\n    bytes -= want;\n    mpos += want;\n    this.leftover += want;\n    if (this.leftover < 16)\n      return;\n    this.blocks(this.buffer, 0, 16);\n    this.leftover = 0;\n  }\n\n  if (bytes >= 16) {\n    want = bytes - (bytes % 16);\n    this.blocks(m, mpos, want);\n    mpos += want;\n    bytes -= want;\n  }\n\n  if (bytes) {\n    for (i = 0; i < bytes; i++)\n      this.buffer[this.leftover + i] = m[mpos+i];\n    this.leftover += bytes;\n  }\n};\n\nfunction crypto_onetimeauth(out, outpos, m, mpos, n, k) {\n  var s = new poly1305(k);\n  s.update(m, mpos, n);\n  s.finish(out, outpos);\n  return 0;\n}\n\nfunction crypto_onetimeauth_verify(h, hpos, m, mpos, n, k) {\n  var x = new Uint8Array(16);\n  crypto_onetimeauth(x,0,m,mpos,n,k);\n  return crypto_verify_16(h,hpos,x,0);\n}\n\nfunction crypto_secretbox(c,m,d,n,k) {\n  var i;\n  if (d < 32) return -1;\n  crypto_stream_xor(c,0,m,0,d,n,k);\n  crypto_onetimeauth(c, 16, c, 32, d - 32, c);\n  for (i = 0; i < 16; i++) c[i] = 0;\n  return 0;\n}\n\nfunction crypto_secretbox_open(m,c,d,n,k) {\n  var i;\n  var x = new Uint8Array(32);\n  if (d < 32) return -1;\n  crypto_stream(x,0,32,n,k);\n  if (crypto_onetimeauth_verify(c, 16,c, 32,d - 32,x) !== 0) return -1;\n  crypto_stream_xor(m,0,c,0,d,n,k);\n  for (i = 0; i < 32; i++) m[i] = 0;\n  return 0;\n}\n\nfunction set25519(r, a) {\n  var i;\n  for (i = 0; i < 16; i++) r[i] = a[i]|0;\n}\n\nfunction car25519(o) {\n  var i, v, c = 1;\n  for (i = 0; i < 16; i++) {\n    v = o[i] + c + 65535;\n    c = Math.floor(v / 65536);\n    o[i] = v - c * 65536;\n  }\n  o[0] += c-1 + 37 * (c-1);\n}\n\nfunction sel25519(p, q, b) {\n  var t, c = ~(b-1);\n  for (var i = 0; i < 16; i++) {\n    t = c & (p[i] ^ q[i]);\n    p[i] ^= t;\n    q[i] ^= t;\n  }\n}\n\nfunction pack25519(o, n) {\n  var i, j, b;\n  var m = gf(), t = gf();\n  for (i = 0; i < 16; i++) t[i] = n[i];\n  car25519(t);\n  car25519(t);\n  car25519(t);\n  for (j = 0; j < 2; j++) {\n    m[0] = t[0] - 0xffed;\n    for (i = 1; i < 15; i++) {\n      m[i] = t[i] - 0xffff - ((m[i-1]>>16) & 1);\n      m[i-1] &= 0xffff;\n    }\n    m[15] = t[15] - 0x7fff - ((m[14]>>16) & 1);\n    b = (m[15]>>16) & 1;\n    m[14] &= 0xffff;\n    sel25519(t, m, 1-b);\n  }\n  for (i = 0; i < 16; i++) {\n    o[2*i] = t[i] & 0xff;\n    o[2*i+1] = t[i]>>8;\n  }\n}\n\nfunction neq25519(a, b) {\n  var c = new Uint8Array(32), d = new Uint8Array(32);\n  pack25519(c, a);\n  pack25519(d, b);\n  return crypto_verify_32(c, 0, d, 0);\n}\n\nfunction par25519(a) {\n  var d = new Uint8Array(32);\n  pack25519(d, a);\n  return d[0] & 1;\n}\n\nfunction unpack25519(o, n) {\n  var i;\n  for (i = 0; i < 16; i++) o[i] = n[2*i] + (n[2*i+1] << 8);\n  o[15] &= 0x7fff;\n}\n\nfunction A(o, a, b) {\n  for (var i = 0; i < 16; i++) o[i] = a[i] + b[i];\n}\n\nfunction Z(o, a, b) {\n  for (var i = 0; i < 16; i++) o[i] = a[i] - b[i];\n}\n\nfunction M(o, a, b) {\n  var v, c,\n     t0 = 0,  t1 = 0,  t2 = 0,  t3 = 0,  t4 = 0,  t5 = 0,  t6 = 0,  t7 = 0,\n     t8 = 0,  t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0,\n    t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0,\n    t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0,\n    b0 = b[0],\n    b1 = b[1],\n    b2 = b[2],\n    b3 = b[3],\n    b4 = b[4],\n    b5 = b[5],\n    b6 = b[6],\n    b7 = b[7],\n    b8 = b[8],\n    b9 = b[9],\n    b10 = b[10],\n    b11 = b[11],\n    b12 = b[12],\n    b13 = b[13],\n    b14 = b[14],\n    b15 = b[15];\n\n  v = a[0];\n  t0 += v * b0;\n  t1 += v * b1;\n  t2 += v * b2;\n  t3 += v * b3;\n  t4 += v * b4;\n  t5 += v * b5;\n  t6 += v * b6;\n  t7 += v * b7;\n  t8 += v * b8;\n  t9 += v * b9;\n  t10 += v * b10;\n  t11 += v * b11;\n  t12 += v * b12;\n  t13 += v * b13;\n  t14 += v * b14;\n  t15 += v * b15;\n  v = a[1];\n  t1 += v * b0;\n  t2 += v * b1;\n  t3 += v * b2;\n  t4 += v * b3;\n  t5 += v * b4;\n  t6 += v * b5;\n  t7 += v * b6;\n  t8 += v * b7;\n  t9 += v * b8;\n  t10 += v * b9;\n  t11 += v * b10;\n  t12 += v * b11;\n  t13 += v * b12;\n  t14 += v * b13;\n  t15 += v * b14;\n  t16 += v * b15;\n  v = a[2];\n  t2 += v * b0;\n  t3 += v * b1;\n  t4 += v * b2;\n  t5 += v * b3;\n  t6 += v * b4;\n  t7 += v * b5;\n  t8 += v * b6;\n  t9 += v * b7;\n  t10 += v * b8;\n  t11 += v * b9;\n  t12 += v * b10;\n  t13 += v * b11;\n  t14 += v * b12;\n  t15 += v * b13;\n  t16 += v * b14;\n  t17 += v * b15;\n  v = a[3];\n  t3 += v * b0;\n  t4 += v * b1;\n  t5 += v * b2;\n  t6 += v * b3;\n  t7 += v * b4;\n  t8 += v * b5;\n  t9 += v * b6;\n  t10 += v * b7;\n  t11 += v * b8;\n  t12 += v * b9;\n  t13 += v * b10;\n  t14 += v * b11;\n  t15 += v * b12;\n  t16 += v * b13;\n  t17 += v * b14;\n  t18 += v * b15;\n  v = a[4];\n  t4 += v * b0;\n  t5 += v * b1;\n  t6 += v * b2;\n  t7 += v * b3;\n  t8 += v * b4;\n  t9 += v * b5;\n  t10 += v * b6;\n  t11 += v * b7;\n  t12 += v * b8;\n  t13 += v * b9;\n  t14 += v * b10;\n  t15 += v * b11;\n  t16 += v * b12;\n  t17 += v * b13;\n  t18 += v * b14;\n  t19 += v * b15;\n  v = a[5];\n  t5 += v * b0;\n  t6 += v * b1;\n  t7 += v * b2;\n  t8 += v * b3;\n  t9 += v * b4;\n  t10 += v * b5;\n  t11 += v * b6;\n  t12 += v * b7;\n  t13 += v * b8;\n  t14 += v * b9;\n  t15 += v * b10;\n  t16 += v * b11;\n  t17 += v * b12;\n  t18 += v * b13;\n  t19 += v * b14;\n  t20 += v * b15;\n  v = a[6];\n  t6 += v * b0;\n  t7 += v * b1;\n  t8 += v * b2;\n  t9 += v * b3;\n  t10 += v * b4;\n  t11 += v * b5;\n  t12 += v * b6;\n  t13 += v * b7;\n  t14 += v * b8;\n  t15 += v * b9;\n  t16 += v * b10;\n  t17 += v * b11;\n  t18 += v * b12;\n  t19 += v * b13;\n  t20 += v * b14;\n  t21 += v * b15;\n  v = a[7];\n  t7 += v * b0;\n  t8 += v * b1;\n  t9 += v * b2;\n  t10 += v * b3;\n  t11 += v * b4;\n  t12 += v * b5;\n  t13 += v * b6;\n  t14 += v * b7;\n  t15 += v * b8;\n  t16 += v * b9;\n  t17 += v * b10;\n  t18 += v * b11;\n  t19 += v * b12;\n  t20 += v * b13;\n  t21 += v * b14;\n  t22 += v * b15;\n  v = a[8];\n  t8 += v * b0;\n  t9 += v * b1;\n  t10 += v * b2;\n  t11 += v * b3;\n  t12 += v * b4;\n  t13 += v * b5;\n  t14 += v * b6;\n  t15 += v * b7;\n  t16 += v * b8;\n  t17 += v * b9;\n  t18 += v * b10;\n  t19 += v * b11;\n  t20 += v * b12;\n  t21 += v * b13;\n  t22 += v * b14;\n  t23 += v * b15;\n  v = a[9];\n  t9 += v * b0;\n  t10 += v * b1;\n  t11 += v * b2;\n  t12 += v * b3;\n  t13 += v * b4;\n  t14 += v * b5;\n  t15 += v * b6;\n  t16 += v * b7;\n  t17 += v * b8;\n  t18 += v * b9;\n  t19 += v * b10;\n  t20 += v * b11;\n  t21 += v * b12;\n  t22 += v * b13;\n  t23 += v * b14;\n  t24 += v * b15;\n  v = a[10];\n  t10 += v * b0;\n  t11 += v * b1;\n  t12 += v * b2;\n  t13 += v * b3;\n  t14 += v * b4;\n  t15 += v * b5;\n  t16 += v * b6;\n  t17 += v * b7;\n  t18 += v * b8;\n  t19 += v * b9;\n  t20 += v * b10;\n  t21 += v * b11;\n  t22 += v * b12;\n  t23 += v * b13;\n  t24 += v * b14;\n  t25 += v * b15;\n  v = a[11];\n  t11 += v * b0;\n  t12 += v * b1;\n  t13 += v * b2;\n  t14 += v * b3;\n  t15 += v * b4;\n  t16 += v * b5;\n  t17 += v * b6;\n  t18 += v * b7;\n  t19 += v * b8;\n  t20 += v * b9;\n  t21 += v * b10;\n  t22 += v * b11;\n  t23 += v * b12;\n  t24 += v * b13;\n  t25 += v * b14;\n  t26 += v * b15;\n  v = a[12];\n  t12 += v * b0;\n  t13 += v * b1;\n  t14 += v * b2;\n  t15 += v * b3;\n  t16 += v * b4;\n  t17 += v * b5;\n  t18 += v * b6;\n  t19 += v * b7;\n  t20 += v * b8;\n  t21 += v * b9;\n  t22 += v * b10;\n  t23 += v * b11;\n  t24 += v * b12;\n  t25 += v * b13;\n  t26 += v * b14;\n  t27 += v * b15;\n  v = a[13];\n  t13 += v * b0;\n  t14 += v * b1;\n  t15 += v * b2;\n  t16 += v * b3;\n  t17 += v * b4;\n  t18 += v * b5;\n  t19 += v * b6;\n  t20 += v * b7;\n  t21 += v * b8;\n  t22 += v * b9;\n  t23 += v * b10;\n  t24 += v * b11;\n  t25 += v * b12;\n  t26 += v * b13;\n  t27 += v * b14;\n  t28 += v * b15;\n  v = a[14];\n  t14 += v * b0;\n  t15 += v * b1;\n  t16 += v * b2;\n  t17 += v * b3;\n  t18 += v * b4;\n  t19 += v * b5;\n  t20 += v * b6;\n  t21 += v * b7;\n  t22 += v * b8;\n  t23 += v * b9;\n  t24 += v * b10;\n  t25 += v * b11;\n  t26 += v * b12;\n  t27 += v * b13;\n  t28 += v * b14;\n  t29 += v * b15;\n  v = a[15];\n  t15 += v * b0;\n  t16 += v * b1;\n  t17 += v * b2;\n  t18 += v * b3;\n  t19 += v * b4;\n  t20 += v * b5;\n  t21 += v * b6;\n  t22 += v * b7;\n  t23 += v * b8;\n  t24 += v * b9;\n  t25 += v * b10;\n  t26 += v * b11;\n  t27 += v * b12;\n  t28 += v * b13;\n  t29 += v * b14;\n  t30 += v * b15;\n\n  t0  += 38 * t16;\n  t1  += 38 * t17;\n  t2  += 38 * t18;\n  t3  += 38 * t19;\n  t4  += 38 * t20;\n  t5  += 38 * t21;\n  t6  += 38 * t22;\n  t7  += 38 * t23;\n  t8  += 38 * t24;\n  t9  += 38 * t25;\n  t10 += 38 * t26;\n  t11 += 38 * t27;\n  t12 += 38 * t28;\n  t13 += 38 * t29;\n  t14 += 38 * t30;\n  // t15 left as is\n\n  // first car\n  c = 1;\n  v =  t0 + c + 65535; c = Math.floor(v / 65536);  t0 = v - c * 65536;\n  v =  t1 + c + 65535; c = Math.floor(v / 65536);  t1 = v - c * 65536;\n  v =  t2 + c + 65535; c = Math.floor(v / 65536);  t2 = v - c * 65536;\n  v =  t3 + c + 65535; c = Math.floor(v / 65536);  t3 = v - c * 65536;\n  v =  t4 + c + 65535; c = Math.floor(v / 65536);  t4 = v - c * 65536;\n  v =  t5 + c + 65535; c = Math.floor(v / 65536);  t5 = v - c * 65536;\n  v =  t6 + c + 65535; c = Math.floor(v / 65536);  t6 = v - c * 65536;\n  v =  t7 + c + 65535; c = Math.floor(v / 65536);  t7 = v - c * 65536;\n  v =  t8 + c + 65535; c = Math.floor(v / 65536);  t8 = v - c * 65536;\n  v =  t9 + c + 65535; c = Math.floor(v / 65536);  t9 = v - c * 65536;\n  v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n  v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n  v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n  v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n  v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n  v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n  t0 += c-1 + 37 * (c-1);\n\n  // second car\n  c = 1;\n  v =  t0 + c + 65535; c = Math.floor(v / 65536);  t0 = v - c * 65536;\n  v =  t1 + c + 65535; c = Math.floor(v / 65536);  t1 = v - c * 65536;\n  v =  t2 + c + 65535; c = Math.floor(v / 65536);  t2 = v - c * 65536;\n  v =  t3 + c + 65535; c = Math.floor(v / 65536);  t3 = v - c * 65536;\n  v =  t4 + c + 65535; c = Math.floor(v / 65536);  t4 = v - c * 65536;\n  v =  t5 + c + 65535; c = Math.floor(v / 65536);  t5 = v - c * 65536;\n  v =  t6 + c + 65535; c = Math.floor(v / 65536);  t6 = v - c * 65536;\n  v =  t7 + c + 65535; c = Math.floor(v / 65536);  t7 = v - c * 65536;\n  v =  t8 + c + 65535; c = Math.floor(v / 65536);  t8 = v - c * 65536;\n  v =  t9 + c + 65535; c = Math.floor(v / 65536);  t9 = v - c * 65536;\n  v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n  v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n  v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n  v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n  v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n  v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n  t0 += c-1 + 37 * (c-1);\n\n  o[ 0] = t0;\n  o[ 1] = t1;\n  o[ 2] = t2;\n  o[ 3] = t3;\n  o[ 4] = t4;\n  o[ 5] = t5;\n  o[ 6] = t6;\n  o[ 7] = t7;\n  o[ 8] = t8;\n  o[ 9] = t9;\n  o[10] = t10;\n  o[11] = t11;\n  o[12] = t12;\n  o[13] = t13;\n  o[14] = t14;\n  o[15] = t15;\n}\n\nfunction S(o, a) {\n  M(o, a, a);\n}\n\nfunction inv25519(o, i) {\n  var c = gf();\n  var a;\n  for (a = 0; a < 16; a++) c[a] = i[a];\n  for (a = 253; a >= 0; a--) {\n    S(c, c);\n    if(a !== 2 && a !== 4) M(c, c, i);\n  }\n  for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction pow2523(o, i) {\n  var c = gf();\n  var a;\n  for (a = 0; a < 16; a++) c[a] = i[a];\n  for (a = 250; a >= 0; a--) {\n      S(c, c);\n      if(a !== 1) M(c, c, i);\n  }\n  for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction crypto_scalarmult(q, n, p) {\n  var z = new Uint8Array(32);\n  var x = new Float64Array(80), r, i;\n  var a = gf(), b = gf(), c = gf(),\n      d = gf(), e = gf(), f = gf();\n  for (i = 0; i < 31; i++) z[i] = n[i];\n  z[31]=(n[31]&127)|64;\n  z[0]&=248;\n  unpack25519(x,p);\n  for (i = 0; i < 16; i++) {\n    b[i]=x[i];\n    d[i]=a[i]=c[i]=0;\n  }\n  a[0]=d[0]=1;\n  for (i=254; i>=0; --i) {\n    r=(z[i>>>3]>>>(i&7))&1;\n    sel25519(a,b,r);\n    sel25519(c,d,r);\n    A(e,a,c);\n    Z(a,a,c);\n    A(c,b,d);\n    Z(b,b,d);\n    S(d,e);\n    S(f,a);\n    M(a,c,a);\n    M(c,b,e);\n    A(e,a,c);\n    Z(a,a,c);\n    S(b,a);\n    Z(c,d,f);\n    M(a,c,_121665);\n    A(a,a,d);\n    M(c,c,a);\n    M(a,d,f);\n    M(d,b,x);\n    S(b,e);\n    sel25519(a,b,r);\n    sel25519(c,d,r);\n  }\n  for (i = 0; i < 16; i++) {\n    x[i+16]=a[i];\n    x[i+32]=c[i];\n    x[i+48]=b[i];\n    x[i+64]=d[i];\n  }\n  var x32 = x.subarray(32);\n  var x16 = x.subarray(16);\n  inv25519(x32,x32);\n  M(x16,x16,x32);\n  pack25519(q,x16);\n  return 0;\n}\n\nfunction crypto_scalarmult_base(q, n) {\n  return crypto_scalarmult(q, n, _9);\n}\n\nfunction crypto_box_keypair(y, x) {\n  randombytes(x, 32);\n  return crypto_scalarmult_base(y, x);\n}\n\nfunction crypto_box_beforenm(k, y, x) {\n  var s = new Uint8Array(32);\n  crypto_scalarmult(s, x, y);\n  return crypto_core_hsalsa20(k, _0, s, sigma);\n}\n\nvar crypto_box_afternm = crypto_secretbox;\nvar crypto_box_open_afternm = crypto_secretbox_open;\n\nfunction crypto_box(c, m, d, n, y, x) {\n  var k = new Uint8Array(32);\n  crypto_box_beforenm(k, y, x);\n  return crypto_box_afternm(c, m, d, n, k);\n}\n\nfunction crypto_box_open(m, c, d, n, y, x) {\n  var k = new Uint8Array(32);\n  crypto_box_beforenm(k, y, x);\n  return crypto_box_open_afternm(m, c, d, n, k);\n}\n\nvar K = [\n  0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n  0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n  0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n  0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n  0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n  0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n  0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n  0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n  0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n  0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n  0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n  0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n  0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n  0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n  0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n  0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n  0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n  0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n  0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n  0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n  0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n  0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n  0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n  0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n  0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n  0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n  0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n  0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n  0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n  0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n  0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n  0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n  0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n  0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n  0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n  0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n  0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n  0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n  0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n  0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction crypto_hashblocks_hl(hh, hl, m, n) {\n  var wh = new Int32Array(16), wl = new Int32Array(16),\n      bh0, bh1, bh2, bh3, bh4, bh5, bh6, bh7,\n      bl0, bl1, bl2, bl3, bl4, bl5, bl6, bl7,\n      th, tl, i, j, h, l, a, b, c, d;\n\n  var ah0 = hh[0],\n      ah1 = hh[1],\n      ah2 = hh[2],\n      ah3 = hh[3],\n      ah4 = hh[4],\n      ah5 = hh[5],\n      ah6 = hh[6],\n      ah7 = hh[7],\n\n      al0 = hl[0],\n      al1 = hl[1],\n      al2 = hl[2],\n      al3 = hl[3],\n      al4 = hl[4],\n      al5 = hl[5],\n      al6 = hl[6],\n      al7 = hl[7];\n\n  var pos = 0;\n  while (n >= 128) {\n    for (i = 0; i < 16; i++) {\n      j = 8 * i + pos;\n      wh[i] = (m[j+0] << 24) | (m[j+1] << 16) | (m[j+2] << 8) | m[j+3];\n      wl[i] = (m[j+4] << 24) | (m[j+5] << 16) | (m[j+6] << 8) | m[j+7];\n    }\n    for (i = 0; i < 80; i++) {\n      bh0 = ah0;\n      bh1 = ah1;\n      bh2 = ah2;\n      bh3 = ah3;\n      bh4 = ah4;\n      bh5 = ah5;\n      bh6 = ah6;\n      bh7 = ah7;\n\n      bl0 = al0;\n      bl1 = al1;\n      bl2 = al2;\n      bl3 = al3;\n      bl4 = al4;\n      bl5 = al5;\n      bl6 = al6;\n      bl7 = al7;\n\n      // add\n      h = ah7;\n      l = al7;\n\n      a = l & 0xffff; b = l >>> 16;\n      c = h & 0xffff; d = h >>> 16;\n\n      // Sigma1\n      h = ((ah4 >>> 14) | (al4 << (32-14))) ^ ((ah4 >>> 18) | (al4 << (32-18))) ^ ((al4 >>> (41-32)) | (ah4 << (32-(41-32))));\n      l = ((al4 >>> 14) | (ah4 << (32-14))) ^ ((al4 >>> 18) | (ah4 << (32-18))) ^ ((ah4 >>> (41-32)) | (al4 << (32-(41-32))));\n\n      a += l & 0xffff; b += l >>> 16;\n      c += h & 0xffff; d += h >>> 16;\n\n      // Ch\n      h = (ah4 & ah5) ^ (~ah4 & ah6);\n      l = (al4 & al5) ^ (~al4 & al6);\n\n      a += l & 0xffff; b += l >>> 16;\n      c += h & 0xffff; d += h >>> 16;\n\n      // K\n      h = K[i*2];\n      l = K[i*2+1];\n\n      a += l & 0xffff; b += l >>> 16;\n      c += h & 0xffff; d += h >>> 16;\n\n      // w\n      h = wh[i%16];\n      l = wl[i%16];\n\n      a += l & 0xffff; b += l >>> 16;\n      c += h & 0xffff; d += h >>> 16;\n\n      b += a >>> 16;\n      c += b >>> 16;\n      d += c >>> 16;\n\n      th = c & 0xffff | d << 16;\n      tl = a & 0xffff | b << 16;\n\n      // add\n      h = th;\n      l = tl;\n\n      a = l & 0xffff; b = l >>> 16;\n      c = h & 0xffff; d = h >>> 16;\n\n      // Sigma0\n      h = ((ah0 >>> 28) | (al0 << (32-28))) ^ ((al0 >>> (34-32)) | (ah0 << (32-(34-32)))) ^ ((al0 >>> (39-32)) | (ah0 << (32-(39-32))));\n      l = ((al0 >>> 28) | (ah0 << (32-28))) ^ ((ah0 >>> (34-32)) | (al0 << (32-(34-32)))) ^ ((ah0 >>> (39-32)) | (al0 << (32-(39-32))));\n\n      a += l & 0xffff; b += l >>> 16;\n      c += h & 0xffff; d += h >>> 16;\n\n      // Maj\n      h = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2);\n      l = (al0 & al1) ^ (al0 & al2) ^ (al1 & al2);\n\n      a += l & 0xffff; b += l >>> 16;\n      c += h & 0xffff; d += h >>> 16;\n\n      b += a >>> 16;\n      c += b >>> 16;\n      d += c >>> 16;\n\n      bh7 = (c & 0xffff) | (d << 16);\n      bl7 = (a & 0xffff) | (b << 16);\n\n      // add\n      h = bh3;\n      l = bl3;\n\n      a = l & 0xffff; b = l >>> 16;\n      c = h & 0xffff; d = h >>> 16;\n\n      h = th;\n      l = tl;\n\n      a += l & 0xffff; b += l >>> 16;\n      c += h & 0xffff; d += h >>> 16;\n\n      b += a >>> 16;\n      c += b >>> 16;\n      d += c >>> 16;\n\n      bh3 = (c & 0xffff) | (d << 16);\n      bl3 = (a & 0xffff) | (b << 16);\n\n      ah1 = bh0;\n      ah2 = bh1;\n      ah3 = bh2;\n      ah4 = bh3;\n      ah5 = bh4;\n      ah6 = bh5;\n      ah7 = bh6;\n      ah0 = bh7;\n\n      al1 = bl0;\n      al2 = bl1;\n      al3 = bl2;\n      al4 = bl3;\n      al5 = bl4;\n      al6 = bl5;\n      al7 = bl6;\n      al0 = bl7;\n\n      if (i%16 === 15) {\n        for (j = 0; j < 16; j++) {\n          // add\n          h = wh[j];\n          l = wl[j];\n\n          a = l & 0xffff; b = l >>> 16;\n          c = h & 0xffff; d = h >>> 16;\n\n          h = wh[(j+9)%16];\n          l = wl[(j+9)%16];\n\n          a += l & 0xffff; b += l >>> 16;\n          c += h & 0xffff; d += h >>> 16;\n\n          // sigma0\n          th = wh[(j+1)%16];\n          tl = wl[(j+1)%16];\n          h = ((th >>> 1) | (tl << (32-1))) ^ ((th >>> 8) | (tl << (32-8))) ^ (th >>> 7);\n          l = ((tl >>> 1) | (th << (32-1))) ^ ((tl >>> 8) | (th << (32-8))) ^ ((tl >>> 7) | (th << (32-7)));\n\n          a += l & 0xffff; b += l >>> 16;\n          c += h & 0xffff; d += h >>> 16;\n\n          // sigma1\n          th = wh[(j+14)%16];\n          tl = wl[(j+14)%16];\n          h = ((th >>> 19) | (tl << (32-19))) ^ ((tl >>> (61-32)) | (th << (32-(61-32)))) ^ (th >>> 6);\n          l = ((tl >>> 19) | (th << (32-19))) ^ ((th >>> (61-32)) | (tl << (32-(61-32)))) ^ ((tl >>> 6) | (th << (32-6)));\n\n          a += l & 0xffff; b += l >>> 16;\n          c += h & 0xffff; d += h >>> 16;\n\n          b += a >>> 16;\n          c += b >>> 16;\n          d += c >>> 16;\n\n          wh[j] = (c & 0xffff) | (d << 16);\n          wl[j] = (a & 0xffff) | (b << 16);\n        }\n      }\n    }\n\n    // add\n    h = ah0;\n    l = al0;\n\n    a = l & 0xffff; b = l >>> 16;\n    c = h & 0xffff; d = h >>> 16;\n\n    h = hh[0];\n    l = hl[0];\n\n    a += l & 0xffff; b += l >>> 16;\n    c += h & 0xffff; d += h >>> 16;\n\n    b += a >>> 16;\n    c += b >>> 16;\n    d += c >>> 16;\n\n    hh[0] = ah0 = (c & 0xffff) | (d << 16);\n    hl[0] = al0 = (a & 0xffff) | (b << 16);\n\n    h = ah1;\n    l = al1;\n\n    a = l & 0xffff; b = l >>> 16;\n    c = h & 0xffff; d = h >>> 16;\n\n    h = hh[1];\n    l = hl[1];\n\n    a += l & 0xffff; b += l >>> 16;\n    c += h & 0xffff; d += h >>> 16;\n\n    b += a >>> 16;\n    c += b >>> 16;\n    d += c >>> 16;\n\n    hh[1] = ah1 = (c & 0xffff) | (d << 16);\n    hl[1] = al1 = (a & 0xffff) | (b << 16);\n\n    h = ah2;\n    l = al2;\n\n    a = l & 0xffff; b = l >>> 16;\n    c = h & 0xffff; d = h >>> 16;\n\n    h = hh[2];\n    l = hl[2];\n\n    a += l & 0xffff; b += l >>> 16;\n    c += h & 0xffff; d += h >>> 16;\n\n    b += a >>> 16;\n    c += b >>> 16;\n    d += c >>> 16;\n\n    hh[2] = ah2 = (c & 0xffff) | (d << 16);\n    hl[2] = al2 = (a & 0xffff) | (b << 16);\n\n    h = ah3;\n    l = al3;\n\n    a = l & 0xffff; b = l >>> 16;\n    c = h & 0xffff; d = h >>> 16;\n\n    h = hh[3];\n    l = hl[3];\n\n    a += l & 0xffff; b += l >>> 16;\n    c += h & 0xffff; d += h >>> 16;\n\n    b += a >>> 16;\n    c += b >>> 16;\n    d += c >>> 16;\n\n    hh[3] = ah3 = (c & 0xffff) | (d << 16);\n    hl[3] = al3 = (a & 0xffff) | (b << 16);\n\n    h = ah4;\n    l = al4;\n\n    a = l & 0xffff; b = l >>> 16;\n    c = h & 0xffff; d = h >>> 16;\n\n    h = hh[4];\n    l = hl[4];\n\n    a += l & 0xffff; b += l >>> 16;\n    c += h & 0xffff; d += h >>> 16;\n\n    b += a >>> 16;\n    c += b >>> 16;\n    d += c >>> 16;\n\n    hh[4] = ah4 = (c & 0xffff) | (d << 16);\n    hl[4] = al4 = (a & 0xffff) | (b << 16);\n\n    h = ah5;\n    l = al5;\n\n    a = l & 0xffff; b = l >>> 16;\n    c = h & 0xffff; d = h >>> 16;\n\n    h = hh[5];\n    l = hl[5];\n\n    a += l & 0xffff; b += l >>> 16;\n    c += h & 0xffff; d += h >>> 16;\n\n    b += a >>> 16;\n    c += b >>> 16;\n    d += c >>> 16;\n\n    hh[5] = ah5 = (c & 0xffff) | (d << 16);\n    hl[5] = al5 = (a & 0xffff) | (b << 16);\n\n    h = ah6;\n    l = al6;\n\n    a = l & 0xffff; b = l >>> 16;\n    c = h & 0xffff; d = h >>> 16;\n\n    h = hh[6];\n    l = hl[6];\n\n    a += l & 0xffff; b += l >>> 16;\n    c += h & 0xffff; d += h >>> 16;\n\n    b += a >>> 16;\n    c += b >>> 16;\n    d += c >>> 16;\n\n    hh[6] = ah6 = (c & 0xffff) | (d << 16);\n    hl[6] = al6 = (a & 0xffff) | (b << 16);\n\n    h = ah7;\n    l = al7;\n\n    a = l & 0xffff; b = l >>> 16;\n    c = h & 0xffff; d = h >>> 16;\n\n    h = hh[7];\n    l = hl[7];\n\n    a += l & 0xffff; b += l >>> 16;\n    c += h & 0xffff; d += h >>> 16;\n\n    b += a >>> 16;\n    c += b >>> 16;\n    d += c >>> 16;\n\n    hh[7] = ah7 = (c & 0xffff) | (d << 16);\n    hl[7] = al7 = (a & 0xffff) | (b << 16);\n\n    pos += 128;\n    n -= 128;\n  }\n\n  return n;\n}\n\nfunction crypto_hash(out, m, n) {\n  var hh = new Int32Array(8),\n      hl = new Int32Array(8),\n      x = new Uint8Array(256),\n      i, b = n;\n\n  hh[0] = 0x6a09e667;\n  hh[1] = 0xbb67ae85;\n  hh[2] = 0x3c6ef372;\n  hh[3] = 0xa54ff53a;\n  hh[4] = 0x510e527f;\n  hh[5] = 0x9b05688c;\n  hh[6] = 0x1f83d9ab;\n  hh[7] = 0x5be0cd19;\n\n  hl[0] = 0xf3bcc908;\n  hl[1] = 0x84caa73b;\n  hl[2] = 0xfe94f82b;\n  hl[3] = 0x5f1d36f1;\n  hl[4] = 0xade682d1;\n  hl[5] = 0x2b3e6c1f;\n  hl[6] = 0xfb41bd6b;\n  hl[7] = 0x137e2179;\n\n  crypto_hashblocks_hl(hh, hl, m, n);\n  n %= 128;\n\n  for (i = 0; i < n; i++) x[i] = m[b-n+i];\n  x[n] = 128;\n\n  n = 256-128*(n<112?1:0);\n  x[n-9] = 0;\n  ts64(x, n-8,  (b / 0x20000000) | 0, b << 3);\n  crypto_hashblocks_hl(hh, hl, x, n);\n\n  for (i = 0; i < 8; i++) ts64(out, 8*i, hh[i], hl[i]);\n\n  return 0;\n}\n\nfunction add(p, q) {\n  var a = gf(), b = gf(), c = gf(),\n      d = gf(), e = gf(), f = gf(),\n      g = gf(), h = gf(), t = gf();\n\n  Z(a, p[1], p[0]);\n  Z(t, q[1], q[0]);\n  M(a, a, t);\n  A(b, p[0], p[1]);\n  A(t, q[0], q[1]);\n  M(b, b, t);\n  M(c, p[3], q[3]);\n  M(c, c, D2);\n  M(d, p[2], q[2]);\n  A(d, d, d);\n  Z(e, b, a);\n  Z(f, d, c);\n  A(g, d, c);\n  A(h, b, a);\n\n  M(p[0], e, f);\n  M(p[1], h, g);\n  M(p[2], g, f);\n  M(p[3], e, h);\n}\n\nfunction cswap(p, q, b) {\n  var i;\n  for (i = 0; i < 4; i++) {\n    sel25519(p[i], q[i], b);\n  }\n}\n\nfunction pack(r, p) {\n  var tx = gf(), ty = gf(), zi = gf();\n  inv25519(zi, p[2]);\n  M(tx, p[0], zi);\n  M(ty, p[1], zi);\n  pack25519(r, ty);\n  r[31] ^= par25519(tx) << 7;\n}\n\nfunction scalarmult(p, q, s) {\n  var b, i;\n  set25519(p[0], gf0);\n  set25519(p[1], gf1);\n  set25519(p[2], gf1);\n  set25519(p[3], gf0);\n  for (i = 255; i >= 0; --i) {\n    b = (s[(i/8)|0] >> (i&7)) & 1;\n    cswap(p, q, b);\n    add(q, p);\n    add(p, p);\n    cswap(p, q, b);\n  }\n}\n\nfunction scalarbase(p, s) {\n  var q = [gf(), gf(), gf(), gf()];\n  set25519(q[0], X);\n  set25519(q[1], Y);\n  set25519(q[2], gf1);\n  M(q[3], X, Y);\n  scalarmult(p, q, s);\n}\n\nfunction crypto_sign_keypair(pk, sk, seeded) {\n  var d = new Uint8Array(64);\n  var p = [gf(), gf(), gf(), gf()];\n  var i;\n\n  if (!seeded) randombytes(sk, 32);\n  crypto_hash(d, sk, 32);\n  d[0] &= 248;\n  d[31] &= 127;\n  d[31] |= 64;\n\n  scalarbase(p, d);\n  pack(pk, p);\n\n  for (i = 0; i < 32; i++) sk[i+32] = pk[i];\n  return 0;\n}\n\nvar L = new Float64Array([0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10]);\n\nfunction modL(r, x) {\n  var carry, i, j, k;\n  for (i = 63; i >= 32; --i) {\n    carry = 0;\n    for (j = i - 32, k = i - 12; j < k; ++j) {\n      x[j] += carry - 16 * x[i] * L[j - (i - 32)];\n      carry = Math.floor((x[j] + 128) / 256);\n      x[j] -= carry * 256;\n    }\n    x[j] += carry;\n    x[i] = 0;\n  }\n  carry = 0;\n  for (j = 0; j < 32; j++) {\n    x[j] += carry - (x[31] >> 4) * L[j];\n    carry = x[j] >> 8;\n    x[j] &= 255;\n  }\n  for (j = 0; j < 32; j++) x[j] -= carry * L[j];\n  for (i = 0; i < 32; i++) {\n    x[i+1] += x[i] >> 8;\n    r[i] = x[i] & 255;\n  }\n}\n\nfunction reduce(r) {\n  var x = new Float64Array(64), i;\n  for (i = 0; i < 64; i++) x[i] = r[i];\n  for (i = 0; i < 64; i++) r[i] = 0;\n  modL(r, x);\n}\n\n// Note: difference from C - smlen returned, not passed as argument.\nfunction crypto_sign(sm, m, n, sk) {\n  var d = new Uint8Array(64), h = new Uint8Array(64), r = new Uint8Array(64);\n  var i, j, x = new Float64Array(64);\n  var p = [gf(), gf(), gf(), gf()];\n\n  crypto_hash(d, sk, 32);\n  d[0] &= 248;\n  d[31] &= 127;\n  d[31] |= 64;\n\n  var smlen = n + 64;\n  for (i = 0; i < n; i++) sm[64 + i] = m[i];\n  for (i = 0; i < 32; i++) sm[32 + i] = d[32 + i];\n\n  crypto_hash(r, sm.subarray(32), n+32);\n  reduce(r);\n  scalarbase(p, r);\n  pack(sm, p);\n\n  for (i = 32; i < 64; i++) sm[i] = sk[i];\n  crypto_hash(h, sm, n + 64);\n  reduce(h);\n\n  for (i = 0; i < 64; i++) x[i] = 0;\n  for (i = 0; i < 32; i++) x[i] = r[i];\n  for (i = 0; i < 32; i++) {\n    for (j = 0; j < 32; j++) {\n      x[i+j] += h[i] * d[j];\n    }\n  }\n\n  modL(sm.subarray(32), x);\n  return smlen;\n}\n\nfunction unpackneg(r, p) {\n  var t = gf(), chk = gf(), num = gf(),\n      den = gf(), den2 = gf(), den4 = gf(),\n      den6 = gf();\n\n  set25519(r[2], gf1);\n  unpack25519(r[1], p);\n  S(num, r[1]);\n  M(den, num, D);\n  Z(num, num, r[2]);\n  A(den, r[2], den);\n\n  S(den2, den);\n  S(den4, den2);\n  M(den6, den4, den2);\n  M(t, den6, num);\n  M(t, t, den);\n\n  pow2523(t, t);\n  M(t, t, num);\n  M(t, t, den);\n  M(t, t, den);\n  M(r[0], t, den);\n\n  S(chk, r[0]);\n  M(chk, chk, den);\n  if (neq25519(chk, num)) M(r[0], r[0], I);\n\n  S(chk, r[0]);\n  M(chk, chk, den);\n  if (neq25519(chk, num)) return -1;\n\n  if (par25519(r[0]) === (p[31]>>7)) Z(r[0], gf0, r[0]);\n\n  M(r[3], r[0], r[1]);\n  return 0;\n}\n\nfunction crypto_sign_open(m, sm, n, pk) {\n  var i;\n  var t = new Uint8Array(32), h = new Uint8Array(64);\n  var p = [gf(), gf(), gf(), gf()],\n      q = [gf(), gf(), gf(), gf()];\n\n  if (n < 64) return -1;\n\n  if (unpackneg(q, pk)) return -1;\n\n  for (i = 0; i < n; i++) m[i] = sm[i];\n  for (i = 0; i < 32; i++) m[i+32] = pk[i];\n  crypto_hash(h, m, n);\n  reduce(h);\n  scalarmult(p, q, h);\n\n  scalarbase(q, sm.subarray(32));\n  add(p, q);\n  pack(t, p);\n\n  n -= 64;\n  if (crypto_verify_32(sm, 0, t, 0)) {\n    for (i = 0; i < n; i++) m[i] = 0;\n    return -1;\n  }\n\n  for (i = 0; i < n; i++) m[i] = sm[i + 64];\n  return n;\n}\n\nvar crypto_secretbox_KEYBYTES = 32,\n    crypto_secretbox_NONCEBYTES = 24,\n    crypto_secretbox_ZEROBYTES = 32,\n    crypto_secretbox_BOXZEROBYTES = 16,\n    crypto_scalarmult_BYTES = 32,\n    crypto_scalarmult_SCALARBYTES = 32,\n    crypto_box_PUBLICKEYBYTES = 32,\n    crypto_box_SECRETKEYBYTES = 32,\n    crypto_box_BEFORENMBYTES = 32,\n    crypto_box_NONCEBYTES = crypto_secretbox_NONCEBYTES,\n    crypto_box_ZEROBYTES = crypto_secretbox_ZEROBYTES,\n    crypto_box_BOXZEROBYTES = crypto_secretbox_BOXZEROBYTES,\n    crypto_sign_BYTES = 64,\n    crypto_sign_PUBLICKEYBYTES = 32,\n    crypto_sign_SECRETKEYBYTES = 64,\n    crypto_sign_SEEDBYTES = 32,\n    crypto_hash_BYTES = 64;\n\nnacl.lowlevel = {\n  crypto_core_hsalsa20: crypto_core_hsalsa20,\n  crypto_stream_xor: crypto_stream_xor,\n  crypto_stream: crypto_stream,\n  crypto_stream_salsa20_xor: crypto_stream_salsa20_xor,\n  crypto_stream_salsa20: crypto_stream_salsa20,\n  crypto_onetimeauth: crypto_onetimeauth,\n  crypto_onetimeauth_verify: crypto_onetimeauth_verify,\n  crypto_verify_16: crypto_verify_16,\n  crypto_verify_32: crypto_verify_32,\n  crypto_secretbox: crypto_secretbox,\n  crypto_secretbox_open: crypto_secretbox_open,\n  crypto_scalarmult: crypto_scalarmult,\n  crypto_scalarmult_base: crypto_scalarmult_base,\n  crypto_box_beforenm: crypto_box_beforenm,\n  crypto_box_afternm: crypto_box_afternm,\n  crypto_box: crypto_box,\n  crypto_box_open: crypto_box_open,\n  crypto_box_keypair: crypto_box_keypair,\n  crypto_hash: crypto_hash,\n  crypto_sign: crypto_sign,\n  crypto_sign_keypair: crypto_sign_keypair,\n  crypto_sign_open: crypto_sign_open,\n\n  crypto_secretbox_KEYBYTES: crypto_secretbox_KEYBYTES,\n  crypto_secretbox_NONCEBYTES: crypto_secretbox_NONCEBYTES,\n  crypto_secretbox_ZEROBYTES: crypto_secretbox_ZEROBYTES,\n  crypto_secretbox_BOXZEROBYTES: crypto_secretbox_BOXZEROBYTES,\n  crypto_scalarmult_BYTES: crypto_scalarmult_BYTES,\n  crypto_scalarmult_SCALARBYTES: crypto_scalarmult_SCALARBYTES,\n  crypto_box_PUBLICKEYBYTES: crypto_box_PUBLICKEYBYTES,\n  crypto_box_SECRETKEYBYTES: crypto_box_SECRETKEYBYTES,\n  crypto_box_BEFORENMBYTES: crypto_box_BEFORENMBYTES,\n  crypto_box_NONCEBYTES: crypto_box_NONCEBYTES,\n  crypto_box_ZEROBYTES: crypto_box_ZEROBYTES,\n  crypto_box_BOXZEROBYTES: crypto_box_BOXZEROBYTES,\n  crypto_sign_BYTES: crypto_sign_BYTES,\n  crypto_sign_PUBLICKEYBYTES: crypto_sign_PUBLICKEYBYTES,\n  crypto_sign_SECRETKEYBYTES: crypto_sign_SECRETKEYBYTES,\n  crypto_sign_SEEDBYTES: crypto_sign_SEEDBYTES,\n  crypto_hash_BYTES: crypto_hash_BYTES,\n\n  gf: gf,\n  D: D,\n  L: L,\n  pack25519: pack25519,\n  unpack25519: unpack25519,\n  M: M,\n  A: A,\n  S: S,\n  Z: Z,\n  pow2523: pow2523,\n  add: add,\n  set25519: set25519,\n  modL: modL,\n  scalarmult: scalarmult,\n  scalarbase: scalarbase,\n};\n\n/* High-level API */\n\nfunction checkLengths(k, n) {\n  if (k.length !== crypto_secretbox_KEYBYTES) throw new Error('bad key size');\n  if (n.length !== crypto_secretbox_NONCEBYTES) throw new Error('bad nonce size');\n}\n\nfunction checkBoxLengths(pk, sk) {\n  if (pk.length !== crypto_box_PUBLICKEYBYTES) throw new Error('bad public key size');\n  if (sk.length !== crypto_box_SECRETKEYBYTES) throw new Error('bad secret key size');\n}\n\nfunction checkArrayTypes() {\n  for (var i = 0; i < arguments.length; i++) {\n    if (!(arguments[i] instanceof Uint8Array))\n      throw new TypeError('unexpected type, use Uint8Array');\n  }\n}\n\nfunction cleanup(arr) {\n  for (var i = 0; i < arr.length; i++) arr[i] = 0;\n}\n\nnacl.randomBytes = function(n) {\n  var b = new Uint8Array(n);\n  randombytes(b, n);\n  return b;\n};\n\nnacl.secretbox = function(msg, nonce, key) {\n  checkArrayTypes(msg, nonce, key);\n  checkLengths(key, nonce);\n  var m = new Uint8Array(crypto_secretbox_ZEROBYTES + msg.length);\n  var c = new Uint8Array(m.length);\n  for (var i = 0; i < msg.length; i++) m[i+crypto_secretbox_ZEROBYTES] = msg[i];\n  crypto_secretbox(c, m, m.length, nonce, key);\n  return c.subarray(crypto_secretbox_BOXZEROBYTES);\n};\n\nnacl.secretbox.open = function(box, nonce, key) {\n  checkArrayTypes(box, nonce, key);\n  checkLengths(key, nonce);\n  var c = new Uint8Array(crypto_secretbox_BOXZEROBYTES + box.length);\n  var m = new Uint8Array(c.length);\n  for (var i = 0; i < box.length; i++) c[i+crypto_secretbox_BOXZEROBYTES] = box[i];\n  if (c.length < 32) return null;\n  if (crypto_secretbox_open(m, c, c.length, nonce, key) !== 0) return null;\n  return m.subarray(crypto_secretbox_ZEROBYTES);\n};\n\nnacl.secretbox.keyLength = crypto_secretbox_KEYBYTES;\nnacl.secretbox.nonceLength = crypto_secretbox_NONCEBYTES;\nnacl.secretbox.overheadLength = crypto_secretbox_BOXZEROBYTES;\n\nnacl.scalarMult = function(n, p) {\n  checkArrayTypes(n, p);\n  if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n  if (p.length !== crypto_scalarmult_BYTES) throw new Error('bad p size');\n  var q = new Uint8Array(crypto_scalarmult_BYTES);\n  crypto_scalarmult(q, n, p);\n  return q;\n};\n\nnacl.scalarMult.base = function(n) {\n  checkArrayTypes(n);\n  if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n  var q = new Uint8Array(crypto_scalarmult_BYTES);\n  crypto_scalarmult_base(q, n);\n  return q;\n};\n\nnacl.scalarMult.scalarLength = crypto_scalarmult_SCALARBYTES;\nnacl.scalarMult.groupElementLength = crypto_scalarmult_BYTES;\n\nnacl.box = function(msg, nonce, publicKey, secretKey) {\n  var k = nacl.box.before(publicKey, secretKey);\n  return nacl.secretbox(msg, nonce, k);\n};\n\nnacl.box.before = function(publicKey, secretKey) {\n  checkArrayTypes(publicKey, secretKey);\n  checkBoxLengths(publicKey, secretKey);\n  var k = new Uint8Array(crypto_box_BEFORENMBYTES);\n  crypto_box_beforenm(k, publicKey, secretKey);\n  return k;\n};\n\nnacl.box.after = nacl.secretbox;\n\nnacl.box.open = function(msg, nonce, publicKey, secretKey) {\n  var k = nacl.box.before(publicKey, secretKey);\n  return nacl.secretbox.open(msg, nonce, k);\n};\n\nnacl.box.open.after = nacl.secretbox.open;\n\nnacl.box.keyPair = function() {\n  var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n  var sk = new Uint8Array(crypto_box_SECRETKEYBYTES);\n  crypto_box_keypair(pk, sk);\n  return {publicKey: pk, secretKey: sk};\n};\n\nnacl.box.keyPair.fromSecretKey = function(secretKey) {\n  checkArrayTypes(secretKey);\n  if (secretKey.length !== crypto_box_SECRETKEYBYTES)\n    throw new Error('bad secret key size');\n  var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n  crypto_scalarmult_base(pk, secretKey);\n  return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.box.publicKeyLength = crypto_box_PUBLICKEYBYTES;\nnacl.box.secretKeyLength = crypto_box_SECRETKEYBYTES;\nnacl.box.sharedKeyLength = crypto_box_BEFORENMBYTES;\nnacl.box.nonceLength = crypto_box_NONCEBYTES;\nnacl.box.overheadLength = nacl.secretbox.overheadLength;\n\nnacl.sign = function(msg, secretKey) {\n  checkArrayTypes(msg, secretKey);\n  if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n    throw new Error('bad secret key size');\n  var signedMsg = new Uint8Array(crypto_sign_BYTES+msg.length);\n  crypto_sign(signedMsg, msg, msg.length, secretKey);\n  return signedMsg;\n};\n\nnacl.sign.open = function(signedMsg, publicKey) {\n  checkArrayTypes(signedMsg, publicKey);\n  if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n    throw new Error('bad public key size');\n  var tmp = new Uint8Array(signedMsg.length);\n  var mlen = crypto_sign_open(tmp, signedMsg, signedMsg.length, publicKey);\n  if (mlen < 0) return null;\n  var m = new Uint8Array(mlen);\n  for (var i = 0; i < m.length; i++) m[i] = tmp[i];\n  return m;\n};\n\nnacl.sign.detached = function(msg, secretKey) {\n  var signedMsg = nacl.sign(msg, secretKey);\n  var sig = new Uint8Array(crypto_sign_BYTES);\n  for (var i = 0; i < sig.length; i++) sig[i] = signedMsg[i];\n  return sig;\n};\n\nnacl.sign.detached.verify = function(msg, sig, publicKey) {\n  checkArrayTypes(msg, sig, publicKey);\n  if (sig.length !== crypto_sign_BYTES)\n    throw new Error('bad signature size');\n  if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n    throw new Error('bad public key size');\n  var sm = new Uint8Array(crypto_sign_BYTES + msg.length);\n  var m = new Uint8Array(crypto_sign_BYTES + msg.length);\n  var i;\n  for (i = 0; i < crypto_sign_BYTES; i++) sm[i] = sig[i];\n  for (i = 0; i < msg.length; i++) sm[i+crypto_sign_BYTES] = msg[i];\n  return (crypto_sign_open(m, sm, sm.length, publicKey) >= 0);\n};\n\nnacl.sign.keyPair = function() {\n  var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n  var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n  crypto_sign_keypair(pk, sk);\n  return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.keyPair.fromSecretKey = function(secretKey) {\n  checkArrayTypes(secretKey);\n  if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n    throw new Error('bad secret key size');\n  var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n  for (var i = 0; i < pk.length; i++) pk[i] = secretKey[32+i];\n  return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.sign.keyPair.fromSeed = function(seed) {\n  checkArrayTypes(seed);\n  if (seed.length !== crypto_sign_SEEDBYTES)\n    throw new Error('bad seed size');\n  var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n  var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n  for (var i = 0; i < 32; i++) sk[i] = seed[i];\n  crypto_sign_keypair(pk, sk, true);\n  return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.publicKeyLength = crypto_sign_PUBLICKEYBYTES;\nnacl.sign.secretKeyLength = crypto_sign_SECRETKEYBYTES;\nnacl.sign.seedLength = crypto_sign_SEEDBYTES;\nnacl.sign.signatureLength = crypto_sign_BYTES;\n\nnacl.hash = function(msg) {\n  checkArrayTypes(msg);\n  var h = new Uint8Array(crypto_hash_BYTES);\n  crypto_hash(h, msg, msg.length);\n  return h;\n};\n\nnacl.hash.hashLength = crypto_hash_BYTES;\n\nnacl.verify = function(x, y) {\n  checkArrayTypes(x, y);\n  // Zero length arguments are considered not equal.\n  if (x.length === 0 || y.length === 0) return false;\n  if (x.length !== y.length) return false;\n  return (vn(x, 0, y, 0, x.length) === 0) ? true : false;\n};\n\nnacl.setPRNG = function(fn) {\n  randombytes = fn;\n};\n\n(function() {\n  // Initialize PRNG if environment provides CSPRNG.\n  // If not, methods calling randombytes will throw.\n  var crypto = typeof self !== 'undefined' ? (self.crypto || self.msCrypto) : null;\n  if (crypto && crypto.getRandomValues) {\n    // Browsers.\n    var QUOTA = 65536;\n    nacl.setPRNG(function(x, n) {\n      var i, v = new Uint8Array(n);\n      for (i = 0; i < n; i += QUOTA) {\n        crypto.getRandomValues(v.subarray(i, i + Math.min(n - i, QUOTA)));\n      }\n      for (i = 0; i < n; i++) x[i] = v[i];\n      cleanup(v);\n    });\n  } else if (typeof require !== 'undefined') {\n    // Node.js.\n    crypto = require('crypto');\n    if (crypto && crypto.randomBytes) {\n      nacl.setPRNG(function(x, n) {\n        var i, v = crypto.randomBytes(n);\n        for (i = 0; i < n; i++) x[i] = v[i];\n        cleanup(v);\n      });\n    }\n  }\n})();\n\n})(typeof module !== 'undefined' && module.exports ? module.exports : (self.nacl = self.nacl || {}));\n","'use strict';\n\nvar $TypeError = require('es-errors/type');\n\nvar callBound = require('call-bound');\n\n/** @type {undefined | ((thisArg: import('.').TypedArray) => Buffer<ArrayBufferLike>)} */\nvar $typedArrayBuffer = callBound('TypedArray.prototype.buffer', true);\n\nvar isTypedArray = require('is-typed-array');\n\n/** @type {import('.')} */\n// node <= 0.10, < 0.11.4 has a nonconfigurable own property instead of a prototype getter\nmodule.exports = $typedArrayBuffer || function typedArrayBuffer(x) {\n\tif (!isTypedArray(x)) {\n\t\tthrow new $TypeError('Not a Typed Array');\n\t}\n\treturn x.buffer;\n};\n","var _globalThis;\nif (typeof globalThis === 'object') {\n\t_globalThis = globalThis;\n} else {\n\ttry {\n\t\t_globalThis = require('es5-ext/global');\n\t} catch (error) {\n\t} finally {\n\t\tif (!_globalThis && typeof window !== 'undefined') { _globalThis = window; }\n\t\tif (!_globalThis) { throw new Error('Could not determine global this'); }\n\t}\n}\n\nvar NativeWebSocket = _globalThis.WebSocket || _globalThis.MozWebSocket;\nvar websocket_version = require('./version');\n\n\n/**\n * Expose a W3C WebSocket class with just one or two arguments.\n */\nfunction W3CWebSocket(uri, protocols) {\n\tvar native_instance;\n\n\tif (protocols) {\n\t\tnative_instance = new NativeWebSocket(uri, protocols);\n\t}\n\telse {\n\t\tnative_instance = new NativeWebSocket(uri);\n\t}\n\n\t/**\n\t * 'native_instance' is an instance of nativeWebSocket (the browser's WebSocket\n\t * class). Since it is an Object it will be returned as it is when creating an\n\t * instance of W3CWebSocket via 'new W3CWebSocket()'.\n\t *\n\t * ECMAScript 5: http://bclary.com/2004/11/07/#a-13.2.2\n\t */\n\treturn native_instance;\n}\nif (NativeWebSocket) {\n\t['CONNECTING', 'OPEN', 'CLOSING', 'CLOSED'].forEach(function(prop) {\n\t\tObject.defineProperty(W3CWebSocket, prop, {\n\t\t\tget: function() { return NativeWebSocket[prop]; }\n\t\t});\n\t});\n}\n\n/**\n * Module exports.\n */\nmodule.exports = {\n    'w3cwebsocket' : NativeWebSocket ? W3CWebSocket : null,\n    'version'      : websocket_version\n};\n","module.exports = require('../package.json').version;\n","'use strict';\n\nvar forEach = require('for-each');\nvar availableTypedArrays = require('available-typed-arrays');\nvar callBind = require('call-bind');\nvar callBound = require('call-bound');\nvar gOPD = require('gopd');\nvar getProto = require('get-proto');\n\nvar $toString = callBound('Object.prototype.toString');\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\nvar typedArrays = availableTypedArrays();\n\nvar $slice = callBound('String.prototype.slice');\n\n/** @type {<T = unknown>(array: readonly T[], value: unknown) => number} */\nvar $indexOf = callBound('Array.prototype.indexOf', true) || function indexOf(array, value) {\n\tfor (var i = 0; i < array.length; i += 1) {\n\t\tif (array[i] === value) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n};\n\n/** @typedef {import('./types').Getter} Getter */\n/** @type {import('./types').Cache} */\nvar cache = { __proto__: null };\nif (hasToStringTag && gOPD && getProto) {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tif (Symbol.toStringTag in arr && getProto) {\n\t\t\tvar proto = getProto(arr);\n\t\t\t// @ts-expect-error TS won't narrow inside a closure\n\t\t\tvar descriptor = gOPD(proto, Symbol.toStringTag);\n\t\t\tif (!descriptor && proto) {\n\t\t\t\tvar superProto = getProto(proto);\n\t\t\t\t// @ts-expect-error TS won't narrow inside a closure\n\t\t\t\tdescriptor = gOPD(superProto, Symbol.toStringTag);\n\t\t\t}\n\t\t\t// @ts-expect-error TODO: fix\n\t\t\tcache['$' + typedArray] = callBind(descriptor.get);\n\t\t}\n\t});\n} else {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tvar fn = arr.slice || arr.set;\n\t\tif (fn) {\n\t\t\tcache[\n\t\t\t\t/** @type {`$${import('.').TypedArrayName}`} */ ('$' + typedArray)\n\t\t\t] = /** @type {import('./types').BoundSlice | import('./types').BoundSet} */ (\n\t\t\t\t// @ts-expect-error TODO FIXME\n\t\t\t\tcallBind(fn)\n\t\t\t);\n\t\t}\n\t});\n}\n\n/** @type {(value: object) => false | import('.').TypedArrayName} */\nvar tryTypedArrays = function tryAllTypedArrays(value) {\n\t/** @type {ReturnType<typeof tryAllTypedArrays>} */ var found = false;\n\tforEach(\n\t\t/** @type {Record<`\\$${import('.').TypedArrayName}`, Getter>} */ (cache),\n\t\t/** @type {(getter: Getter, name: `\\$${import('.').TypedArrayName}`) => void} */\n\t\tfunction (getter, typedArray) {\n\t\t\tif (!found) {\n\t\t\t\ttry {\n\t\t\t\t\t// @ts-expect-error a throw is fine here\n\t\t\t\t\tif ('$' + getter(value) === typedArray) {\n\t\t\t\t\t\tfound = /** @type {import('.').TypedArrayName} */ ($slice(typedArray, 1));\n\t\t\t\t\t}\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t}\n\t);\n\treturn found;\n};\n\n/** @type {(value: object) => false | import('.').TypedArrayName} */\nvar trySlices = function tryAllSlices(value) {\n\t/** @type {ReturnType<typeof tryAllSlices>} */ var found = false;\n\tforEach(\n\t\t/** @type {Record<`\\$${import('.').TypedArrayName}`, Getter>} */(cache),\n\t\t/** @type {(getter: Getter, name: `\\$${import('.').TypedArrayName}`) => void} */ function (getter, name) {\n\t\t\tif (!found) {\n\t\t\t\ttry {\n\t\t\t\t\t// @ts-expect-error a throw is fine here\n\t\t\t\t\tgetter(value);\n\t\t\t\t\tfound = /** @type {import('.').TypedArrayName} */ ($slice(name, 1));\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t}\n\t);\n\treturn found;\n};\n\n/** @type {import('.')} */\nmodule.exports = function whichTypedArray(value) {\n\tif (!value || typeof value !== 'object') { return false; }\n\tif (!hasToStringTag) {\n\t\t/** @type {string} */\n\t\tvar tag = $slice($toString(value), 8, -1);\n\t\tif ($indexOf(typedArrays, tag) > -1) {\n\t\t\treturn tag;\n\t\t}\n\t\tif (tag !== 'Object') {\n\t\t\treturn false;\n\t\t}\n\t\t// node < 0.6 hits here on real Typed Arrays\n\t\treturn trySlices(value);\n\t}\n\tif (!gOPD) { return null; } // unknown engine\n\treturn tryTypedArrays(value);\n};\n","'use strict';\n\nvar possibleNames = require('possible-typed-array-names');\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\n\n/** @type {import('.')} */\nmodule.exports = function availableTypedArrays() {\n\tvar /** @type {ReturnType<typeof availableTypedArrays>} */ out = [];\n\tfor (var i = 0; i < possibleNames.length; i++) {\n\t\tif (typeof g[possibleNames[i]] === 'function') {\n\t\t\t// @ts-expect-error\n\t\t\tout[out.length] = possibleNames[i];\n\t\t}\n\t}\n\treturn out;\n};\n","'use strict';\nvar parent = require('../../stable/object/define-property');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../stable/symbol');\n\nrequire('../../modules/esnext.function.metadata');\nrequire('../../modules/esnext.symbol.async-dispose');\nrequire('../../modules/esnext.symbol.dispose');\nrequire('../../modules/esnext.symbol.metadata');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../stable/symbol/iterator');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../stable/symbol/to-primitive');\n\nmodule.exports = parent;\n","'use strict';\nrequire('../../modules/es.object.define-property');\nvar path = require('../../internals/path');\n\nvar Object = path.Object;\n\nvar defineProperty = module.exports = function defineProperty(it, key, desc) {\n  return Object.defineProperty(it, key, desc);\n};\n\nif (Object.defineProperty.sham) defineProperty.sham = true;\n","'use strict';\nrequire('../../modules/es.array.concat');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.symbol');\nrequire('../../modules/es.symbol.async-iterator');\nrequire('../../modules/es.symbol.description');\nrequire('../../modules/es.symbol.has-instance');\nrequire('../../modules/es.symbol.is-concat-spreadable');\nrequire('../../modules/es.symbol.iterator');\nrequire('../../modules/es.symbol.match');\nrequire('../../modules/es.symbol.match-all');\nrequire('../../modules/es.symbol.replace');\nrequire('../../modules/es.symbol.search');\nrequire('../../modules/es.symbol.species');\nrequire('../../modules/es.symbol.split');\nrequire('../../modules/es.symbol.to-primitive');\nrequire('../../modules/es.symbol.to-string-tag');\nrequire('../../modules/es.symbol.unscopables');\nrequire('../../modules/es.json.to-string-tag');\nrequire('../../modules/es.math.to-string-tag');\nrequire('../../modules/es.reflect.to-string-tag');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Symbol;\n","'use strict';\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/es.symbol.iterator');\nvar WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');\n\nmodule.exports = WrappedWellKnownSymbolModule.f('iterator');\n","'use strict';\nrequire('../../modules/es.date.to-primitive');\nrequire('../../modules/es.symbol.to-primitive');\nvar WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');\n\nmodule.exports = WrappedWellKnownSymbolModule.f('toPrimitive');\n","'use strict';\nvar parent = require('../../actual/object/define-property');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../actual/symbol');\nrequire('../../modules/esnext.symbol.is-registered-symbol');\nrequire('../../modules/esnext.symbol.is-well-known-symbol');\nrequire('../../modules/esnext.symbol.custom-matcher');\nrequire('../../modules/esnext.symbol.observable');\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.symbol.is-registered');\nrequire('../../modules/esnext.symbol.is-well-known');\nrequire('../../modules/esnext.symbol.matcher');\nrequire('../../modules/esnext.symbol.metadata-key');\nrequire('../../modules/esnext.symbol.pattern-match');\nrequire('../../modules/esnext.symbol.replace-all');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../actual/symbol/iterator');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../actual/symbol/to-primitive');\n\nmodule.exports = parent;\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n  if (isCallable(argument)) return argument;\n  throw new $TypeError(tryToString(argument) + ' is not a function');\n};\n","'use strict';\nvar isPossiblePrototype = require('../internals/is-possible-prototype');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n  if (isPossiblePrototype(argument)) return argument;\n  throw new $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","'use strict';\nmodule.exports = function () { /* empty */ };\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n  if (isObject(argument)) return argument;\n  throw new $TypeError($String(argument) + ' is not an object');\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n  return function ($this, el, fromIndex) {\n    var O = toIndexedObject($this);\n    var length = lengthOfArrayLike(O);\n    if (length === 0) return !IS_INCLUDES && -1;\n    var index = toAbsoluteIndex(fromIndex, length);\n    var value;\n    // Array#includes uses SameValueZero equality algorithm\n    // eslint-disable-next-line no-self-compare -- NaN check\n    if (IS_INCLUDES && el !== el) while (length > index) {\n      value = O[index++];\n      // eslint-disable-next-line no-self-compare -- NaN check\n      if (value !== value) return true;\n    // Array#indexOf ignores holes, Array#includes - not\n    } else for (;length > index; index++) {\n      if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n    } return !IS_INCLUDES && -1;\n  };\n};\n\nmodule.exports = {\n  // `Array.prototype.includes` method\n  // https://tc39.es/ecma262/#sec-array.prototype.includes\n  includes: createMethod(true),\n  // `Array.prototype.indexOf` method\n  // https://tc39.es/ecma262/#sec-array.prototype.indexof\n  indexOf: createMethod(false)\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n  var IS_MAP = TYPE === 1;\n  var IS_FILTER = TYPE === 2;\n  var IS_SOME = TYPE === 3;\n  var IS_EVERY = TYPE === 4;\n  var IS_FIND_INDEX = TYPE === 6;\n  var IS_FILTER_REJECT = TYPE === 7;\n  var NO_HOLES = TYPE === 5 || IS_FIND_INDEX;\n  return function ($this, callbackfn, that, specificCreate) {\n    var O = toObject($this);\n    var self = IndexedObject(O);\n    var length = lengthOfArrayLike(self);\n    var boundFunction = bind(callbackfn, that);\n    var index = 0;\n    var create = specificCreate || arraySpeciesCreate;\n    var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n    var value, result;\n    for (;length > index; index++) if (NO_HOLES || index in self) {\n      value = self[index];\n      result = boundFunction(value, index, O);\n      if (TYPE) {\n        if (IS_MAP) target[index] = result; // map\n        else if (result) switch (TYPE) {\n          case 3: return true;              // some\n          case 5: return value;             // find\n          case 6: return index;             // findIndex\n          case 2: push(target, value);      // filter\n        } else switch (TYPE) {\n          case 4: return false;             // every\n          case 7: push(target, value);      // filterReject\n        }\n      }\n    }\n    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n  };\n};\n\nmodule.exports = {\n  // `Array.prototype.forEach` method\n  // https://tc39.es/ecma262/#sec-array.prototype.foreach\n  forEach: createMethod(0),\n  // `Array.prototype.map` method\n  // https://tc39.es/ecma262/#sec-array.prototype.map\n  map: createMethod(1),\n  // `Array.prototype.filter` method\n  // https://tc39.es/ecma262/#sec-array.prototype.filter\n  filter: createMethod(2),\n  // `Array.prototype.some` method\n  // https://tc39.es/ecma262/#sec-array.prototype.some\n  some: createMethod(3),\n  // `Array.prototype.every` method\n  // https://tc39.es/ecma262/#sec-array.prototype.every\n  every: createMethod(4),\n  // `Array.prototype.find` method\n  // https://tc39.es/ecma262/#sec-array.prototype.find\n  find: createMethod(5),\n  // `Array.prototype.findIndex` method\n  // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n  findIndex: createMethod(6),\n  // `Array.prototype.filterReject` method\n  // https://github.com/tc39/proposal-array-filtering\n  filterReject: createMethod(7)\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/environment-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n  // We can't use this feature detection in V8 since it causes\n  // deoptimization and serious performance degradation\n  // https://github.com/zloirock/core-js/issues/677\n  return V8_VERSION >= 51 || !fails(function () {\n    var array = [];\n    var constructor = array.constructor = {};\n    constructor[SPECIES] = function () {\n      return { foo: 1 };\n    };\n    return array[METHOD_NAME](Boolean).foo !== 1;\n  });\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n  var C;\n  if (isArray(originalArray)) {\n    C = originalArray.constructor;\n    // cross-realm fallback\n    if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined;\n    else if (isObject(C)) {\n      C = C[SPECIES];\n      if (C === null) C = undefined;\n    }\n  } return C === undefined ? $Array : C;\n};\n","'use strict';\nvar arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n  return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n  return stringSlice(toString(it), 8, -1);\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) === 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n  try {\n    return it[key];\n  } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n  var O, tag, result;\n  return it === undefined ? 'Undefined' : it === null ? 'Null'\n    // @@toStringTag case\n    : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n    // builtinTag case\n    : CORRECT_ARGUMENTS ? classofRaw(O)\n    // ES3 arguments fallback\n    : (result = classofRaw(O)) === 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n  function F() { /* empty */ }\n  F.prototype.constructor = null;\n  // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n  return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","'use strict';\n// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n  return { value: value, done: done };\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n  return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n  object[key] = value;\n  return object;\n};\n","'use strict';\nmodule.exports = function (bitmap, value) {\n  return {\n    enumerable: !(bitmap & 1),\n    configurable: !(bitmap & 2),\n    writable: !(bitmap & 4),\n    value: value\n  };\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n  if (DESCRIPTORS) definePropertyModule.f(object, key, createPropertyDescriptor(0, value));\n  else object[key] = value;\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n  return defineProperty.f(target, name, descriptor);\n};\n","'use strict';\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (target, key, value, options) {\n  if (options && options.enumerable) target[key] = value;\n  else createNonEnumerableProperty(target, key, value);\n  return target;\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n  try {\n    defineProperty(globalThis, key, { value: value, configurable: true, writable: true });\n  } catch (error) {\n    globalThis[key] = value;\n  } return value;\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n  // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n  return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;\n});\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar isObject = require('../internals/is-object');\n\nvar document = globalThis.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n  return EXISTS ? document.createElement(it) : {};\n};\n","'use strict';\nvar $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n  if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n  return it;\n};\n","'use strict';\n// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n  CSSRuleList: 0,\n  CSSStyleDeclaration: 0,\n  CSSValueList: 0,\n  ClientRectList: 0,\n  DOMRectList: 0,\n  DOMStringList: 0,\n  DOMTokenList: 1,\n  DataTransferItemList: 0,\n  FileList: 0,\n  HTMLAllCollection: 0,\n  HTMLCollection: 0,\n  HTMLFormElement: 0,\n  HTMLSelectElement: 0,\n  MediaList: 0,\n  MimeTypeArray: 0,\n  NamedNodeMap: 0,\n  NodeList: 1,\n  PaintRequestList: 0,\n  Plugin: 0,\n  PluginArray: 0,\n  SVGLengthList: 0,\n  SVGNumberList: 0,\n  SVGPathSegList: 0,\n  SVGPointList: 0,\n  SVGStringList: 0,\n  SVGTransformList: 0,\n  SourceBufferList: 0,\n  StyleSheetList: 0,\n  TextTrackCueList: 0,\n  TextTrackList: 0,\n  TouchList: 0\n};\n","'use strict';\n// IE8- don't enum bug keys\nmodule.exports = [\n  'constructor',\n  'hasOwnProperty',\n  'isPrototypeOf',\n  'propertyIsEnumerable',\n  'toLocaleString',\n  'toString',\n  'valueOf'\n];\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\nvar navigator = globalThis.navigator;\nvar userAgent = navigator && navigator.userAgent;\n\nmodule.exports = userAgent ? String(userAgent) : '';\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar userAgent = require('../internals/environment-user-agent');\n\nvar process = globalThis.process;\nvar Deno = globalThis.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n  match = v8.split('.');\n  // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n  // but their correct versions are not interesting for us\n  version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n  match = userAgent.match(/Edge\\/(\\d+)/);\n  if (!match || match[1] >= 74) {\n    match = userAgent.match(/Chrome\\/(\\d+)/);\n    if (match) version = +match[1];\n  }\n}\n\nmodule.exports = version;\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar apply = require('../internals/function-apply');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar isCallable = require('../internals/is-callable');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar isForced = require('../internals/is-forced');\nvar path = require('../internals/path');\nvar bind = require('../internals/function-bind-context');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\n// add debugging info\nrequire('../internals/shared-store');\n\nvar wrapConstructor = function (NativeConstructor) {\n  var Wrapper = function (a, b, c) {\n    if (this instanceof Wrapper) {\n      switch (arguments.length) {\n        case 0: return new NativeConstructor();\n        case 1: return new NativeConstructor(a);\n        case 2: return new NativeConstructor(a, b);\n      } return new NativeConstructor(a, b, c);\n    } return apply(NativeConstructor, this, arguments);\n  };\n  Wrapper.prototype = NativeConstructor.prototype;\n  return Wrapper;\n};\n\n/*\n  options.target         - name of the target object\n  options.global         - target is the global object\n  options.stat           - export as static methods of target\n  options.proto          - export as prototype methods of target\n  options.real           - real prototype method for the `pure` version\n  options.forced         - export even if the native feature is available\n  options.bind           - bind methods to the target, required for the `pure` version\n  options.wrap           - wrap constructors to preventing global pollution, required for the `pure` version\n  options.unsafe         - use the simple assignment of property instead of delete + defineProperty\n  options.sham           - add a flag to not completely full polyfills\n  options.enumerable     - export as enumerable property\n  options.dontCallGetSet - prevent calling a getter on target\n  options.name           - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n  var TARGET = options.target;\n  var GLOBAL = options.global;\n  var STATIC = options.stat;\n  var PROTO = options.proto;\n\n  var nativeSource = GLOBAL ? globalThis : STATIC ? globalThis[TARGET] : globalThis[TARGET] && globalThis[TARGET].prototype;\n\n  var target = GLOBAL ? path : path[TARGET] || createNonEnumerableProperty(path, TARGET, {})[TARGET];\n  var targetPrototype = target.prototype;\n\n  var FORCED, USE_NATIVE, VIRTUAL_PROTOTYPE;\n  var key, sourceProperty, targetProperty, nativeProperty, resultProperty, descriptor;\n\n  for (key in source) {\n    FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n    // contains in native\n    USE_NATIVE = !FORCED && nativeSource && hasOwn(nativeSource, key);\n\n    targetProperty = target[key];\n\n    if (USE_NATIVE) if (options.dontCallGetSet) {\n      descriptor = getOwnPropertyDescriptor(nativeSource, key);\n      nativeProperty = descriptor && descriptor.value;\n    } else nativeProperty = nativeSource[key];\n\n    // export native or implementation\n    sourceProperty = (USE_NATIVE && nativeProperty) ? nativeProperty : source[key];\n\n    if (!FORCED && !PROTO && typeof targetProperty == typeof sourceProperty) continue;\n\n    // bind methods to global for calling from export context\n    if (options.bind && USE_NATIVE) resultProperty = bind(sourceProperty, globalThis);\n    // wrap global constructors for prevent changes in this version\n    else if (options.wrap && USE_NATIVE) resultProperty = wrapConstructor(sourceProperty);\n    // make static versions for prototype methods\n    else if (PROTO && isCallable(sourceProperty)) resultProperty = uncurryThis(sourceProperty);\n    // default case\n    else resultProperty = sourceProperty;\n\n    // add a flag to not completely full polyfills\n    if (options.sham || (sourceProperty && sourceProperty.sham) || (targetProperty && targetProperty.sham)) {\n      createNonEnumerableProperty(resultProperty, 'sham', true);\n    }\n\n    createNonEnumerableProperty(target, key, resultProperty);\n\n    if (PROTO) {\n      VIRTUAL_PROTOTYPE = TARGET + 'Prototype';\n      if (!hasOwn(path, VIRTUAL_PROTOTYPE)) {\n        createNonEnumerableProperty(path, VIRTUAL_PROTOTYPE, {});\n      }\n      // export virtual prototype methods\n      createNonEnumerableProperty(path[VIRTUAL_PROTOTYPE], key, sourceProperty);\n      // export real prototype methods\n      if (options.real && targetPrototype && (FORCED || !targetPrototype[key])) {\n        createNonEnumerableProperty(targetPrototype, key, sourceProperty);\n      }\n    }\n  }\n};\n","'use strict';\nmodule.exports = function (exec) {\n  try {\n    return !!exec();\n  } catch (error) {\n    return true;\n  }\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-function-prototype-bind, es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n  return call.apply(apply, arguments);\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n  aCallable(fn);\n  return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n    return fn.apply(that, arguments);\n  };\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n  // eslint-disable-next-line es/no-function-prototype-bind -- safe\n  var test = (function () { /* empty */ }).bind();\n  // eslint-disable-next-line no-prototype-builtins -- safe\n  return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n// eslint-disable-next-line es/no-function-prototype-bind -- safe\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n  return call.apply(call, arguments);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n  EXISTS: EXISTS,\n  PROPER: PROPER,\n  CONFIGURABLE: CONFIGURABLE\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n  try {\n    // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n    return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n  } catch (error) { /* empty */ }\n};\n","'use strict';\nvar classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n  // Nashorn bug:\n  //   https://github.com/zloirock/core-js/issues/1128\n  //   https://github.com/zloirock/core-js/issues/1130\n  if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\n// eslint-disable-next-line es/no-function-prototype-bind -- safe\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n  return function () {\n    return call.apply(fn, arguments);\n  };\n};\n","'use strict';\nvar path = require('../internals/path');\nvar globalThis = require('../internals/global-this');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (variable) {\n  return isCallable(variable) ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n  return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(globalThis[namespace])\n    : path[namespace] && path[namespace][method] || globalThis[namespace] && globalThis[namespace][method];\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isArray = require('../internals/is-array');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar toString = require('../internals/to-string');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (replacer) {\n  if (isCallable(replacer)) return replacer;\n  if (!isArray(replacer)) return;\n  var rawLength = replacer.length;\n  var keys = [];\n  for (var i = 0; i < rawLength; i++) {\n    var element = replacer[i];\n    if (typeof element == 'string') push(keys, element);\n    else if (typeof element == 'number' || classof(element) === 'Number' || classof(element) === 'String') push(keys, toString(element));\n  }\n  var keysLength = keys.length;\n  var root = true;\n  return function (key, value) {\n    if (root) {\n      root = false;\n      return value;\n    }\n    if (isArray(this)) return value;\n    for (var j = 0; j < keysLength; j++) if (keys[j] === key) return value;\n  };\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n  var func = V[P];\n  return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","'use strict';\nvar check = function (it) {\n  return it && it.Math === Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n  // eslint-disable-next-line es/no-global-this -- safe\n  check(typeof globalThis == 'object' && globalThis) ||\n  check(typeof window == 'object' && window) ||\n  // eslint-disable-next-line no-restricted-globals -- safe\n  check(typeof self == 'object' && self) ||\n  check(typeof global == 'object' && global) ||\n  check(typeof this == 'object' && this) ||\n  // eslint-disable-next-line no-new-func -- fallback\n  (function () { return this; })() || Function('return this')();\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n  return hasOwnProperty(toObject(it), key);\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n  // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n  return Object.defineProperty(createElement('div'), 'a', {\n    get: function () { return 7; }\n  }).a !== 7;\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n  // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n  // eslint-disable-next-line no-prototype-builtins -- safe\n  return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n  return classof(it) === 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n  store.inspectSource = function (it) {\n    return functionToString(it);\n  };\n}\n\nmodule.exports = store.inspectSource;\n","'use strict';\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar globalThis = require('../internals/global-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = globalThis.TypeError;\nvar WeakMap = globalThis.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n  return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n  return function (it) {\n    var state;\n    if (!isObject(it) || (state = get(it)).type !== TYPE) {\n      throw new TypeError('Incompatible receiver, ' + TYPE + ' required');\n    } return state;\n  };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n  var store = shared.state || (shared.state = new WeakMap());\n  /* eslint-disable no-self-assign -- prototype methods protection */\n  store.get = store.get;\n  store.has = store.has;\n  store.set = store.set;\n  /* eslint-enable no-self-assign -- prototype methods protection */\n  set = function (it, metadata) {\n    if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n    metadata.facade = it;\n    store.set(it, metadata);\n    return metadata;\n  };\n  get = function (it) {\n    return store.get(it) || {};\n  };\n  has = function (it) {\n    return store.has(it);\n  };\n} else {\n  var STATE = sharedKey('state');\n  hiddenKeys[STATE] = true;\n  set = function (it, metadata) {\n    if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n    metadata.facade = it;\n    createNonEnumerableProperty(it, STATE, metadata);\n    return metadata;\n  };\n  get = function (it) {\n    return hasOwn(it, STATE) ? it[STATE] : {};\n  };\n  has = function (it) {\n    return hasOwn(it, STATE);\n  };\n}\n\nmodule.exports = {\n  set: set,\n  get: get,\n  has: has,\n  enforce: enforce,\n  getterFor: getterFor\n};\n","'use strict';\nvar classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n  return classof(argument) === 'Array';\n};\n","'use strict';\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar documentAll = typeof document == 'object' && document.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nmodule.exports = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) {\n  return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n  return typeof argument == 'function';\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.test(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n  if (!isCallable(argument)) return false;\n  try {\n    construct(noop, [], argument);\n    return true;\n  } catch (error) {\n    return false;\n  }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n  if (!isCallable(argument)) return false;\n  switch (classof(argument)) {\n    case 'AsyncFunction':\n    case 'GeneratorFunction':\n    case 'AsyncGeneratorFunction': return false;\n  }\n  try {\n    // we can't check .prototype since constructors produced by .bind haven't it\n    // `Function#toString` throws on some built-it function in some legacy engines\n    // (for example, `DOMQuad` and similar in FF41-)\n    return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n  } catch (error) {\n    return true;\n  }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n  var called;\n  return isConstructorModern(isConstructorModern.call)\n    || !isConstructorModern(Object)\n    || !isConstructorModern(function () { called = true; })\n    || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n  var value = data[normalize(feature)];\n  return value === POLYFILL ? true\n    : value === NATIVE ? false\n    : isCallable(detection) ? fails(detection)\n    : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n  return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","'use strict';\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n  return it === null || it === undefined;\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n  return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nmodule.exports = function (argument) {\n  return isObject(argument) || argument === null;\n};\n","'use strict';\nmodule.exports = true;\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n  return typeof it == 'symbol';\n} : function (it) {\n  var $Symbol = getBuiltIn('Symbol');\n  return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n  var TO_STRING_TAG = NAME + ' Iterator';\n  IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n  setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n  Iterators[TO_STRING_TAG] = returnThis;\n  return IteratorConstructor;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n  createIteratorConstructor(IteratorConstructor, NAME, next);\n\n  var getIterationMethod = function (KIND) {\n    if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n    if (!BUGGY_SAFARI_ITERATORS && KIND && KIND in IterablePrototype) return IterablePrototype[KIND];\n\n    switch (KIND) {\n      case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n      case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n      case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n    }\n\n    return function () { return new IteratorConstructor(this); };\n  };\n\n  var TO_STRING_TAG = NAME + ' Iterator';\n  var INCORRECT_VALUES_NAME = false;\n  var IterablePrototype = Iterable.prototype;\n  var nativeIterator = IterablePrototype[ITERATOR]\n    || IterablePrototype['@@iterator']\n    || DEFAULT && IterablePrototype[DEFAULT];\n  var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n  var anyNativeIterator = NAME === 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n  var CurrentIteratorPrototype, methods, KEY;\n\n  // fix native\n  if (anyNativeIterator) {\n    CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n    if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n      if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n        if (setPrototypeOf) {\n          setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n        } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n          defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n        }\n      }\n      // Set @@toStringTag to native iterators\n      setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n      if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n    }\n  }\n\n  // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n  if (PROPER_FUNCTION_NAME && DEFAULT === VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n    if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n      createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n    } else {\n      INCORRECT_VALUES_NAME = true;\n      defaultIterator = function values() { return call(nativeIterator, this); };\n    }\n  }\n\n  // export additional methods\n  if (DEFAULT) {\n    methods = {\n      values: getIterationMethod(VALUES),\n      keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n      entries: getIterationMethod(ENTRIES)\n    };\n    if (FORCED) for (KEY in methods) {\n      if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n        defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n      }\n    } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n  }\n\n  // define iterator\n  if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n    defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n  }\n  Iterators[NAME] = defaultIterator;\n\n  return methods;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n  arrayIterator = [].keys();\n  // Safari 8 has buggy iterators w/o `next`\n  if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n  else {\n    PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n    if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n  }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n  var test = {};\n  // FF44- legacy iterators case\n  return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n  defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n    return this;\n  });\n}\n\nmodule.exports = {\n  IteratorPrototype: IteratorPrototype,\n  BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n  return toLength(obj.length);\n};\n","'use strict';\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n  var n = +x;\n  return (n > 0 ? floor : ceil)(n);\n};\n","'use strict';\n/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n  return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n  activeXDocument.write(scriptTag(''));\n  activeXDocument.close();\n  var temp = activeXDocument.parentWindow.Object;\n  // eslint-disable-next-line no-useless-assignment -- avoid memory leak\n  activeXDocument = null;\n  return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n  // Thrash, waste and sodomy: IE GC bug\n  var iframe = documentCreateElement('iframe');\n  var JS = 'java' + SCRIPT + ':';\n  var iframeDocument;\n  iframe.style.display = 'none';\n  html.appendChild(iframe);\n  // https://github.com/zloirock/core-js/issues/475\n  iframe.src = String(JS);\n  iframeDocument = iframe.contentWindow.document;\n  iframeDocument.open();\n  iframeDocument.write(scriptTag('document.F=Object'));\n  iframeDocument.close();\n  return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n  try {\n    activeXDocument = new ActiveXObject('htmlfile');\n  } catch (error) { /* ignore */ }\n  NullProtoObject = typeof document != 'undefined'\n    ? document.domain && activeXDocument\n      ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n      : NullProtoObjectViaIFrame()\n    : NullProtoObjectViaActiveX(activeXDocument); // WSH\n  var length = enumBugKeys.length;\n  while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n  return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n  var result;\n  if (O !== null) {\n    EmptyConstructor[PROTOTYPE] = anObject(O);\n    result = new EmptyConstructor();\n    EmptyConstructor[PROTOTYPE] = null;\n    // add \"__proto__\" for Object.getPrototypeOf polyfill\n    result[IE_PROTO] = O;\n  } else result = NullProtoObject();\n  return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n  anObject(O);\n  var props = toIndexedObject(Properties);\n  var keys = objectKeys(Properties);\n  var length = keys.length;\n  var index = 0;\n  var key;\n  while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n  return O;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n  anObject(O);\n  P = toPropertyKey(P);\n  anObject(Attributes);\n  if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n    var current = $getOwnPropertyDescriptor(O, P);\n    if (current && current[WRITABLE]) {\n      O[P] = Attributes.value;\n      Attributes = {\n        configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n        enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n        writable: false\n      };\n    }\n  } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n  anObject(O);\n  P = toPropertyKey(P);\n  anObject(Attributes);\n  if (IE8_DOM_DEFINE) try {\n    return $defineProperty(O, P, Attributes);\n  } catch (error) { /* empty */ }\n  if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported');\n  if ('value' in Attributes) O[P] = Attributes.value;\n  return O;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n  O = toIndexedObject(O);\n  P = toPropertyKey(P);\n  if (IE8_DOM_DEFINE) try {\n    return $getOwnPropertyDescriptor(O, P);\n  } catch (error) { /* empty */ }\n  if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","'use strict';\n/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n  ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n  try {\n    return $getOwnPropertyNames(it);\n  } catch (error) {\n    return arraySlice(windowNames);\n  }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n  return windowNames && classof(it) === 'Window'\n    ? getWindowNames(it)\n    : $getOwnPropertyNames(toIndexedObject(it));\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n  return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n  var object = toObject(O);\n  if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n  var constructor = object.constructor;\n  if (isCallable(constructor) && object instanceof constructor) {\n    return constructor.prototype;\n  } return object instanceof $Object ? ObjectPrototype : null;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n  var O = toIndexedObject(object);\n  var i = 0;\n  var result = [];\n  var key;\n  for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n  // Don't enum bug & hidden keys\n  while (names.length > i) if (hasOwn(O, key = names[i++])) {\n    ~indexOf(result, key) || push(result, key);\n  }\n  return result;\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n  return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n  var descriptor = getOwnPropertyDescriptor(this, V);\n  return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","'use strict';\n/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar isObject = require('../internals/is-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n  var CORRECT_SETTER = false;\n  var test = {};\n  var setter;\n  try {\n    setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n    setter(test, []);\n    CORRECT_SETTER = test instanceof Array;\n  } catch (error) { /* empty */ }\n  return function setPrototypeOf(O, proto) {\n    requireObjectCoercible(O);\n    aPossiblePrototype(proto);\n    if (!isObject(O)) return O;\n    if (CORRECT_SETTER) setter(O, proto);\n    else O.__proto__ = proto;\n    return O;\n  };\n}() : undefined);\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n  return '[object ' + classof(this) + ']';\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n  var fn, val;\n  if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n  if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n  if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n  throw new $TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n  if (isNullOrUndefined(it)) throw new $TypeError(\"Can't call method on \" + it);\n  return it;\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar defineProperty = require('../internals/object-define-property').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar toString = require('../internals/object-to-string');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC, SET_METHOD) {\n  var target = STATIC ? it : it && it.prototype;\n  if (target) {\n    if (!hasOwn(target, TO_STRING_TAG)) {\n      defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n    }\n    if (SET_METHOD && !TO_STRING_TAG_SUPPORT) {\n      createNonEnumerableProperty(target, 'toString', toString);\n    }\n  }\n};\n","'use strict';\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n  return keys[key] || (keys[key] = uid(key));\n};\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar globalThis = require('../internals/global-this');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {});\n\n(store.versions || (store.versions = [])).push({\n  version: '3.41.0',\n  mode: IS_PURE ? 'pure' : 'global',\n  copyright: '© 2014-2025 Denis Pushkarev (zloirock.ru)',\n  license: 'https://github.com/zloirock/core-js/blob/v3.41.0/LICENSE',\n  source: 'https://github.com/zloirock/core-js'\n});\n","'use strict';\nvar store = require('../internals/shared-store');\n\nmodule.exports = function (key, value) {\n  return store[key] || (store[key] = value || {});\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n  return function ($this, pos) {\n    var S = toString(requireObjectCoercible($this));\n    var position = toIntegerOrInfinity(pos);\n    var size = S.length;\n    var first, second;\n    if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n    first = charCodeAt(S, position);\n    return first < 0xD800 || first > 0xDBFF || position + 1 === size\n      || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n        ? CONVERT_TO_STRING\n          ? charAt(S, position)\n          : first\n        : CONVERT_TO_STRING\n          ? stringSlice(S, position, position + 2)\n          : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n  };\n};\n\nmodule.exports = {\n  // `String.prototype.codePointAt` method\n  // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n  codeAt: createMethod(false),\n  // `String.prototype.at` method\n  // https://github.com/mathiasbynens/String.prototype.at\n  charAt: createMethod(true)\n};\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/environment-v8-version');\nvar fails = require('../internals/fails');\nvar globalThis = require('../internals/global-this');\n\nvar $String = globalThis.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n  var symbol = Symbol('symbol detection');\n  // Chrome 38 Symbol has incorrect toString conversion\n  // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n  // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n  // of course, fail.\n  return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n    // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n    !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","'use strict';\nvar call = require('../internals/function-call');\nvar getBuiltIn = require('../internals/get-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function () {\n  var Symbol = getBuiltIn('Symbol');\n  var SymbolPrototype = Symbol && Symbol.prototype;\n  var valueOf = SymbolPrototype && SymbolPrototype.valueOf;\n  var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n  if (SymbolPrototype && !SymbolPrototype[TO_PRIMITIVE]) {\n    // `Symbol.prototype[@@toPrimitive]` method\n    // https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\n    // eslint-disable-next-line no-unused-vars -- required for .length\n    defineBuiltIn(SymbolPrototype, TO_PRIMITIVE, function (hint) {\n      return call(valueOf, this);\n    }, { arity: 1 });\n  }\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar Symbol = getBuiltIn('Symbol');\nvar keyFor = Symbol.keyFor;\nvar thisSymbolValue = uncurryThis(Symbol.prototype.valueOf);\n\n// `Symbol.isRegisteredSymbol` method\n// https://tc39.es/proposal-symbol-predicates/#sec-symbol-isregisteredsymbol\nmodule.exports = Symbol.isRegisteredSymbol || function isRegisteredSymbol(value) {\n  try {\n    return keyFor(thisSymbolValue(value)) !== undefined;\n  } catch (error) {\n    return false;\n  }\n};\n","'use strict';\nvar shared = require('../internals/shared');\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isSymbol = require('../internals/is-symbol');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar Symbol = getBuiltIn('Symbol');\nvar $isWellKnownSymbol = Symbol.isWellKnownSymbol;\nvar getOwnPropertyNames = getBuiltIn('Object', 'getOwnPropertyNames');\nvar thisSymbolValue = uncurryThis(Symbol.prototype.valueOf);\nvar WellKnownSymbolsStore = shared('wks');\n\nfor (var i = 0, symbolKeys = getOwnPropertyNames(Symbol), symbolKeysLength = symbolKeys.length; i < symbolKeysLength; i++) {\n  // some old engines throws on access to some keys like `arguments` or `caller`\n  try {\n    var symbolKey = symbolKeys[i];\n    if (isSymbol(Symbol[symbolKey])) wellKnownSymbol(symbolKey);\n  } catch (error) { /* empty */ }\n}\n\n// `Symbol.isWellKnownSymbol` method\n// https://tc39.es/proposal-symbol-predicates/#sec-symbol-iswellknownsymbol\n// We should patch it for newly added well-known symbols. If it's not required, this module just will not be injected\nmodule.exports = function isWellKnownSymbol(value) {\n  if ($isWellKnownSymbol && $isWellKnownSymbol(value)) return true;\n  try {\n    var symbol = thisSymbolValue(value);\n    for (var j = 0, keys = getOwnPropertyNames(WellKnownSymbolsStore), keysLength = keys.length; j < keysLength; j++) {\n      // eslint-disable-next-line eqeqeq -- polyfilled symbols case\n      if (WellKnownSymbolsStore[keys[j]] == symbol) return true;\n    }\n  } catch (error) { /* empty */ }\n  return false;\n};\n","'use strict';\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\n/* eslint-disable es/no-symbol -- safe */\nmodule.exports = NATIVE_SYMBOL && !!Symbol['for'] && !!Symbol.keyFor;\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n  var integer = toIntegerOrInfinity(index);\n  return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","'use strict';\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n  return IndexedObject(requireObjectCoercible(it));\n};\n","'use strict';\nvar trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n  var number = +argument;\n  // eslint-disable-next-line no-self-compare -- NaN check\n  return number !== number || number === 0 ? 0 : trunc(number);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n  var len = toIntegerOrInfinity(argument);\n  return len > 0 ? min(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","'use strict';\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n  return $Object(requireObjectCoercible(argument));\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n  if (!isObject(input) || isSymbol(input)) return input;\n  var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n  var result;\n  if (exoticToPrim) {\n    if (pref === undefined) pref = 'default';\n    result = call(exoticToPrim, input, pref);\n    if (!isObject(result) || isSymbol(result)) return result;\n    throw new $TypeError(\"Can't convert object to primitive value\");\n  }\n  if (pref === undefined) pref = 'number';\n  return ordinaryToPrimitive(input, pref);\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n  var key = toPrimitive(argument, 'string');\n  return isSymbol(key) ? key : key + '';\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","'use strict';\nvar classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n  if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string');\n  return $String(argument);\n};\n","'use strict';\nvar $String = String;\n\nmodule.exports = function (argument) {\n  try {\n    return $String(argument);\n  } catch (error) {\n    return 'Object';\n  }\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n  return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL &&\n  !Symbol.sham &&\n  typeof Symbol.iterator == 'symbol';\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n  // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n  return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n    value: 42,\n    writable: false\n  }).prototype !== 42;\n});\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = globalThis.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","'use strict';\nvar path = require('../internals/path');\nvar hasOwn = require('../internals/has-own-property');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n  var Symbol = path.Symbol || (path.Symbol = {});\n  if (!hasOwn(Symbol, NAME)) defineProperty(Symbol, NAME, {\n    value: wrappedWellKnownSymbolModule.f(NAME)\n  });\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = globalThis.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n  if (!hasOwn(WellKnownSymbolsStore, name)) {\n    WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n      ? Symbol[name]\n      : createWellKnownSymbol('Symbol.' + name);\n  } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/environment-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n  var array = [];\n  array[IS_CONCAT_SPREADABLE] = false;\n  return array.concat()[0] !== array;\n});\n\nvar isConcatSpreadable = function (O) {\n  if (!isObject(O)) return false;\n  var spreadable = O[IS_CONCAT_SPREADABLE];\n  return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !arrayMethodHasSpeciesSupport('concat');\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n  // eslint-disable-next-line no-unused-vars -- required for `.length`\n  concat: function concat(arg) {\n    var O = toObject(this);\n    var A = arraySpeciesCreate(O, 0);\n    var n = 0;\n    var i, k, length, len, E;\n    for (i = -1, length = arguments.length; i < length; i++) {\n      E = i === -1 ? O : arguments[i];\n      if (isConcatSpreadable(E)) {\n        len = lengthOfArrayLike(E);\n        doesNotExceedSafeInteger(n + len);\n        for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n      } else {\n        doesNotExceedSafeInteger(n + 1);\n        createProperty(A, n++, E);\n      }\n    }\n    A.length = n;\n    return A;\n  }\n});\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n  setInternalState(this, {\n    type: ARRAY_ITERATOR,\n    target: toIndexedObject(iterated), // target\n    index: 0,                          // next index\n    kind: kind                         // kind\n  });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n  var state = getInternalState(this);\n  var target = state.target;\n  var index = state.index++;\n  if (!target || index >= target.length) {\n    state.target = null;\n    return createIterResultObject(undefined, true);\n  }\n  switch (state.kind) {\n    case 'keys': return createIterResultObject(index, false);\n    case 'values': return createIterResultObject(target[index], false);\n  } return createIterResultObject([index, target[index]], false);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n  defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isSymbol = require('../internals/is-symbol');\nvar arraySlice = require('../internals/array-slice');\nvar getReplacerFunction = require('../internals/get-json-replacer-function');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nvar $String = String;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar exec = uncurryThis(/./.exec);\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar replace = uncurryThis(''.replace);\nvar numberToString = uncurryThis(1.0.toString);\n\nvar tester = /[\\uD800-\\uDFFF]/g;\nvar low = /^[\\uD800-\\uDBFF]$/;\nvar hi = /^[\\uDC00-\\uDFFF]$/;\n\nvar WRONG_SYMBOLS_CONVERSION = !NATIVE_SYMBOL || fails(function () {\n  var symbol = getBuiltIn('Symbol')('stringify detection');\n  // MS Edge converts symbol values to JSON as {}\n  return $stringify([symbol]) !== '[null]'\n    // WebKit converts symbol values to JSON as null\n    || $stringify({ a: symbol }) !== '{}'\n    // V8 throws on boxed symbols\n    || $stringify(Object(symbol)) !== '{}';\n});\n\n// https://github.com/tc39/proposal-well-formed-stringify\nvar ILL_FORMED_UNICODE = fails(function () {\n  return $stringify('\\uDF06\\uD834') !== '\"\\\\udf06\\\\ud834\"'\n    || $stringify('\\uDEAD') !== '\"\\\\udead\"';\n});\n\nvar stringifyWithSymbolsFix = function (it, replacer) {\n  var args = arraySlice(arguments);\n  var $replacer = getReplacerFunction(replacer);\n  if (!isCallable($replacer) && (it === undefined || isSymbol(it))) return; // IE8 returns string on undefined\n  args[1] = function (key, value) {\n    // some old implementations (like WebKit) could pass numbers as keys\n    if (isCallable($replacer)) value = call($replacer, this, $String(key), value);\n    if (!isSymbol(value)) return value;\n  };\n  return apply($stringify, null, args);\n};\n\nvar fixIllFormed = function (match, offset, string) {\n  var prev = charAt(string, offset - 1);\n  var next = charAt(string, offset + 1);\n  if ((exec(low, match) && !exec(hi, next)) || (exec(hi, match) && !exec(low, prev))) {\n    return '\\\\u' + numberToString(charCodeAt(match, 0), 16);\n  } return match;\n};\n\nif ($stringify) {\n  // `JSON.stringify` method\n  // https://tc39.es/ecma262/#sec-json.stringify\n  $({ target: 'JSON', stat: true, arity: 3, forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE }, {\n    // eslint-disable-next-line no-unused-vars -- required for `.length`\n    stringify: function stringify(it, replacer, space) {\n      var args = arraySlice(arguments);\n      var result = apply(WRONG_SYMBOLS_CONVERSION ? stringifyWithSymbolsFix : $stringify, null, args);\n      return ILL_FORMED_UNICODE && typeof result == 'string' ? replace(result, tester, fixIllFormed) : result;\n    }\n  });\n}\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// JSON[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-json-@@tostringtag\nsetToStringTag(globalThis.JSON, 'JSON', true);\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineProperty = require('../internals/object-define-property').f;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\n// eslint-disable-next-line es/no-object-defineproperty -- safe\n$({ target: 'Object', stat: true, forced: Object.defineProperty !== defineProperty, sham: !DESCRIPTORS }, {\n  defineProperty: defineProperty\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar fails = require('../internals/fails');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar toObject = require('../internals/to-object');\n\n// V8 ~ Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FORCED = !NATIVE_SYMBOL || fails(function () { getOwnPropertySymbolsModule.f(1); });\n\n// `Object.getOwnPropertySymbols` method\n// https://tc39.es/ecma262/#sec-object.getownpropertysymbols\n$({ target: 'Object', stat: true, forced: FORCED }, {\n  getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n    var $getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n    return $getOwnPropertySymbols ? $getOwnPropertySymbols(toObject(it)) : [];\n  }\n});\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n  setInternalState(this, {\n    type: STRING_ITERATOR,\n    string: toString(iterated),\n    index: 0\n  });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n  var state = getInternalState(this);\n  var string = state.string;\n  var index = state.index;\n  var point;\n  if (index >= string.length) return createIterResultObject(undefined, true);\n  point = charAt(string, index);\n  state.index += point.length;\n  return createIterResultObject(point, false);\n});\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.asyncIterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.asynciterator\ndefineWellKnownSymbol('asyncIterator');\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar $toString = require('../internals/to-string');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar defineSymbolToPrimitive = require('../internals/symbol-define-to-primitive');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\n\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = globalThis.Symbol;\nvar SymbolPrototype = $Symbol && $Symbol[PROTOTYPE];\nvar RangeError = globalThis.RangeError;\nvar TypeError = globalThis.TypeError;\nvar QObject = globalThis.QObject;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar push = uncurryThis([].push);\n\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar WellKnownSymbolsStore = shared('wks');\n\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar fallbackDefineProperty = function (O, P, Attributes) {\n  var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n  if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n  nativeDefineProperty(O, P, Attributes);\n  if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n    nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n  }\n};\n\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n  return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n    get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n  })).a !== 7;\n}) ? fallbackDefineProperty : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n  var symbol = AllSymbols[tag] = nativeObjectCreate(SymbolPrototype);\n  setInternalState(symbol, {\n    type: SYMBOL,\n    tag: tag,\n    description: description\n  });\n  if (!DESCRIPTORS) symbol.description = description;\n  return symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n  if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n  anObject(O);\n  var key = toPropertyKey(P);\n  anObject(Attributes);\n  if (hasOwn(AllSymbols, key)) {\n    if (!Attributes.enumerable) {\n      if (!hasOwn(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, nativeObjectCreate(null)));\n      O[HIDDEN][key] = true;\n    } else {\n      if (hasOwn(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n      Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n    } return setSymbolDescriptor(O, key, Attributes);\n  } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n  anObject(O);\n  var properties = toIndexedObject(Properties);\n  var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n  $forEach(keys, function (key) {\n    if (!DESCRIPTORS || call($propertyIsEnumerable, properties, key)) $defineProperty(O, key, properties[key]);\n  });\n  return O;\n};\n\nvar $create = function create(O, Properties) {\n  return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n  var P = toPropertyKey(V);\n  var enumerable = call(nativePropertyIsEnumerable, this, P);\n  if (this === ObjectPrototype && hasOwn(AllSymbols, P) && !hasOwn(ObjectPrototypeSymbols, P)) return false;\n  return enumerable || !hasOwn(this, P) || !hasOwn(AllSymbols, P) || hasOwn(this, HIDDEN) && this[HIDDEN][P]\n    ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n  var it = toIndexedObject(O);\n  var key = toPropertyKey(P);\n  if (it === ObjectPrototype && hasOwn(AllSymbols, key) && !hasOwn(ObjectPrototypeSymbols, key)) return;\n  var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n  if (descriptor && hasOwn(AllSymbols, key) && !(hasOwn(it, HIDDEN) && it[HIDDEN][key])) {\n    descriptor.enumerable = true;\n  }\n  return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n  var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n  var result = [];\n  $forEach(names, function (key) {\n    if (!hasOwn(AllSymbols, key) && !hasOwn(hiddenKeys, key)) push(result, key);\n  });\n  return result;\n};\n\nvar $getOwnPropertySymbols = function (O) {\n  var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n  var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n  var result = [];\n  $forEach(names, function (key) {\n    if (hasOwn(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || hasOwn(ObjectPrototype, key))) {\n      push(result, AllSymbols[key]);\n    }\n  });\n  return result;\n};\n\n// `Symbol` constructor\n// https://tc39.es/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n  $Symbol = function Symbol() {\n    if (isPrototypeOf(SymbolPrototype, this)) throw new TypeError('Symbol is not a constructor');\n    var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]);\n    var tag = uid(description);\n    var setter = function (value) {\n      var $this = this === undefined ? globalThis : this;\n      if ($this === ObjectPrototype) call(setter, ObjectPrototypeSymbols, value);\n      if (hasOwn($this, HIDDEN) && hasOwn($this[HIDDEN], tag)) $this[HIDDEN][tag] = false;\n      var descriptor = createPropertyDescriptor(1, value);\n      try {\n        setSymbolDescriptor($this, tag, descriptor);\n      } catch (error) {\n        if (!(error instanceof RangeError)) throw error;\n        fallbackDefineProperty($this, tag, descriptor);\n      }\n    };\n    if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n    return wrap(tag, description);\n  };\n\n  SymbolPrototype = $Symbol[PROTOTYPE];\n\n  defineBuiltIn(SymbolPrototype, 'toString', function toString() {\n    return getInternalState(this).tag;\n  });\n\n  defineBuiltIn($Symbol, 'withoutSetter', function (description) {\n    return wrap(uid(description), description);\n  });\n\n  propertyIsEnumerableModule.f = $propertyIsEnumerable;\n  definePropertyModule.f = $defineProperty;\n  definePropertiesModule.f = $defineProperties;\n  getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n  getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n  getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n  wrappedWellKnownSymbolModule.f = function (name) {\n    return wrap(wellKnownSymbol(name), name);\n  };\n\n  if (DESCRIPTORS) {\n    // https://github.com/tc39/proposal-Symbol-description\n    defineBuiltInAccessor(SymbolPrototype, 'description', {\n      configurable: true,\n      get: function description() {\n        return getInternalState(this).description;\n      }\n    });\n    if (!IS_PURE) {\n      defineBuiltIn(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n    }\n  }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n  Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n  defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n  useSetter: function () { USE_SETTER = true; },\n  useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n  // `Object.create` method\n  // https://tc39.es/ecma262/#sec-object.create\n  create: $create,\n  // `Object.defineProperty` method\n  // https://tc39.es/ecma262/#sec-object.defineproperty\n  defineProperty: $defineProperty,\n  // `Object.defineProperties` method\n  // https://tc39.es/ecma262/#sec-object.defineproperties\n  defineProperties: $defineProperties,\n  // `Object.getOwnPropertyDescriptor` method\n  // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n  getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n  // `Object.getOwnPropertyNames` method\n  // https://tc39.es/ecma262/#sec-object.getownpropertynames\n  getOwnPropertyNames: $getOwnPropertyNames\n});\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\ndefineSymbolToPrimitive();\n\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar hasOwn = require('../internals/has-own-property');\nvar toString = require('../internals/to-string');\nvar shared = require('../internals/shared');\nvar NATIVE_SYMBOL_REGISTRY = require('../internals/symbol-registry-detection');\n\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\n\n// `Symbol.for` method\n// https://tc39.es/ecma262/#sec-symbol.for\n$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, {\n  'for': function (key) {\n    var string = toString(key);\n    if (hasOwn(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n    var symbol = getBuiltIn('Symbol')(string);\n    StringToSymbolRegistry[string] = symbol;\n    SymbolToStringRegistry[symbol] = string;\n    return symbol;\n  }\n});\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.hasInstance` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.hasinstance\ndefineWellKnownSymbol('hasInstance');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.isConcatSpreadable` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.isconcatspreadable\ndefineWellKnownSymbol('isConcatSpreadable');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/es.symbol.constructor');\nrequire('../modules/es.symbol.for');\nrequire('../modules/es.symbol.key-for');\nrequire('../modules/es.json.stringify');\nrequire('../modules/es.object.get-own-property-symbols');\n","'use strict';\nvar $ = require('../internals/export');\nvar hasOwn = require('../internals/has-own-property');\nvar isSymbol = require('../internals/is-symbol');\nvar tryToString = require('../internals/try-to-string');\nvar shared = require('../internals/shared');\nvar NATIVE_SYMBOL_REGISTRY = require('../internals/symbol-registry-detection');\n\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\n\n// `Symbol.keyFor` method\n// https://tc39.es/ecma262/#sec-symbol.keyfor\n$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, {\n  keyFor: function keyFor(sym) {\n    if (!isSymbol(sym)) throw new TypeError(tryToString(sym) + ' is not a symbol');\n    if (hasOwn(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n  }\n});\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.matchAll` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.matchall\ndefineWellKnownSymbol('matchAll');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.match` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.match\ndefineWellKnownSymbol('match');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.replace` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.replace\ndefineWellKnownSymbol('replace');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.search` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.search\ndefineWellKnownSymbol('search');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.species` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.species\ndefineWellKnownSymbol('species');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.split` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.split\ndefineWellKnownSymbol('split');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar defineSymbolToPrimitive = require('../internals/symbol-define-to-primitive');\n\n// `Symbol.toPrimitive` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.toprimitive\ndefineWellKnownSymbol('toPrimitive');\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\ndefineSymbolToPrimitive();\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// `Symbol.toStringTag` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.tostringtag\ndefineWellKnownSymbol('toStringTag');\n\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag(getBuiltIn('Symbol'), 'Symbol');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.unscopables` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.unscopables\ndefineWellKnownSymbol('unscopables');\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar METADATA = wellKnownSymbol('metadata');\nvar FunctionPrototype = Function.prototype;\n\n// Function.prototype[@@metadata]\n// https://github.com/tc39/proposal-decorator-metadata\nif (FunctionPrototype[METADATA] === undefined) {\n  defineProperty(FunctionPrototype, METADATA, {\n    value: null\n  });\n}\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.asyncDispose` well-known symbol\n// https://github.com/tc39/proposal-async-explicit-resource-management\ndefineWellKnownSymbol('asyncDispose');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.customMatcher` well-known symbol\n// https://github.com/tc39/proposal-pattern-matching\ndefineWellKnownSymbol('customMatcher');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.dispose` well-known symbol\n// https://github.com/tc39/proposal-explicit-resource-management\ndefineWellKnownSymbol('dispose');\n","'use strict';\nvar $ = require('../internals/export');\nvar isRegisteredSymbol = require('../internals/symbol-is-registered');\n\n// `Symbol.isRegisteredSymbol` method\n// https://tc39.es/proposal-symbol-predicates/#sec-symbol-isregisteredsymbol\n$({ target: 'Symbol', stat: true }, {\n  isRegisteredSymbol: isRegisteredSymbol\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isRegisteredSymbol = require('../internals/symbol-is-registered');\n\n// `Symbol.isRegistered` method\n// obsolete version of https://tc39.es/proposal-symbol-predicates/#sec-symbol-isregisteredsymbol\n$({ target: 'Symbol', stat: true, name: 'isRegisteredSymbol' }, {\n  isRegistered: isRegisteredSymbol\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isWellKnownSymbol = require('../internals/symbol-is-well-known');\n\n// `Symbol.isWellKnownSymbol` method\n// https://tc39.es/proposal-symbol-predicates/#sec-symbol-iswellknownsymbol\n// We should patch it for newly added well-known symbols. If it's not required, this module just will not be injected\n$({ target: 'Symbol', stat: true, forced: true }, {\n  isWellKnownSymbol: isWellKnownSymbol\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isWellKnownSymbol = require('../internals/symbol-is-well-known');\n\n// `Symbol.isWellKnown` method\n// obsolete version of https://tc39.es/proposal-symbol-predicates/#sec-symbol-iswellknownsymbol\n// We should patch it for newly added well-known symbols. If it's not required, this module just will not be injected\n$({ target: 'Symbol', stat: true, name: 'isWellKnownSymbol', forced: true }, {\n  isWellKnown: isWellKnownSymbol\n});\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.matcher` well-known symbol\n// https://github.com/tc39/proposal-pattern-matching\ndefineWellKnownSymbol('matcher');\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.metadataKey` well-known symbol\n// https://github.com/tc39/proposal-decorator-metadata\ndefineWellKnownSymbol('metadataKey');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.metadata` well-known symbol\n// https://github.com/tc39/proposal-decorators\ndefineWellKnownSymbol('metadata');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.observable` well-known symbol\n// https://github.com/tc39/proposal-observable\ndefineWellKnownSymbol('observable');\n","'use strict';\n// TODO: remove from `core-js@4`\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.patternMatch` well-known symbol\n// https://github.com/tc39/proposal-pattern-matching\ndefineWellKnownSymbol('patternMatch');\n","'use strict';\n// TODO: remove from `core-js@4`\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\ndefineWellKnownSymbol('replaceAll');\n","'use strict';\nrequire('../modules/es.array.iterator');\nvar DOMIterables = require('../internals/dom-iterables');\nvar globalThis = require('../internals/global-this');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nfor (var COLLECTION_NAME in DOMIterables) {\n  setToStringTag(globalThis[COLLECTION_NAME], COLLECTION_NAME);\n  Iterators[COLLECTION_NAME] = Iterators.Array;\n}\n","'use strict';\nvar parent = require('../../es/object/define-property');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../es/symbol');\nrequire('../../modules/web.dom-collections.iterator');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../es/symbol/iterator');\nrequire('../../modules/web.dom-collections.iterator');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../es/symbol/to-primitive');\n\nmodule.exports = parent;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/*\r\n *      bignumber.js v9.3.0\r\n *      A JavaScript library for arbitrary-precision arithmetic.\r\n *      https://github.com/MikeMcl/bignumber.js\r\n *      Copyright (c) 2025 Michael Mclaughlin <M8ch88l@gmail.com>\r\n *      MIT Licensed.\r\n *\r\n *      BigNumber.prototype methods     |  BigNumber methods\r\n *                                      |\r\n *      absoluteValue            abs    |  clone\r\n *      comparedTo                      |  config               set\r\n *      decimalPlaces            dp     |      DECIMAL_PLACES\r\n *      dividedBy                div    |      ROUNDING_MODE\r\n *      dividedToIntegerBy       idiv   |      EXPONENTIAL_AT\r\n *      exponentiatedBy          pow    |      RANGE\r\n *      integerValue                    |      CRYPTO\r\n *      isEqualTo                eq     |      MODULO_MODE\r\n *      isFinite                        |      POW_PRECISION\r\n *      isGreaterThan            gt     |      FORMAT\r\n *      isGreaterThanOrEqualTo   gte    |      ALPHABET\r\n *      isInteger                       |  isBigNumber\r\n *      isLessThan               lt     |  maximum              max\r\n *      isLessThanOrEqualTo      lte    |  minimum              min\r\n *      isNaN                           |  random\r\n *      isNegative                      |  sum\r\n *      isPositive                      |\r\n *      isZero                          |\r\n *      minus                           |\r\n *      modulo                   mod    |\r\n *      multipliedBy             times  |\r\n *      negated                         |\r\n *      plus                            |\r\n *      precision                sd     |\r\n *      shiftedBy                       |\r\n *      squareRoot               sqrt   |\r\n *      toExponential                   |\r\n *      toFixed                         |\r\n *      toFormat                        |\r\n *      toFraction                      |\r\n *      toJSON                          |\r\n *      toNumber                        |\r\n *      toPrecision                     |\r\n *      toString                        |\r\n *      valueOf                         |\r\n *\r\n */\r\n\r\n\r\nvar\r\n  isNumeric = /^-?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?$/i,\r\n  mathceil = Math.ceil,\r\n  mathfloor = Math.floor,\r\n\r\n  bignumberError = '[BigNumber Error] ',\r\n  tooManyDigits = bignumberError + 'Number primitive has more than 15 significant digits: ',\r\n\r\n  BASE = 1e14,\r\n  LOG_BASE = 14,\r\n  MAX_SAFE_INTEGER = 0x1fffffffffffff,         // 2^53 - 1\r\n  // MAX_INT32 = 0x7fffffff,                   // 2^31 - 1\r\n  POWS_TEN = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13],\r\n  SQRT_BASE = 1e7,\r\n\r\n  // EDITABLE\r\n  // The limit on the value of DECIMAL_PLACES, TO_EXP_NEG, TO_EXP_POS, MIN_EXP, MAX_EXP, and\r\n  // the arguments to toExponential, toFixed, toFormat, and toPrecision.\r\n  MAX = 1E9;                                   // 0 to MAX_INT32\r\n\r\n\r\n/*\r\n * Create and return a BigNumber constructor.\r\n */\r\nfunction clone(configObject) {\r\n  var div, convertBase, parseNumeric,\r\n    P = BigNumber.prototype = { constructor: BigNumber, toString: null, valueOf: null },\r\n    ONE = new BigNumber(1),\r\n\r\n\r\n    //----------------------------- EDITABLE CONFIG DEFAULTS -------------------------------\r\n\r\n\r\n    // The default values below must be integers within the inclusive ranges stated.\r\n    // The values can also be changed at run-time using BigNumber.set.\r\n\r\n    // The maximum number of decimal places for operations involving division.\r\n    DECIMAL_PLACES = 20,                     // 0 to MAX\r\n\r\n    // The rounding mode used when rounding to the above decimal places, and when using\r\n    // toExponential, toFixed, toFormat and toPrecision, and round (default value).\r\n    // UP         0 Away from zero.\r\n    // DOWN       1 Towards zero.\r\n    // CEIL       2 Towards +Infinity.\r\n    // FLOOR      3 Towards -Infinity.\r\n    // HALF_UP    4 Towards nearest neighbour. If equidistant, up.\r\n    // HALF_DOWN  5 Towards nearest neighbour. If equidistant, down.\r\n    // HALF_EVEN  6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n    // HALF_CEIL  7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n    // HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n    ROUNDING_MODE = 4,                       // 0 to 8\r\n\r\n    // EXPONENTIAL_AT : [TO_EXP_NEG , TO_EXP_POS]\r\n\r\n    // The exponent value at and beneath which toString returns exponential notation.\r\n    // Number type: -7\r\n    TO_EXP_NEG = -7,                         // 0 to -MAX\r\n\r\n    // The exponent value at and above which toString returns exponential notation.\r\n    // Number type: 21\r\n    TO_EXP_POS = 21,                         // 0 to MAX\r\n\r\n    // RANGE : [MIN_EXP, MAX_EXP]\r\n\r\n    // The minimum exponent value, beneath which underflow to zero occurs.\r\n    // Number type: -324  (5e-324)\r\n    MIN_EXP = -1e7,                          // -1 to -MAX\r\n\r\n    // The maximum exponent value, above which overflow to Infinity occurs.\r\n    // Number type:  308  (1.7976931348623157e+308)\r\n    // For MAX_EXP > 1e7, e.g. new BigNumber('1e100000000').plus(1) may be slow.\r\n    MAX_EXP = 1e7,                           // 1 to MAX\r\n\r\n    // Whether to use cryptographically-secure random number generation, if available.\r\n    CRYPTO = false,                          // true or false\r\n\r\n    // The modulo mode used when calculating the modulus: a mod n.\r\n    // The quotient (q = a / n) is calculated according to the corresponding rounding mode.\r\n    // The remainder (r) is calculated as: r = a - n * q.\r\n    //\r\n    // UP        0 The remainder is positive if the dividend is negative, else is negative.\r\n    // DOWN      1 The remainder has the same sign as the dividend.\r\n    //             This modulo mode is commonly known as 'truncated division' and is\r\n    //             equivalent to (a % n) in JavaScript.\r\n    // FLOOR     3 The remainder has the same sign as the divisor (Python %).\r\n    // HALF_EVEN 6 This modulo mode implements the IEEE 754 remainder function.\r\n    // EUCLID    9 Euclidian division. q = sign(n) * floor(a / abs(n)).\r\n    //             The remainder is always positive.\r\n    //\r\n    // The truncated division, floored division, Euclidian division and IEEE 754 remainder\r\n    // modes are commonly used for the modulus operation.\r\n    // Although the other rounding modes can also be used, they may not give useful results.\r\n    MODULO_MODE = 1,                         // 0 to 9\r\n\r\n    // The maximum number of significant digits of the result of the exponentiatedBy operation.\r\n    // If POW_PRECISION is 0, there will be unlimited significant digits.\r\n    POW_PRECISION = 0,                       // 0 to MAX\r\n\r\n    // The format specification used by the BigNumber.prototype.toFormat method.\r\n    FORMAT = {\r\n      prefix: '',\r\n      groupSize: 3,\r\n      secondaryGroupSize: 0,\r\n      groupSeparator: ',',\r\n      decimalSeparator: '.',\r\n      fractionGroupSize: 0,\r\n      fractionGroupSeparator: '\\xA0',        // non-breaking space\r\n      suffix: ''\r\n    },\r\n\r\n    // The alphabet used for base conversion. It must be at least 2 characters long, with no '+',\r\n    // '-', '.', whitespace, or repeated character.\r\n    // '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_'\r\n    ALPHABET = '0123456789abcdefghijklmnopqrstuvwxyz',\r\n    alphabetHasNormalDecimalDigits = true;\r\n\r\n\r\n  //------------------------------------------------------------------------------------------\r\n\r\n\r\n  // CONSTRUCTOR\r\n\r\n\r\n  /*\r\n   * The BigNumber constructor and exported function.\r\n   * Create and return a new instance of a BigNumber object.\r\n   *\r\n   * v {number|string|BigNumber} A numeric value.\r\n   * [b] {number} The base of v. Integer, 2 to ALPHABET.length inclusive.\r\n   */\r\n  function BigNumber(v, b) {\r\n    var alphabet, c, caseChanged, e, i, isNum, len, str,\r\n      x = this;\r\n\r\n    // Enable constructor call without `new`.\r\n    if (!(x instanceof BigNumber)) return new BigNumber(v, b);\r\n\r\n    if (b == null) {\r\n\r\n      if (v && v._isBigNumber === true) {\r\n        x.s = v.s;\r\n\r\n        if (!v.c || v.e > MAX_EXP) {\r\n          x.c = x.e = null;\r\n        } else if (v.e < MIN_EXP) {\r\n          x.c = [x.e = 0];\r\n        } else {\r\n          x.e = v.e;\r\n          x.c = v.c.slice();\r\n        }\r\n\r\n        return;\r\n      }\r\n\r\n      if ((isNum = typeof v == 'number') && v * 0 == 0) {\r\n\r\n        // Use `1 / n` to handle minus zero also.\r\n        x.s = 1 / v < 0 ? (v = -v, -1) : 1;\r\n\r\n        // Fast path for integers, where n < 2147483648 (2**31).\r\n        if (v === ~~v) {\r\n          for (e = 0, i = v; i >= 10; i /= 10, e++);\r\n\r\n          if (e > MAX_EXP) {\r\n            x.c = x.e = null;\r\n          } else {\r\n            x.e = e;\r\n            x.c = [v];\r\n          }\r\n\r\n          return;\r\n        }\r\n\r\n        str = String(v);\r\n      } else {\r\n\r\n        if (!isNumeric.test(str = String(v))) return parseNumeric(x, str, isNum);\r\n\r\n        x.s = str.charCodeAt(0) == 45 ? (str = str.slice(1), -1) : 1;\r\n      }\r\n\r\n      // Decimal point?\r\n      if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n      // Exponential form?\r\n      if ((i = str.search(/e/i)) > 0) {\r\n\r\n        // Determine exponent.\r\n        if (e < 0) e = i;\r\n        e += +str.slice(i + 1);\r\n        str = str.substring(0, i);\r\n      } else if (e < 0) {\r\n\r\n        // Integer.\r\n        e = str.length;\r\n      }\r\n\r\n    } else {\r\n\r\n      // '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n      intCheck(b, 2, ALPHABET.length, 'Base');\r\n\r\n      // Allow exponential notation to be used with base 10 argument, while\r\n      // also rounding to DECIMAL_PLACES as with other bases.\r\n      if (b == 10 && alphabetHasNormalDecimalDigits) {\r\n        x = new BigNumber(v);\r\n        return round(x, DECIMAL_PLACES + x.e + 1, ROUNDING_MODE);\r\n      }\r\n\r\n      str = String(v);\r\n\r\n      if (isNum = typeof v == 'number') {\r\n\r\n        // Avoid potential interpretation of Infinity and NaN as base 44+ values.\r\n        if (v * 0 != 0) return parseNumeric(x, str, isNum, b);\r\n\r\n        x.s = 1 / v < 0 ? (str = str.slice(1), -1) : 1;\r\n\r\n        // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n        if (BigNumber.DEBUG && str.replace(/^0\\.0*|\\./, '').length > 15) {\r\n          throw Error\r\n           (tooManyDigits + v);\r\n        }\r\n      } else {\r\n        x.s = str.charCodeAt(0) === 45 ? (str = str.slice(1), -1) : 1;\r\n      }\r\n\r\n      alphabet = ALPHABET.slice(0, b);\r\n      e = i = 0;\r\n\r\n      // Check that str is a valid base b number.\r\n      // Don't use RegExp, so alphabet can contain special characters.\r\n      for (len = str.length; i < len; i++) {\r\n        if (alphabet.indexOf(c = str.charAt(i)) < 0) {\r\n          if (c == '.') {\r\n\r\n            // If '.' is not the first character and it has not be found before.\r\n            if (i > e) {\r\n              e = len;\r\n              continue;\r\n            }\r\n          } else if (!caseChanged) {\r\n\r\n            // Allow e.g. hexadecimal 'FF' as well as 'ff'.\r\n            if (str == str.toUpperCase() && (str = str.toLowerCase()) ||\r\n                str == str.toLowerCase() && (str = str.toUpperCase())) {\r\n              caseChanged = true;\r\n              i = -1;\r\n              e = 0;\r\n              continue;\r\n            }\r\n          }\r\n\r\n          return parseNumeric(x, String(v), isNum, b);\r\n        }\r\n      }\r\n\r\n      // Prevent later check for length on converted number.\r\n      isNum = false;\r\n      str = convertBase(str, b, 10, x.s);\r\n\r\n      // Decimal point?\r\n      if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n      else e = str.length;\r\n    }\r\n\r\n    // Determine leading zeros.\r\n    for (i = 0; str.charCodeAt(i) === 48; i++);\r\n\r\n    // Determine trailing zeros.\r\n    for (len = str.length; str.charCodeAt(--len) === 48;);\r\n\r\n    if (str = str.slice(i, ++len)) {\r\n      len -= i;\r\n\r\n      // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n      if (isNum && BigNumber.DEBUG &&\r\n        len > 15 && (v > MAX_SAFE_INTEGER || v !== mathfloor(v))) {\r\n          throw Error\r\n           (tooManyDigits + (x.s * v));\r\n      }\r\n\r\n       // Overflow?\r\n      if ((e = e - i - 1) > MAX_EXP) {\r\n\r\n        // Infinity.\r\n        x.c = x.e = null;\r\n\r\n      // Underflow?\r\n      } else if (e < MIN_EXP) {\r\n\r\n        // Zero.\r\n        x.c = [x.e = 0];\r\n      } else {\r\n        x.e = e;\r\n        x.c = [];\r\n\r\n        // Transform base\r\n\r\n        // e is the base 10 exponent.\r\n        // i is where to slice str to get the first element of the coefficient array.\r\n        i = (e + 1) % LOG_BASE;\r\n        if (e < 0) i += LOG_BASE;  // i < 1\r\n\r\n        if (i < len) {\r\n          if (i) x.c.push(+str.slice(0, i));\r\n\r\n          for (len -= LOG_BASE; i < len;) {\r\n            x.c.push(+str.slice(i, i += LOG_BASE));\r\n          }\r\n\r\n          i = LOG_BASE - (str = str.slice(i)).length;\r\n        } else {\r\n          i -= len;\r\n        }\r\n\r\n        for (; i--; str += '0');\r\n        x.c.push(+str);\r\n      }\r\n    } else {\r\n\r\n      // Zero.\r\n      x.c = [x.e = 0];\r\n    }\r\n  }\r\n\r\n\r\n  // CONSTRUCTOR PROPERTIES\r\n\r\n\r\n  BigNumber.clone = clone;\r\n\r\n  BigNumber.ROUND_UP = 0;\r\n  BigNumber.ROUND_DOWN = 1;\r\n  BigNumber.ROUND_CEIL = 2;\r\n  BigNumber.ROUND_FLOOR = 3;\r\n  BigNumber.ROUND_HALF_UP = 4;\r\n  BigNumber.ROUND_HALF_DOWN = 5;\r\n  BigNumber.ROUND_HALF_EVEN = 6;\r\n  BigNumber.ROUND_HALF_CEIL = 7;\r\n  BigNumber.ROUND_HALF_FLOOR = 8;\r\n  BigNumber.EUCLID = 9;\r\n\r\n\r\n  /*\r\n   * Configure infrequently-changing library-wide settings.\r\n   *\r\n   * Accept an object with the following optional properties (if the value of a property is\r\n   * a number, it must be an integer within the inclusive range stated):\r\n   *\r\n   *   DECIMAL_PLACES   {number}           0 to MAX\r\n   *   ROUNDING_MODE    {number}           0 to 8\r\n   *   EXPONENTIAL_AT   {number|number[]}  -MAX to MAX  or  [-MAX to 0, 0 to MAX]\r\n   *   RANGE            {number|number[]}  -MAX to MAX (not zero)  or  [-MAX to -1, 1 to MAX]\r\n   *   CRYPTO           {boolean}          true or false\r\n   *   MODULO_MODE      {number}           0 to 9\r\n   *   POW_PRECISION       {number}           0 to MAX\r\n   *   ALPHABET         {string}           A string of two or more unique characters which does\r\n   *                                       not contain '.'.\r\n   *   FORMAT           {object}           An object with some of the following properties:\r\n   *     prefix                 {string}\r\n   *     groupSize              {number}\r\n   *     secondaryGroupSize     {number}\r\n   *     groupSeparator         {string}\r\n   *     decimalSeparator       {string}\r\n   *     fractionGroupSize      {number}\r\n   *     fractionGroupSeparator {string}\r\n   *     suffix                 {string}\r\n   *\r\n   * (The values assigned to the above FORMAT object properties are not checked for validity.)\r\n   *\r\n   * E.g.\r\n   * BigNumber.config({ DECIMAL_PLACES : 20, ROUNDING_MODE : 4 })\r\n   *\r\n   * Ignore properties/parameters set to null or undefined, except for ALPHABET.\r\n   *\r\n   * Return an object with the properties current values.\r\n   */\r\n  BigNumber.config = BigNumber.set = function (obj) {\r\n    var p, v;\r\n\r\n    if (obj != null) {\r\n\r\n      if (typeof obj == 'object') {\r\n\r\n        // DECIMAL_PLACES {number} Integer, 0 to MAX inclusive.\r\n        // '[BigNumber Error] DECIMAL_PLACES {not a primitive number|not an integer|out of range}: {v}'\r\n        if (obj.hasOwnProperty(p = 'DECIMAL_PLACES')) {\r\n          v = obj[p];\r\n          intCheck(v, 0, MAX, p);\r\n          DECIMAL_PLACES = v;\r\n        }\r\n\r\n        // ROUNDING_MODE {number} Integer, 0 to 8 inclusive.\r\n        // '[BigNumber Error] ROUNDING_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n        if (obj.hasOwnProperty(p = 'ROUNDING_MODE')) {\r\n          v = obj[p];\r\n          intCheck(v, 0, 8, p);\r\n          ROUNDING_MODE = v;\r\n        }\r\n\r\n        // EXPONENTIAL_AT {number|number[]}\r\n        // Integer, -MAX to MAX inclusive or\r\n        // [integer -MAX to 0 inclusive, 0 to MAX inclusive].\r\n        // '[BigNumber Error] EXPONENTIAL_AT {not a primitive number|not an integer|out of range}: {v}'\r\n        if (obj.hasOwnProperty(p = 'EXPONENTIAL_AT')) {\r\n          v = obj[p];\r\n          if (v && v.pop) {\r\n            intCheck(v[0], -MAX, 0, p);\r\n            intCheck(v[1], 0, MAX, p);\r\n            TO_EXP_NEG = v[0];\r\n            TO_EXP_POS = v[1];\r\n          } else {\r\n            intCheck(v, -MAX, MAX, p);\r\n            TO_EXP_NEG = -(TO_EXP_POS = v < 0 ? -v : v);\r\n          }\r\n        }\r\n\r\n        // RANGE {number|number[]} Non-zero integer, -MAX to MAX inclusive or\r\n        // [integer -MAX to -1 inclusive, integer 1 to MAX inclusive].\r\n        // '[BigNumber Error] RANGE {not a primitive number|not an integer|out of range|cannot be zero}: {v}'\r\n        if (obj.hasOwnProperty(p = 'RANGE')) {\r\n          v = obj[p];\r\n          if (v && v.pop) {\r\n            intCheck(v[0], -MAX, -1, p);\r\n            intCheck(v[1], 1, MAX, p);\r\n            MIN_EXP = v[0];\r\n            MAX_EXP = v[1];\r\n          } else {\r\n            intCheck(v, -MAX, MAX, p);\r\n            if (v) {\r\n              MIN_EXP = -(MAX_EXP = v < 0 ? -v : v);\r\n            } else {\r\n              throw Error\r\n               (bignumberError + p + ' cannot be zero: ' + v);\r\n            }\r\n          }\r\n        }\r\n\r\n        // CRYPTO {boolean} true or false.\r\n        // '[BigNumber Error] CRYPTO not true or false: {v}'\r\n        // '[BigNumber Error] crypto unavailable'\r\n        if (obj.hasOwnProperty(p = 'CRYPTO')) {\r\n          v = obj[p];\r\n          if (v === !!v) {\r\n            if (v) {\r\n              if (typeof crypto != 'undefined' && crypto &&\r\n               (crypto.getRandomValues || crypto.randomBytes)) {\r\n                CRYPTO = v;\r\n              } else {\r\n                CRYPTO = !v;\r\n                throw Error\r\n                 (bignumberError + 'crypto unavailable');\r\n              }\r\n            } else {\r\n              CRYPTO = v;\r\n            }\r\n          } else {\r\n            throw Error\r\n             (bignumberError + p + ' not true or false: ' + v);\r\n          }\r\n        }\r\n\r\n        // MODULO_MODE {number} Integer, 0 to 9 inclusive.\r\n        // '[BigNumber Error] MODULO_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n        if (obj.hasOwnProperty(p = 'MODULO_MODE')) {\r\n          v = obj[p];\r\n          intCheck(v, 0, 9, p);\r\n          MODULO_MODE = v;\r\n        }\r\n\r\n        // POW_PRECISION {number} Integer, 0 to MAX inclusive.\r\n        // '[BigNumber Error] POW_PRECISION {not a primitive number|not an integer|out of range}: {v}'\r\n        if (obj.hasOwnProperty(p = 'POW_PRECISION')) {\r\n          v = obj[p];\r\n          intCheck(v, 0, MAX, p);\r\n          POW_PRECISION = v;\r\n        }\r\n\r\n        // FORMAT {object}\r\n        // '[BigNumber Error] FORMAT not an object: {v}'\r\n        if (obj.hasOwnProperty(p = 'FORMAT')) {\r\n          v = obj[p];\r\n          if (typeof v == 'object') FORMAT = v;\r\n          else throw Error\r\n           (bignumberError + p + ' not an object: ' + v);\r\n        }\r\n\r\n        // ALPHABET {string}\r\n        // '[BigNumber Error] ALPHABET invalid: {v}'\r\n        if (obj.hasOwnProperty(p = 'ALPHABET')) {\r\n          v = obj[p];\r\n\r\n          // Disallow if less than two characters,\r\n          // or if it contains '+', '-', '.', whitespace, or a repeated character.\r\n          if (typeof v == 'string' && !/^.?$|[+\\-.\\s]|(.).*\\1/.test(v)) {\r\n            alphabetHasNormalDecimalDigits = v.slice(0, 10) == '0123456789';\r\n            ALPHABET = v;\r\n          } else {\r\n            throw Error\r\n             (bignumberError + p + ' invalid: ' + v);\r\n          }\r\n        }\r\n\r\n      } else {\r\n\r\n        // '[BigNumber Error] Object expected: {v}'\r\n        throw Error\r\n         (bignumberError + 'Object expected: ' + obj);\r\n      }\r\n    }\r\n\r\n    return {\r\n      DECIMAL_PLACES: DECIMAL_PLACES,\r\n      ROUNDING_MODE: ROUNDING_MODE,\r\n      EXPONENTIAL_AT: [TO_EXP_NEG, TO_EXP_POS],\r\n      RANGE: [MIN_EXP, MAX_EXP],\r\n      CRYPTO: CRYPTO,\r\n      MODULO_MODE: MODULO_MODE,\r\n      POW_PRECISION: POW_PRECISION,\r\n      FORMAT: FORMAT,\r\n      ALPHABET: ALPHABET\r\n    };\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if v is a BigNumber instance, otherwise return false.\r\n   *\r\n   * If BigNumber.DEBUG is true, throw if a BigNumber instance is not well-formed.\r\n   *\r\n   * v {any}\r\n   *\r\n   * '[BigNumber Error] Invalid BigNumber: {v}'\r\n   */\r\n  BigNumber.isBigNumber = function (v) {\r\n    if (!v || v._isBigNumber !== true) return false;\r\n    if (!BigNumber.DEBUG) return true;\r\n\r\n    var i, n,\r\n      c = v.c,\r\n      e = v.e,\r\n      s = v.s;\r\n\r\n    out: if ({}.toString.call(c) == '[object Array]') {\r\n\r\n      if ((s === 1 || s === -1) && e >= -MAX && e <= MAX && e === mathfloor(e)) {\r\n\r\n        // If the first element is zero, the BigNumber value must be zero.\r\n        if (c[0] === 0) {\r\n          if (e === 0 && c.length === 1) return true;\r\n          break out;\r\n        }\r\n\r\n        // Calculate number of digits that c[0] should have, based on the exponent.\r\n        i = (e + 1) % LOG_BASE;\r\n        if (i < 1) i += LOG_BASE;\r\n\r\n        // Calculate number of digits of c[0].\r\n        //if (Math.ceil(Math.log(c[0] + 1) / Math.LN10) == i) {\r\n        if (String(c[0]).length == i) {\r\n\r\n          for (i = 0; i < c.length; i++) {\r\n            n = c[i];\r\n            if (n < 0 || n >= BASE || n !== mathfloor(n)) break out;\r\n          }\r\n\r\n          // Last element cannot be zero, unless it is the only element.\r\n          if (n !== 0) return true;\r\n        }\r\n      }\r\n\r\n    // Infinity/NaN\r\n    } else if (c === null && e === null && (s === null || s === 1 || s === -1)) {\r\n      return true;\r\n    }\r\n\r\n    throw Error\r\n      (bignumberError + 'Invalid BigNumber: ' + v);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a new BigNumber whose value is the maximum of the arguments.\r\n   *\r\n   * arguments {number|string|BigNumber}\r\n   */\r\n  BigNumber.maximum = BigNumber.max = function () {\r\n    return maxOrMin(arguments, -1);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a new BigNumber whose value is the minimum of the arguments.\r\n   *\r\n   * arguments {number|string|BigNumber}\r\n   */\r\n  BigNumber.minimum = BigNumber.min = function () {\r\n    return maxOrMin(arguments, 1);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a new BigNumber with a random value equal to or greater than 0 and less than 1,\r\n   * and with dp, or DECIMAL_PLACES if dp is omitted, decimal places (or less if trailing\r\n   * zeros are produced).\r\n   *\r\n   * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n   *\r\n   * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp}'\r\n   * '[BigNumber Error] crypto unavailable'\r\n   */\r\n  BigNumber.random = (function () {\r\n    var pow2_53 = 0x20000000000000;\r\n\r\n    // Return a 53 bit integer n, where 0 <= n < 9007199254740992.\r\n    // Check if Math.random() produces more than 32 bits of randomness.\r\n    // If it does, assume at least 53 bits are produced, otherwise assume at least 30 bits.\r\n    // 0x40000000 is 2^30, 0x800000 is 2^23, 0x1fffff is 2^21 - 1.\r\n    var random53bitInt = (Math.random() * pow2_53) & 0x1fffff\r\n     ? function () { return mathfloor(Math.random() * pow2_53); }\r\n     : function () { return ((Math.random() * 0x40000000 | 0) * 0x800000) +\r\n       (Math.random() * 0x800000 | 0); };\r\n\r\n    return function (dp) {\r\n      var a, b, e, k, v,\r\n        i = 0,\r\n        c = [],\r\n        rand = new BigNumber(ONE);\r\n\r\n      if (dp == null) dp = DECIMAL_PLACES;\r\n      else intCheck(dp, 0, MAX);\r\n\r\n      k = mathceil(dp / LOG_BASE);\r\n\r\n      if (CRYPTO) {\r\n\r\n        // Browsers supporting crypto.getRandomValues.\r\n        if (crypto.getRandomValues) {\r\n\r\n          a = crypto.getRandomValues(new Uint32Array(k *= 2));\r\n\r\n          for (; i < k;) {\r\n\r\n            // 53 bits:\r\n            // ((Math.pow(2, 32) - 1) * Math.pow(2, 21)).toString(2)\r\n            // 11111 11111111 11111111 11111111 11100000 00000000 00000000\r\n            // ((Math.pow(2, 32) - 1) >>> 11).toString(2)\r\n            //                                     11111 11111111 11111111\r\n            // 0x20000 is 2^21.\r\n            v = a[i] * 0x20000 + (a[i + 1] >>> 11);\r\n\r\n            // Rejection sampling:\r\n            // 0 <= v < 9007199254740992\r\n            // Probability that v >= 9e15, is\r\n            // 7199254740992 / 9007199254740992 ~= 0.0008, i.e. 1 in 1251\r\n            if (v >= 9e15) {\r\n              b = crypto.getRandomValues(new Uint32Array(2));\r\n              a[i] = b[0];\r\n              a[i + 1] = b[1];\r\n            } else {\r\n\r\n              // 0 <= v <= 8999999999999999\r\n              // 0 <= (v % 1e14) <= 99999999999999\r\n              c.push(v % 1e14);\r\n              i += 2;\r\n            }\r\n          }\r\n          i = k / 2;\r\n\r\n        // Node.js supporting crypto.randomBytes.\r\n        } else if (crypto.randomBytes) {\r\n\r\n          // buffer\r\n          a = crypto.randomBytes(k *= 7);\r\n\r\n          for (; i < k;) {\r\n\r\n            // 0x1000000000000 is 2^48, 0x10000000000 is 2^40\r\n            // 0x100000000 is 2^32, 0x1000000 is 2^24\r\n            // 11111 11111111 11111111 11111111 11111111 11111111 11111111\r\n            // 0 <= v < 9007199254740992\r\n            v = ((a[i] & 31) * 0x1000000000000) + (a[i + 1] * 0x10000000000) +\r\n               (a[i + 2] * 0x100000000) + (a[i + 3] * 0x1000000) +\r\n               (a[i + 4] << 16) + (a[i + 5] << 8) + a[i + 6];\r\n\r\n            if (v >= 9e15) {\r\n              crypto.randomBytes(7).copy(a, i);\r\n            } else {\r\n\r\n              // 0 <= (v % 1e14) <= 99999999999999\r\n              c.push(v % 1e14);\r\n              i += 7;\r\n            }\r\n          }\r\n          i = k / 7;\r\n        } else {\r\n          CRYPTO = false;\r\n          throw Error\r\n           (bignumberError + 'crypto unavailable');\r\n        }\r\n      }\r\n\r\n      // Use Math.random.\r\n      if (!CRYPTO) {\r\n\r\n        for (; i < k;) {\r\n          v = random53bitInt();\r\n          if (v < 9e15) c[i++] = v % 1e14;\r\n        }\r\n      }\r\n\r\n      k = c[--i];\r\n      dp %= LOG_BASE;\r\n\r\n      // Convert trailing digits to zeros according to dp.\r\n      if (k && dp) {\r\n        v = POWS_TEN[LOG_BASE - dp];\r\n        c[i] = mathfloor(k / v) * v;\r\n      }\r\n\r\n      // Remove trailing elements which are zero.\r\n      for (; c[i] === 0; c.pop(), i--);\r\n\r\n      // Zero?\r\n      if (i < 0) {\r\n        c = [e = 0];\r\n      } else {\r\n\r\n        // Remove leading elements which are zero and adjust exponent accordingly.\r\n        for (e = -1 ; c[0] === 0; c.splice(0, 1), e -= LOG_BASE);\r\n\r\n        // Count the digits of the first element of c to determine leading zeros, and...\r\n        for (i = 1, v = c[0]; v >= 10; v /= 10, i++);\r\n\r\n        // adjust the exponent accordingly.\r\n        if (i < LOG_BASE) e -= LOG_BASE - i;\r\n      }\r\n\r\n      rand.e = e;\r\n      rand.c = c;\r\n      return rand;\r\n    };\r\n  })();\r\n\r\n\r\n   /*\r\n   * Return a BigNumber whose value is the sum of the arguments.\r\n   *\r\n   * arguments {number|string|BigNumber}\r\n   */\r\n  BigNumber.sum = function () {\r\n    var i = 1,\r\n      args = arguments,\r\n      sum = new BigNumber(args[0]);\r\n    for (; i < args.length;) sum = sum.plus(args[i++]);\r\n    return sum;\r\n  };\r\n\r\n\r\n  // PRIVATE FUNCTIONS\r\n\r\n\r\n  // Called by BigNumber and BigNumber.prototype.toString.\r\n  convertBase = (function () {\r\n    var decimal = '0123456789';\r\n\r\n    /*\r\n     * Convert string of baseIn to an array of numbers of baseOut.\r\n     * Eg. toBaseOut('255', 10, 16) returns [15, 15].\r\n     * Eg. toBaseOut('ff', 16, 10) returns [2, 5, 5].\r\n     */\r\n    function toBaseOut(str, baseIn, baseOut, alphabet) {\r\n      var j,\r\n        arr = [0],\r\n        arrL,\r\n        i = 0,\r\n        len = str.length;\r\n\r\n      for (; i < len;) {\r\n        for (arrL = arr.length; arrL--; arr[arrL] *= baseIn);\r\n\r\n        arr[0] += alphabet.indexOf(str.charAt(i++));\r\n\r\n        for (j = 0; j < arr.length; j++) {\r\n\r\n          if (arr[j] > baseOut - 1) {\r\n            if (arr[j + 1] == null) arr[j + 1] = 0;\r\n            arr[j + 1] += arr[j] / baseOut | 0;\r\n            arr[j] %= baseOut;\r\n          }\r\n        }\r\n      }\r\n\r\n      return arr.reverse();\r\n    }\r\n\r\n    // Convert a numeric string of baseIn to a numeric string of baseOut.\r\n    // If the caller is toString, we are converting from base 10 to baseOut.\r\n    // If the caller is BigNumber, we are converting from baseIn to base 10.\r\n    return function (str, baseIn, baseOut, sign, callerIsToString) {\r\n      var alphabet, d, e, k, r, x, xc, y,\r\n        i = str.indexOf('.'),\r\n        dp = DECIMAL_PLACES,\r\n        rm = ROUNDING_MODE;\r\n\r\n      // Non-integer.\r\n      if (i >= 0) {\r\n        k = POW_PRECISION;\r\n\r\n        // Unlimited precision.\r\n        POW_PRECISION = 0;\r\n        str = str.replace('.', '');\r\n        y = new BigNumber(baseIn);\r\n        x = y.pow(str.length - i);\r\n        POW_PRECISION = k;\r\n\r\n        // Convert str as if an integer, then restore the fraction part by dividing the\r\n        // result by its base raised to a power.\r\n\r\n        y.c = toBaseOut(toFixedPoint(coeffToString(x.c), x.e, '0'),\r\n         10, baseOut, decimal);\r\n        y.e = y.c.length;\r\n      }\r\n\r\n      // Convert the number as integer.\r\n\r\n      xc = toBaseOut(str, baseIn, baseOut, callerIsToString\r\n       ? (alphabet = ALPHABET, decimal)\r\n       : (alphabet = decimal, ALPHABET));\r\n\r\n      // xc now represents str as an integer and converted to baseOut. e is the exponent.\r\n      e = k = xc.length;\r\n\r\n      // Remove trailing zeros.\r\n      for (; xc[--k] == 0; xc.pop());\r\n\r\n      // Zero?\r\n      if (!xc[0]) return alphabet.charAt(0);\r\n\r\n      // Does str represent an integer? If so, no need for the division.\r\n      if (i < 0) {\r\n        --e;\r\n      } else {\r\n        x.c = xc;\r\n        x.e = e;\r\n\r\n        // The sign is needed for correct rounding.\r\n        x.s = sign;\r\n        x = div(x, y, dp, rm, baseOut);\r\n        xc = x.c;\r\n        r = x.r;\r\n        e = x.e;\r\n      }\r\n\r\n      // xc now represents str converted to baseOut.\r\n\r\n      // The index of the rounding digit.\r\n      d = e + dp + 1;\r\n\r\n      // The rounding digit: the digit to the right of the digit that may be rounded up.\r\n      i = xc[d];\r\n\r\n      // Look at the rounding digits and mode to determine whether to round up.\r\n\r\n      k = baseOut / 2;\r\n      r = r || d < 0 || xc[d + 1] != null;\r\n\r\n      r = rm < 4 ? (i != null || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n            : i > k || i == k &&(rm == 4 || r || rm == 6 && xc[d - 1] & 1 ||\r\n             rm == (x.s < 0 ? 8 : 7));\r\n\r\n      // If the index of the rounding digit is not greater than zero, or xc represents\r\n      // zero, then the result of the base conversion is zero or, if rounding up, a value\r\n      // such as 0.00001.\r\n      if (d < 1 || !xc[0]) {\r\n\r\n        // 1^-dp or 0\r\n        str = r ? toFixedPoint(alphabet.charAt(1), -dp, alphabet.charAt(0)) : alphabet.charAt(0);\r\n      } else {\r\n\r\n        // Truncate xc to the required number of decimal places.\r\n        xc.length = d;\r\n\r\n        // Round up?\r\n        if (r) {\r\n\r\n          // Rounding up may mean the previous digit has to be rounded up and so on.\r\n          for (--baseOut; ++xc[--d] > baseOut;) {\r\n            xc[d] = 0;\r\n\r\n            if (!d) {\r\n              ++e;\r\n              xc = [1].concat(xc);\r\n            }\r\n          }\r\n        }\r\n\r\n        // Determine trailing zeros.\r\n        for (k = xc.length; !xc[--k];);\r\n\r\n        // E.g. [4, 11, 15] becomes 4bf.\r\n        for (i = 0, str = ''; i <= k; str += alphabet.charAt(xc[i++]));\r\n\r\n        // Add leading zeros, decimal point and trailing zeros as required.\r\n        str = toFixedPoint(str, e, alphabet.charAt(0));\r\n      }\r\n\r\n      // The caller will add the sign.\r\n      return str;\r\n    };\r\n  })();\r\n\r\n\r\n  // Perform division in the specified base. Called by div and convertBase.\r\n  div = (function () {\r\n\r\n    // Assume non-zero x and k.\r\n    function multiply(x, k, base) {\r\n      var m, temp, xlo, xhi,\r\n        carry = 0,\r\n        i = x.length,\r\n        klo = k % SQRT_BASE,\r\n        khi = k / SQRT_BASE | 0;\r\n\r\n      for (x = x.slice(); i--;) {\r\n        xlo = x[i] % SQRT_BASE;\r\n        xhi = x[i] / SQRT_BASE | 0;\r\n        m = khi * xlo + xhi * klo;\r\n        temp = klo * xlo + ((m % SQRT_BASE) * SQRT_BASE) + carry;\r\n        carry = (temp / base | 0) + (m / SQRT_BASE | 0) + khi * xhi;\r\n        x[i] = temp % base;\r\n      }\r\n\r\n      if (carry) x = [carry].concat(x);\r\n\r\n      return x;\r\n    }\r\n\r\n    function compare(a, b, aL, bL) {\r\n      var i, cmp;\r\n\r\n      if (aL != bL) {\r\n        cmp = aL > bL ? 1 : -1;\r\n      } else {\r\n\r\n        for (i = cmp = 0; i < aL; i++) {\r\n\r\n          if (a[i] != b[i]) {\r\n            cmp = a[i] > b[i] ? 1 : -1;\r\n            break;\r\n          }\r\n        }\r\n      }\r\n\r\n      return cmp;\r\n    }\r\n\r\n    function subtract(a, b, aL, base) {\r\n      var i = 0;\r\n\r\n      // Subtract b from a.\r\n      for (; aL--;) {\r\n        a[aL] -= i;\r\n        i = a[aL] < b[aL] ? 1 : 0;\r\n        a[aL] = i * base + a[aL] - b[aL];\r\n      }\r\n\r\n      // Remove leading zeros.\r\n      for (; !a[0] && a.length > 1; a.splice(0, 1));\r\n    }\r\n\r\n    // x: dividend, y: divisor.\r\n    return function (x, y, dp, rm, base) {\r\n      var cmp, e, i, more, n, prod, prodL, q, qc, rem, remL, rem0, xi, xL, yc0,\r\n        yL, yz,\r\n        s = x.s == y.s ? 1 : -1,\r\n        xc = x.c,\r\n        yc = y.c;\r\n\r\n      // Either NaN, Infinity or 0?\r\n      if (!xc || !xc[0] || !yc || !yc[0]) {\r\n\r\n        return new BigNumber(\r\n\r\n         // Return NaN if either NaN, or both Infinity or 0.\r\n         !x.s || !y.s || (xc ? yc && xc[0] == yc[0] : !yc) ? NaN :\r\n\r\n          // Return ±0 if x is ±0 or y is ±Infinity, or return ±Infinity as y is ±0.\r\n          xc && xc[0] == 0 || !yc ? s * 0 : s / 0\r\n       );\r\n      }\r\n\r\n      q = new BigNumber(s);\r\n      qc = q.c = [];\r\n      e = x.e - y.e;\r\n      s = dp + e + 1;\r\n\r\n      if (!base) {\r\n        base = BASE;\r\n        e = bitFloor(x.e / LOG_BASE) - bitFloor(y.e / LOG_BASE);\r\n        s = s / LOG_BASE | 0;\r\n      }\r\n\r\n      // Result exponent may be one less then the current value of e.\r\n      // The coefficients of the BigNumbers from convertBase may have trailing zeros.\r\n      for (i = 0; yc[i] == (xc[i] || 0); i++);\r\n\r\n      if (yc[i] > (xc[i] || 0)) e--;\r\n\r\n      if (s < 0) {\r\n        qc.push(1);\r\n        more = true;\r\n      } else {\r\n        xL = xc.length;\r\n        yL = yc.length;\r\n        i = 0;\r\n        s += 2;\r\n\r\n        // Normalise xc and yc so highest order digit of yc is >= base / 2.\r\n\r\n        n = mathfloor(base / (yc[0] + 1));\r\n\r\n        // Not necessary, but to handle odd bases where yc[0] == (base / 2) - 1.\r\n        // if (n > 1 || n++ == 1 && yc[0] < base / 2) {\r\n        if (n > 1) {\r\n          yc = multiply(yc, n, base);\r\n          xc = multiply(xc, n, base);\r\n          yL = yc.length;\r\n          xL = xc.length;\r\n        }\r\n\r\n        xi = yL;\r\n        rem = xc.slice(0, yL);\r\n        remL = rem.length;\r\n\r\n        // Add zeros to make remainder as long as divisor.\r\n        for (; remL < yL; rem[remL++] = 0);\r\n        yz = yc.slice();\r\n        yz = [0].concat(yz);\r\n        yc0 = yc[0];\r\n        if (yc[1] >= base / 2) yc0++;\r\n        // Not necessary, but to prevent trial digit n > base, when using base 3.\r\n        // else if (base == 3 && yc0 == 1) yc0 = 1 + 1e-15;\r\n\r\n        do {\r\n          n = 0;\r\n\r\n          // Compare divisor and remainder.\r\n          cmp = compare(yc, rem, yL, remL);\r\n\r\n          // If divisor < remainder.\r\n          if (cmp < 0) {\r\n\r\n            // Calculate trial digit, n.\r\n\r\n            rem0 = rem[0];\r\n            if (yL != remL) rem0 = rem0 * base + (rem[1] || 0);\r\n\r\n            // n is how many times the divisor goes into the current remainder.\r\n            n = mathfloor(rem0 / yc0);\r\n\r\n            //  Algorithm:\r\n            //  product = divisor multiplied by trial digit (n).\r\n            //  Compare product and remainder.\r\n            //  If product is greater than remainder:\r\n            //    Subtract divisor from product, decrement trial digit.\r\n            //  Subtract product from remainder.\r\n            //  If product was less than remainder at the last compare:\r\n            //    Compare new remainder and divisor.\r\n            //    If remainder is greater than divisor:\r\n            //      Subtract divisor from remainder, increment trial digit.\r\n\r\n            if (n > 1) {\r\n\r\n              // n may be > base only when base is 3.\r\n              if (n >= base) n = base - 1;\r\n\r\n              // product = divisor * trial digit.\r\n              prod = multiply(yc, n, base);\r\n              prodL = prod.length;\r\n              remL = rem.length;\r\n\r\n              // Compare product and remainder.\r\n              // If product > remainder then trial digit n too high.\r\n              // n is 1 too high about 5% of the time, and is not known to have\r\n              // ever been more than 1 too high.\r\n              while (compare(prod, rem, prodL, remL) == 1) {\r\n                n--;\r\n\r\n                // Subtract divisor from product.\r\n                subtract(prod, yL < prodL ? yz : yc, prodL, base);\r\n                prodL = prod.length;\r\n                cmp = 1;\r\n              }\r\n            } else {\r\n\r\n              // n is 0 or 1, cmp is -1.\r\n              // If n is 0, there is no need to compare yc and rem again below,\r\n              // so change cmp to 1 to avoid it.\r\n              // If n is 1, leave cmp as -1, so yc and rem are compared again.\r\n              if (n == 0) {\r\n\r\n                // divisor < remainder, so n must be at least 1.\r\n                cmp = n = 1;\r\n              }\r\n\r\n              // product = divisor\r\n              prod = yc.slice();\r\n              prodL = prod.length;\r\n            }\r\n\r\n            if (prodL < remL) prod = [0].concat(prod);\r\n\r\n            // Subtract product from remainder.\r\n            subtract(rem, prod, remL, base);\r\n            remL = rem.length;\r\n\r\n             // If product was < remainder.\r\n            if (cmp == -1) {\r\n\r\n              // Compare divisor and new remainder.\r\n              // If divisor < new remainder, subtract divisor from remainder.\r\n              // Trial digit n too low.\r\n              // n is 1 too low about 5% of the time, and very rarely 2 too low.\r\n              while (compare(yc, rem, yL, remL) < 1) {\r\n                n++;\r\n\r\n                // Subtract divisor from remainder.\r\n                subtract(rem, yL < remL ? yz : yc, remL, base);\r\n                remL = rem.length;\r\n              }\r\n            }\r\n          } else if (cmp === 0) {\r\n            n++;\r\n            rem = [0];\r\n          } // else cmp === 1 and n will be 0\r\n\r\n          // Add the next digit, n, to the result array.\r\n          qc[i++] = n;\r\n\r\n          // Update the remainder.\r\n          if (rem[0]) {\r\n            rem[remL++] = xc[xi] || 0;\r\n          } else {\r\n            rem = [xc[xi]];\r\n            remL = 1;\r\n          }\r\n        } while ((xi++ < xL || rem[0] != null) && s--);\r\n\r\n        more = rem[0] != null;\r\n\r\n        // Leading zero?\r\n        if (!qc[0]) qc.splice(0, 1);\r\n      }\r\n\r\n      if (base == BASE) {\r\n\r\n        // To calculate q.e, first get the number of digits of qc[0].\r\n        for (i = 1, s = qc[0]; s >= 10; s /= 10, i++);\r\n\r\n        round(q, dp + (q.e = i + e * LOG_BASE - 1) + 1, rm, more);\r\n\r\n      // Caller is convertBase.\r\n      } else {\r\n        q.e = e;\r\n        q.r = +more;\r\n      }\r\n\r\n      return q;\r\n    };\r\n  })();\r\n\r\n\r\n  /*\r\n   * Return a string representing the value of BigNumber n in fixed-point or exponential\r\n   * notation rounded to the specified decimal places or significant digits.\r\n   *\r\n   * n: a BigNumber.\r\n   * i: the index of the last digit required (i.e. the digit that may be rounded up).\r\n   * rm: the rounding mode.\r\n   * id: 1 (toExponential) or 2 (toPrecision).\r\n   */\r\n  function format(n, i, rm, id) {\r\n    var c0, e, ne, len, str;\r\n\r\n    if (rm == null) rm = ROUNDING_MODE;\r\n    else intCheck(rm, 0, 8);\r\n\r\n    if (!n.c) return n.toString();\r\n\r\n    c0 = n.c[0];\r\n    ne = n.e;\r\n\r\n    if (i == null) {\r\n      str = coeffToString(n.c);\r\n      str = id == 1 || id == 2 && (ne <= TO_EXP_NEG || ne >= TO_EXP_POS)\r\n       ? toExponential(str, ne)\r\n       : toFixedPoint(str, ne, '0');\r\n    } else {\r\n      n = round(new BigNumber(n), i, rm);\r\n\r\n      // n.e may have changed if the value was rounded up.\r\n      e = n.e;\r\n\r\n      str = coeffToString(n.c);\r\n      len = str.length;\r\n\r\n      // toPrecision returns exponential notation if the number of significant digits\r\n      // specified is less than the number of digits necessary to represent the integer\r\n      // part of the value in fixed-point notation.\r\n\r\n      // Exponential notation.\r\n      if (id == 1 || id == 2 && (i <= e || e <= TO_EXP_NEG)) {\r\n\r\n        // Append zeros?\r\n        for (; len < i; str += '0', len++);\r\n        str = toExponential(str, e);\r\n\r\n      // Fixed-point notation.\r\n      } else {\r\n        i -= ne;\r\n        str = toFixedPoint(str, e, '0');\r\n\r\n        // Append zeros?\r\n        if (e + 1 > len) {\r\n          if (--i > 0) for (str += '.'; i--; str += '0');\r\n        } else {\r\n          i += e - len;\r\n          if (i > 0) {\r\n            if (e + 1 == len) str += '.';\r\n            for (; i--; str += '0');\r\n          }\r\n        }\r\n      }\r\n    }\r\n\r\n    return n.s < 0 && c0 ? '-' + str : str;\r\n  }\r\n\r\n\r\n  // Handle BigNumber.max and BigNumber.min.\r\n  // If any number is NaN, return NaN.\r\n  function maxOrMin(args, n) {\r\n    var k, y,\r\n      i = 1,\r\n      x = new BigNumber(args[0]);\r\n\r\n    for (; i < args.length; i++) {\r\n      y = new BigNumber(args[i]);\r\n      if (!y.s || (k = compare(x, y)) === n || k === 0 && x.s === n) {\r\n        x = y;\r\n      }\r\n    }\r\n\r\n    return x;\r\n  }\r\n\r\n\r\n  /*\r\n   * Strip trailing zeros, calculate base 10 exponent and check against MIN_EXP and MAX_EXP.\r\n   * Called by minus, plus and times.\r\n   */\r\n  function normalise(n, c, e) {\r\n    var i = 1,\r\n      j = c.length;\r\n\r\n     // Remove trailing zeros.\r\n    for (; !c[--j]; c.pop());\r\n\r\n    // Calculate the base 10 exponent. First get the number of digits of c[0].\r\n    for (j = c[0]; j >= 10; j /= 10, i++);\r\n\r\n    // Overflow?\r\n    if ((e = i + e * LOG_BASE - 1) > MAX_EXP) {\r\n\r\n      // Infinity.\r\n      n.c = n.e = null;\r\n\r\n    // Underflow?\r\n    } else if (e < MIN_EXP) {\r\n\r\n      // Zero.\r\n      n.c = [n.e = 0];\r\n    } else {\r\n      n.e = e;\r\n      n.c = c;\r\n    }\r\n\r\n    return n;\r\n  }\r\n\r\n\r\n  // Handle values that fail the validity test in BigNumber.\r\n  parseNumeric = (function () {\r\n    var basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i,\r\n      dotAfter = /^([^.]+)\\.$/,\r\n      dotBefore = /^\\.([^.]+)$/,\r\n      isInfinityOrNaN = /^-?(Infinity|NaN)$/,\r\n      whitespaceOrPlus = /^\\s*\\+(?=[\\w.])|^\\s+|\\s+$/g;\r\n\r\n    return function (x, str, isNum, b) {\r\n      var base,\r\n        s = isNum ? str : str.replace(whitespaceOrPlus, '');\r\n\r\n      // No exception on ±Infinity or NaN.\r\n      if (isInfinityOrNaN.test(s)) {\r\n        x.s = isNaN(s) ? null : s < 0 ? -1 : 1;\r\n      } else {\r\n        if (!isNum) {\r\n\r\n          // basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i\r\n          s = s.replace(basePrefix, function (m, p1, p2) {\r\n            base = (p2 = p2.toLowerCase()) == 'x' ? 16 : p2 == 'b' ? 2 : 8;\r\n            return !b || b == base ? p1 : m;\r\n          });\r\n\r\n          if (b) {\r\n            base = b;\r\n\r\n            // E.g. '1.' to '1', '.1' to '0.1'\r\n            s = s.replace(dotAfter, '$1').replace(dotBefore, '0.$1');\r\n          }\r\n\r\n          if (str != s) return new BigNumber(s, base);\r\n        }\r\n\r\n        // '[BigNumber Error] Not a number: {n}'\r\n        // '[BigNumber Error] Not a base {b} number: {n}'\r\n        if (BigNumber.DEBUG) {\r\n          throw Error\r\n            (bignumberError + 'Not a' + (b ? ' base ' + b : '') + ' number: ' + str);\r\n        }\r\n\r\n        // NaN\r\n        x.s = null;\r\n      }\r\n\r\n      x.c = x.e = null;\r\n    }\r\n  })();\r\n\r\n\r\n  /*\r\n   * Round x to sd significant digits using rounding mode rm. Check for over/under-flow.\r\n   * If r is truthy, it is known that there are more digits after the rounding digit.\r\n   */\r\n  function round(x, sd, rm, r) {\r\n    var d, i, j, k, n, ni, rd,\r\n      xc = x.c,\r\n      pows10 = POWS_TEN;\r\n\r\n    // if x is not Infinity or NaN...\r\n    if (xc) {\r\n\r\n      // rd is the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n      // n is a base 1e14 number, the value of the element of array x.c containing rd.\r\n      // ni is the index of n within x.c.\r\n      // d is the number of digits of n.\r\n      // i is the index of rd within n including leading zeros.\r\n      // j is the actual index of rd within n (if < 0, rd is a leading zero).\r\n      out: {\r\n\r\n        // Get the number of digits of the first element of xc.\r\n        for (d = 1, k = xc[0]; k >= 10; k /= 10, d++);\r\n        i = sd - d;\r\n\r\n        // If the rounding digit is in the first element of xc...\r\n        if (i < 0) {\r\n          i += LOG_BASE;\r\n          j = sd;\r\n          n = xc[ni = 0];\r\n\r\n          // Get the rounding digit at index j of n.\r\n          rd = mathfloor(n / pows10[d - j - 1] % 10);\r\n        } else {\r\n          ni = mathceil((i + 1) / LOG_BASE);\r\n\r\n          if (ni >= xc.length) {\r\n\r\n            if (r) {\r\n\r\n              // Needed by sqrt.\r\n              for (; xc.length <= ni; xc.push(0));\r\n              n = rd = 0;\r\n              d = 1;\r\n              i %= LOG_BASE;\r\n              j = i - LOG_BASE + 1;\r\n            } else {\r\n              break out;\r\n            }\r\n          } else {\r\n            n = k = xc[ni];\r\n\r\n            // Get the number of digits of n.\r\n            for (d = 1; k >= 10; k /= 10, d++);\r\n\r\n            // Get the index of rd within n.\r\n            i %= LOG_BASE;\r\n\r\n            // Get the index of rd within n, adjusted for leading zeros.\r\n            // The number of leading zeros of n is given by LOG_BASE - d.\r\n            j = i - LOG_BASE + d;\r\n\r\n            // Get the rounding digit at index j of n.\r\n            rd = j < 0 ? 0 : mathfloor(n / pows10[d - j - 1] % 10);\r\n          }\r\n        }\r\n\r\n        r = r || sd < 0 ||\r\n\r\n        // Are there any non-zero digits after the rounding digit?\r\n        // The expression  n % pows10[d - j - 1]  returns all digits of n to the right\r\n        // of the digit at j, e.g. if n is 908714 and j is 2, the expression gives 714.\r\n         xc[ni + 1] != null || (j < 0 ? n : n % pows10[d - j - 1]);\r\n\r\n        r = rm < 4\r\n         ? (rd || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n         : rd > 5 || rd == 5 && (rm == 4 || r || rm == 6 &&\r\n\r\n          // Check whether the digit to the left of the rounding digit is odd.\r\n          ((i > 0 ? j > 0 ? n / pows10[d - j] : 0 : xc[ni - 1]) % 10) & 1 ||\r\n           rm == (x.s < 0 ? 8 : 7));\r\n\r\n        if (sd < 1 || !xc[0]) {\r\n          xc.length = 0;\r\n\r\n          if (r) {\r\n\r\n            // Convert sd to decimal places.\r\n            sd -= x.e + 1;\r\n\r\n            // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n            xc[0] = pows10[(LOG_BASE - sd % LOG_BASE) % LOG_BASE];\r\n            x.e = -sd || 0;\r\n          } else {\r\n\r\n            // Zero.\r\n            xc[0] = x.e = 0;\r\n          }\r\n\r\n          return x;\r\n        }\r\n\r\n        // Remove excess digits.\r\n        if (i == 0) {\r\n          xc.length = ni;\r\n          k = 1;\r\n          ni--;\r\n        } else {\r\n          xc.length = ni + 1;\r\n          k = pows10[LOG_BASE - i];\r\n\r\n          // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n          // j > 0 means i > number of leading zeros of n.\r\n          xc[ni] = j > 0 ? mathfloor(n / pows10[d - j] % pows10[j]) * k : 0;\r\n        }\r\n\r\n        // Round up?\r\n        if (r) {\r\n\r\n          for (; ;) {\r\n\r\n            // If the digit to be rounded up is in the first element of xc...\r\n            if (ni == 0) {\r\n\r\n              // i will be the length of xc[0] before k is added.\r\n              for (i = 1, j = xc[0]; j >= 10; j /= 10, i++);\r\n              j = xc[0] += k;\r\n              for (k = 1; j >= 10; j /= 10, k++);\r\n\r\n              // if i != k the length has increased.\r\n              if (i != k) {\r\n                x.e++;\r\n                if (xc[0] == BASE) xc[0] = 1;\r\n              }\r\n\r\n              break;\r\n            } else {\r\n              xc[ni] += k;\r\n              if (xc[ni] != BASE) break;\r\n              xc[ni--] = 0;\r\n              k = 1;\r\n            }\r\n          }\r\n        }\r\n\r\n        // Remove trailing zeros.\r\n        for (i = xc.length; xc[--i] === 0; xc.pop());\r\n      }\r\n\r\n      // Overflow? Infinity.\r\n      if (x.e > MAX_EXP) {\r\n        x.c = x.e = null;\r\n\r\n      // Underflow? Zero.\r\n      } else if (x.e < MIN_EXP) {\r\n        x.c = [x.e = 0];\r\n      }\r\n    }\r\n\r\n    return x;\r\n  }\r\n\r\n\r\n  function valueOf(n) {\r\n    var str,\r\n      e = n.e;\r\n\r\n    if (e === null) return n.toString();\r\n\r\n    str = coeffToString(n.c);\r\n\r\n    str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n      ? toExponential(str, e)\r\n      : toFixedPoint(str, e, '0');\r\n\r\n    return n.s < 0 ? '-' + str : str;\r\n  }\r\n\r\n\r\n  // PROTOTYPE/INSTANCE METHODS\r\n\r\n\r\n  /*\r\n   * Return a new BigNumber whose value is the absolute value of this BigNumber.\r\n   */\r\n  P.absoluteValue = P.abs = function () {\r\n    var x = new BigNumber(this);\r\n    if (x.s < 0) x.s = 1;\r\n    return x;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return\r\n   *   1 if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n   *   -1 if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n   *   0 if they have the same value,\r\n   *   or null if the value of either is NaN.\r\n   */\r\n  P.comparedTo = function (y, b) {\r\n    return compare(this, new BigNumber(y, b));\r\n  };\r\n\r\n\r\n  /*\r\n   * If dp is undefined or null or true or false, return the number of decimal places of the\r\n   * value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n   *\r\n   * Otherwise, if dp is a number, return a new BigNumber whose value is the value of this\r\n   * BigNumber rounded to a maximum of dp decimal places using rounding mode rm, or\r\n   * ROUNDING_MODE if rm is omitted.\r\n   *\r\n   * [dp] {number} Decimal places: integer, 0 to MAX inclusive.\r\n   * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n   *\r\n   * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n   */\r\n  P.decimalPlaces = P.dp = function (dp, rm) {\r\n    var c, n, v,\r\n      x = this;\r\n\r\n    if (dp != null) {\r\n      intCheck(dp, 0, MAX);\r\n      if (rm == null) rm = ROUNDING_MODE;\r\n      else intCheck(rm, 0, 8);\r\n\r\n      return round(new BigNumber(x), dp + x.e + 1, rm);\r\n    }\r\n\r\n    if (!(c = x.c)) return null;\r\n    n = ((v = c.length - 1) - bitFloor(this.e / LOG_BASE)) * LOG_BASE;\r\n\r\n    // Subtract the number of trailing zeros of the last number.\r\n    if (v = c[v]) for (; v % 10 == 0; v /= 10, n--);\r\n    if (n < 0) n = 0;\r\n\r\n    return n;\r\n  };\r\n\r\n\r\n  /*\r\n   *  n / 0 = I\r\n   *  n / N = N\r\n   *  n / I = 0\r\n   *  0 / n = 0\r\n   *  0 / 0 = N\r\n   *  0 / N = N\r\n   *  0 / I = 0\r\n   *  N / n = N\r\n   *  N / 0 = N\r\n   *  N / N = N\r\n   *  N / I = N\r\n   *  I / n = I\r\n   *  I / 0 = I\r\n   *  I / N = N\r\n   *  I / I = N\r\n   *\r\n   * Return a new BigNumber whose value is the value of this BigNumber divided by the value of\r\n   * BigNumber(y, b), rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n   */\r\n  P.dividedBy = P.div = function (y, b) {\r\n    return div(this, new BigNumber(y, b), DECIMAL_PLACES, ROUNDING_MODE);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a new BigNumber whose value is the integer part of dividing the value of this\r\n   * BigNumber by the value of BigNumber(y, b).\r\n   */\r\n  P.dividedToIntegerBy = P.idiv = function (y, b) {\r\n    return div(this, new BigNumber(y, b), 0, 1);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a BigNumber whose value is the value of this BigNumber exponentiated by n.\r\n   *\r\n   * If m is present, return the result modulo m.\r\n   * If n is negative round according to DECIMAL_PLACES and ROUNDING_MODE.\r\n   * If POW_PRECISION is non-zero and m is not present, round to POW_PRECISION using ROUNDING_MODE.\r\n   *\r\n   * The modular power operation works efficiently when x, n, and m are integers, otherwise it\r\n   * is equivalent to calculating x.exponentiatedBy(n).modulo(m) with a POW_PRECISION of 0.\r\n   *\r\n   * n {number|string|BigNumber} The exponent. An integer.\r\n   * [m] {number|string|BigNumber} The modulus.\r\n   *\r\n   * '[BigNumber Error] Exponent not an integer: {n}'\r\n   */\r\n  P.exponentiatedBy = P.pow = function (n, m) {\r\n    var half, isModExp, i, k, more, nIsBig, nIsNeg, nIsOdd, y,\r\n      x = this;\r\n\r\n    n = new BigNumber(n);\r\n\r\n    // Allow NaN and ±Infinity, but not other non-integers.\r\n    if (n.c && !n.isInteger()) {\r\n      throw Error\r\n        (bignumberError + 'Exponent not an integer: ' + valueOf(n));\r\n    }\r\n\r\n    if (m != null) m = new BigNumber(m);\r\n\r\n    // Exponent of MAX_SAFE_INTEGER is 15.\r\n    nIsBig = n.e > 14;\r\n\r\n    // If x is NaN, ±Infinity, ±0 or ±1, or n is ±Infinity, NaN or ±0.\r\n    if (!x.c || !x.c[0] || x.c[0] == 1 && !x.e && x.c.length == 1 || !n.c || !n.c[0]) {\r\n\r\n      // The sign of the result of pow when x is negative depends on the evenness of n.\r\n      // If +n overflows to ±Infinity, the evenness of n would be not be known.\r\n      y = new BigNumber(Math.pow(+valueOf(x), nIsBig ? n.s * (2 - isOdd(n)) : +valueOf(n)));\r\n      return m ? y.mod(m) : y;\r\n    }\r\n\r\n    nIsNeg = n.s < 0;\r\n\r\n    if (m) {\r\n\r\n      // x % m returns NaN if abs(m) is zero, or m is NaN.\r\n      if (m.c ? !m.c[0] : !m.s) return new BigNumber(NaN);\r\n\r\n      isModExp = !nIsNeg && x.isInteger() && m.isInteger();\r\n\r\n      if (isModExp) x = x.mod(m);\r\n\r\n    // Overflow to ±Infinity: >=2**1e10 or >=1.0000024**1e15.\r\n    // Underflow to ±0: <=0.79**1e10 or <=0.9999975**1e15.\r\n    } else if (n.e > 9 && (x.e > 0 || x.e < -1 || (x.e == 0\r\n      // [1, 240000000]\r\n      ? x.c[0] > 1 || nIsBig && x.c[1] >= 24e7\r\n      // [80000000000000]  [99999750000000]\r\n      : x.c[0] < 8e13 || nIsBig && x.c[0] <= 9999975e7))) {\r\n\r\n      // If x is negative and n is odd, k = -0, else k = 0.\r\n      k = x.s < 0 && isOdd(n) ? -0 : 0;\r\n\r\n      // If x >= 1, k = ±Infinity.\r\n      if (x.e > -1) k = 1 / k;\r\n\r\n      // If n is negative return ±0, else return ±Infinity.\r\n      return new BigNumber(nIsNeg ? 1 / k : k);\r\n\r\n    } else if (POW_PRECISION) {\r\n\r\n      // Truncating each coefficient array to a length of k after each multiplication\r\n      // equates to truncating significant digits to POW_PRECISION + [28, 41],\r\n      // i.e. there will be a minimum of 28 guard digits retained.\r\n      k = mathceil(POW_PRECISION / LOG_BASE + 2);\r\n    }\r\n\r\n    if (nIsBig) {\r\n      half = new BigNumber(0.5);\r\n      if (nIsNeg) n.s = 1;\r\n      nIsOdd = isOdd(n);\r\n    } else {\r\n      i = Math.abs(+valueOf(n));\r\n      nIsOdd = i % 2;\r\n    }\r\n\r\n    y = new BigNumber(ONE);\r\n\r\n    // Performs 54 loop iterations for n of 9007199254740991.\r\n    for (; ;) {\r\n\r\n      if (nIsOdd) {\r\n        y = y.times(x);\r\n        if (!y.c) break;\r\n\r\n        if (k) {\r\n          if (y.c.length > k) y.c.length = k;\r\n        } else if (isModExp) {\r\n          y = y.mod(m);    //y = y.minus(div(y, m, 0, MODULO_MODE).times(m));\r\n        }\r\n      }\r\n\r\n      if (i) {\r\n        i = mathfloor(i / 2);\r\n        if (i === 0) break;\r\n        nIsOdd = i % 2;\r\n      } else {\r\n        n = n.times(half);\r\n        round(n, n.e + 1, 1);\r\n\r\n        if (n.e > 14) {\r\n          nIsOdd = isOdd(n);\r\n        } else {\r\n          i = +valueOf(n);\r\n          if (i === 0) break;\r\n          nIsOdd = i % 2;\r\n        }\r\n      }\r\n\r\n      x = x.times(x);\r\n\r\n      if (k) {\r\n        if (x.c && x.c.length > k) x.c.length = k;\r\n      } else if (isModExp) {\r\n        x = x.mod(m);    //x = x.minus(div(x, m, 0, MODULO_MODE).times(m));\r\n      }\r\n    }\r\n\r\n    if (isModExp) return y;\r\n    if (nIsNeg) y = ONE.div(y);\r\n\r\n    return m ? y.mod(m) : k ? round(y, POW_PRECISION, ROUNDING_MODE, more) : y;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a new BigNumber whose value is the value of this BigNumber rounded to an integer\r\n   * using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n   *\r\n   * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n   *\r\n   * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {rm}'\r\n   */\r\n  P.integerValue = function (rm) {\r\n    var n = new BigNumber(this);\r\n    if (rm == null) rm = ROUNDING_MODE;\r\n    else intCheck(rm, 0, 8);\r\n    return round(n, n.e + 1, rm);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if the value of this BigNumber is equal to the value of BigNumber(y, b),\r\n   * otherwise return false.\r\n   */\r\n  P.isEqualTo = P.eq = function (y, b) {\r\n    return compare(this, new BigNumber(y, b)) === 0;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if the value of this BigNumber is a finite number, otherwise return false.\r\n   */\r\n  P.isFinite = function () {\r\n    return !!this.c;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n   * otherwise return false.\r\n   */\r\n  P.isGreaterThan = P.gt = function (y, b) {\r\n    return compare(this, new BigNumber(y, b)) > 0;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if the value of this BigNumber is greater than or equal to the value of\r\n   * BigNumber(y, b), otherwise return false.\r\n   */\r\n  P.isGreaterThanOrEqualTo = P.gte = function (y, b) {\r\n    return (b = compare(this, new BigNumber(y, b))) === 1 || b === 0;\r\n\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if the value of this BigNumber is an integer, otherwise return false.\r\n   */\r\n  P.isInteger = function () {\r\n    return !!this.c && bitFloor(this.e / LOG_BASE) > this.c.length - 2;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n   * otherwise return false.\r\n   */\r\n  P.isLessThan = P.lt = function (y, b) {\r\n    return compare(this, new BigNumber(y, b)) < 0;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if the value of this BigNumber is less than or equal to the value of\r\n   * BigNumber(y, b), otherwise return false.\r\n   */\r\n  P.isLessThanOrEqualTo = P.lte = function (y, b) {\r\n    return (b = compare(this, new BigNumber(y, b))) === -1 || b === 0;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if the value of this BigNumber is NaN, otherwise return false.\r\n   */\r\n  P.isNaN = function () {\r\n    return !this.s;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if the value of this BigNumber is negative, otherwise return false.\r\n   */\r\n  P.isNegative = function () {\r\n    return this.s < 0;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if the value of this BigNumber is positive, otherwise return false.\r\n   */\r\n  P.isPositive = function () {\r\n    return this.s > 0;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if the value of this BigNumber is 0 or -0, otherwise return false.\r\n   */\r\n  P.isZero = function () {\r\n    return !!this.c && this.c[0] == 0;\r\n  };\r\n\r\n\r\n  /*\r\n   *  n - 0 = n\r\n   *  n - N = N\r\n   *  n - I = -I\r\n   *  0 - n = -n\r\n   *  0 - 0 = 0\r\n   *  0 - N = N\r\n   *  0 - I = -I\r\n   *  N - n = N\r\n   *  N - 0 = N\r\n   *  N - N = N\r\n   *  N - I = N\r\n   *  I - n = I\r\n   *  I - 0 = I\r\n   *  I - N = N\r\n   *  I - I = N\r\n   *\r\n   * Return a new BigNumber whose value is the value of this BigNumber minus the value of\r\n   * BigNumber(y, b).\r\n   */\r\n  P.minus = function (y, b) {\r\n    var i, j, t, xLTy,\r\n      x = this,\r\n      a = x.s;\r\n\r\n    y = new BigNumber(y, b);\r\n    b = y.s;\r\n\r\n    // Either NaN?\r\n    if (!a || !b) return new BigNumber(NaN);\r\n\r\n    // Signs differ?\r\n    if (a != b) {\r\n      y.s = -b;\r\n      return x.plus(y);\r\n    }\r\n\r\n    var xe = x.e / LOG_BASE,\r\n      ye = y.e / LOG_BASE,\r\n      xc = x.c,\r\n      yc = y.c;\r\n\r\n    if (!xe || !ye) {\r\n\r\n      // Either Infinity?\r\n      if (!xc || !yc) return xc ? (y.s = -b, y) : new BigNumber(yc ? x : NaN);\r\n\r\n      // Either zero?\r\n      if (!xc[0] || !yc[0]) {\r\n\r\n        // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n        return yc[0] ? (y.s = -b, y) : new BigNumber(xc[0] ? x :\r\n\r\n         // IEEE 754 (2008) 6.3: n - n = -0 when rounding to -Infinity\r\n         ROUNDING_MODE == 3 ? -0 : 0);\r\n      }\r\n    }\r\n\r\n    xe = bitFloor(xe);\r\n    ye = bitFloor(ye);\r\n    xc = xc.slice();\r\n\r\n    // Determine which is the bigger number.\r\n    if (a = xe - ye) {\r\n\r\n      if (xLTy = a < 0) {\r\n        a = -a;\r\n        t = xc;\r\n      } else {\r\n        ye = xe;\r\n        t = yc;\r\n      }\r\n\r\n      t.reverse();\r\n\r\n      // Prepend zeros to equalise exponents.\r\n      for (b = a; b--; t.push(0));\r\n      t.reverse();\r\n    } else {\r\n\r\n      // Exponents equal. Check digit by digit.\r\n      j = (xLTy = (a = xc.length) < (b = yc.length)) ? a : b;\r\n\r\n      for (a = b = 0; b < j; b++) {\r\n\r\n        if (xc[b] != yc[b]) {\r\n          xLTy = xc[b] < yc[b];\r\n          break;\r\n        }\r\n      }\r\n    }\r\n\r\n    // x < y? Point xc to the array of the bigger number.\r\n    if (xLTy) {\r\n      t = xc;\r\n      xc = yc;\r\n      yc = t;\r\n      y.s = -y.s;\r\n    }\r\n\r\n    b = (j = yc.length) - (i = xc.length);\r\n\r\n    // Append zeros to xc if shorter.\r\n    // No need to add zeros to yc if shorter as subtract only needs to start at yc.length.\r\n    if (b > 0) for (; b--; xc[i++] = 0);\r\n    b = BASE - 1;\r\n\r\n    // Subtract yc from xc.\r\n    for (; j > a;) {\r\n\r\n      if (xc[--j] < yc[j]) {\r\n        for (i = j; i && !xc[--i]; xc[i] = b);\r\n        --xc[i];\r\n        xc[j] += BASE;\r\n      }\r\n\r\n      xc[j] -= yc[j];\r\n    }\r\n\r\n    // Remove leading zeros and adjust exponent accordingly.\r\n    for (; xc[0] == 0; xc.splice(0, 1), --ye);\r\n\r\n    // Zero?\r\n    if (!xc[0]) {\r\n\r\n      // Following IEEE 754 (2008) 6.3,\r\n      // n - n = +0  but  n - n = -0  when rounding towards -Infinity.\r\n      y.s = ROUNDING_MODE == 3 ? -1 : 1;\r\n      y.c = [y.e = 0];\r\n      return y;\r\n    }\r\n\r\n    // No need to check for Infinity as +x - +y != Infinity && -x - -y != Infinity\r\n    // for finite x and y.\r\n    return normalise(y, xc, ye);\r\n  };\r\n\r\n\r\n  /*\r\n   *   n % 0 =  N\r\n   *   n % N =  N\r\n   *   n % I =  n\r\n   *   0 % n =  0\r\n   *  -0 % n = -0\r\n   *   0 % 0 =  N\r\n   *   0 % N =  N\r\n   *   0 % I =  0\r\n   *   N % n =  N\r\n   *   N % 0 =  N\r\n   *   N % N =  N\r\n   *   N % I =  N\r\n   *   I % n =  N\r\n   *   I % 0 =  N\r\n   *   I % N =  N\r\n   *   I % I =  N\r\n   *\r\n   * Return a new BigNumber whose value is the value of this BigNumber modulo the value of\r\n   * BigNumber(y, b). The result depends on the value of MODULO_MODE.\r\n   */\r\n  P.modulo = P.mod = function (y, b) {\r\n    var q, s,\r\n      x = this;\r\n\r\n    y = new BigNumber(y, b);\r\n\r\n    // Return NaN if x is Infinity or NaN, or y is NaN or zero.\r\n    if (!x.c || !y.s || y.c && !y.c[0]) {\r\n      return new BigNumber(NaN);\r\n\r\n    // Return x if y is Infinity or x is zero.\r\n    } else if (!y.c || x.c && !x.c[0]) {\r\n      return new BigNumber(x);\r\n    }\r\n\r\n    if (MODULO_MODE == 9) {\r\n\r\n      // Euclidian division: q = sign(y) * floor(x / abs(y))\r\n      // r = x - qy    where  0 <= r < abs(y)\r\n      s = y.s;\r\n      y.s = 1;\r\n      q = div(x, y, 0, 3);\r\n      y.s = s;\r\n      q.s *= s;\r\n    } else {\r\n      q = div(x, y, 0, MODULO_MODE);\r\n    }\r\n\r\n    y = x.minus(q.times(y));\r\n\r\n    // To match JavaScript %, ensure sign of zero is sign of dividend.\r\n    if (!y.c[0] && MODULO_MODE == 1) y.s = x.s;\r\n\r\n    return y;\r\n  };\r\n\r\n\r\n  /*\r\n   *  n * 0 = 0\r\n   *  n * N = N\r\n   *  n * I = I\r\n   *  0 * n = 0\r\n   *  0 * 0 = 0\r\n   *  0 * N = N\r\n   *  0 * I = N\r\n   *  N * n = N\r\n   *  N * 0 = N\r\n   *  N * N = N\r\n   *  N * I = N\r\n   *  I * n = I\r\n   *  I * 0 = N\r\n   *  I * N = N\r\n   *  I * I = I\r\n   *\r\n   * Return a new BigNumber whose value is the value of this BigNumber multiplied by the value\r\n   * of BigNumber(y, b).\r\n   */\r\n  P.multipliedBy = P.times = function (y, b) {\r\n    var c, e, i, j, k, m, xcL, xlo, xhi, ycL, ylo, yhi, zc,\r\n      base, sqrtBase,\r\n      x = this,\r\n      xc = x.c,\r\n      yc = (y = new BigNumber(y, b)).c;\r\n\r\n    // Either NaN, ±Infinity or ±0?\r\n    if (!xc || !yc || !xc[0] || !yc[0]) {\r\n\r\n      // Return NaN if either is NaN, or one is 0 and the other is Infinity.\r\n      if (!x.s || !y.s || xc && !xc[0] && !yc || yc && !yc[0] && !xc) {\r\n        y.c = y.e = y.s = null;\r\n      } else {\r\n        y.s *= x.s;\r\n\r\n        // Return ±Infinity if either is ±Infinity.\r\n        if (!xc || !yc) {\r\n          y.c = y.e = null;\r\n\r\n        // Return ±0 if either is ±0.\r\n        } else {\r\n          y.c = [0];\r\n          y.e = 0;\r\n        }\r\n      }\r\n\r\n      return y;\r\n    }\r\n\r\n    e = bitFloor(x.e / LOG_BASE) + bitFloor(y.e / LOG_BASE);\r\n    y.s *= x.s;\r\n    xcL = xc.length;\r\n    ycL = yc.length;\r\n\r\n    // Ensure xc points to longer array and xcL to its length.\r\n    if (xcL < ycL) {\r\n      zc = xc;\r\n      xc = yc;\r\n      yc = zc;\r\n      i = xcL;\r\n      xcL = ycL;\r\n      ycL = i;\r\n    }\r\n\r\n    // Initialise the result array with zeros.\r\n    for (i = xcL + ycL, zc = []; i--; zc.push(0));\r\n\r\n    base = BASE;\r\n    sqrtBase = SQRT_BASE;\r\n\r\n    for (i = ycL; --i >= 0;) {\r\n      c = 0;\r\n      ylo = yc[i] % sqrtBase;\r\n      yhi = yc[i] / sqrtBase | 0;\r\n\r\n      for (k = xcL, j = i + k; j > i;) {\r\n        xlo = xc[--k] % sqrtBase;\r\n        xhi = xc[k] / sqrtBase | 0;\r\n        m = yhi * xlo + xhi * ylo;\r\n        xlo = ylo * xlo + ((m % sqrtBase) * sqrtBase) + zc[j] + c;\r\n        c = (xlo / base | 0) + (m / sqrtBase | 0) + yhi * xhi;\r\n        zc[j--] = xlo % base;\r\n      }\r\n\r\n      zc[j] = c;\r\n    }\r\n\r\n    if (c) {\r\n      ++e;\r\n    } else {\r\n      zc.splice(0, 1);\r\n    }\r\n\r\n    return normalise(y, zc, e);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a new BigNumber whose value is the value of this BigNumber negated,\r\n   * i.e. multiplied by -1.\r\n   */\r\n  P.negated = function () {\r\n    var x = new BigNumber(this);\r\n    x.s = -x.s || null;\r\n    return x;\r\n  };\r\n\r\n\r\n  /*\r\n   *  n + 0 = n\r\n   *  n + N = N\r\n   *  n + I = I\r\n   *  0 + n = n\r\n   *  0 + 0 = 0\r\n   *  0 + N = N\r\n   *  0 + I = I\r\n   *  N + n = N\r\n   *  N + 0 = N\r\n   *  N + N = N\r\n   *  N + I = N\r\n   *  I + n = I\r\n   *  I + 0 = I\r\n   *  I + N = N\r\n   *  I + I = I\r\n   *\r\n   * Return a new BigNumber whose value is the value of this BigNumber plus the value of\r\n   * BigNumber(y, b).\r\n   */\r\n  P.plus = function (y, b) {\r\n    var t,\r\n      x = this,\r\n      a = x.s;\r\n\r\n    y = new BigNumber(y, b);\r\n    b = y.s;\r\n\r\n    // Either NaN?\r\n    if (!a || !b) return new BigNumber(NaN);\r\n\r\n    // Signs differ?\r\n     if (a != b) {\r\n      y.s = -b;\r\n      return x.minus(y);\r\n    }\r\n\r\n    var xe = x.e / LOG_BASE,\r\n      ye = y.e / LOG_BASE,\r\n      xc = x.c,\r\n      yc = y.c;\r\n\r\n    if (!xe || !ye) {\r\n\r\n      // Return ±Infinity if either ±Infinity.\r\n      if (!xc || !yc) return new BigNumber(a / 0);\r\n\r\n      // Either zero?\r\n      // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n      if (!xc[0] || !yc[0]) return yc[0] ? y : new BigNumber(xc[0] ? x : a * 0);\r\n    }\r\n\r\n    xe = bitFloor(xe);\r\n    ye = bitFloor(ye);\r\n    xc = xc.slice();\r\n\r\n    // Prepend zeros to equalise exponents. Faster to use reverse then do unshifts.\r\n    if (a = xe - ye) {\r\n      if (a > 0) {\r\n        ye = xe;\r\n        t = yc;\r\n      } else {\r\n        a = -a;\r\n        t = xc;\r\n      }\r\n\r\n      t.reverse();\r\n      for (; a--; t.push(0));\r\n      t.reverse();\r\n    }\r\n\r\n    a = xc.length;\r\n    b = yc.length;\r\n\r\n    // Point xc to the longer array, and b to the shorter length.\r\n    if (a - b < 0) {\r\n      t = yc;\r\n      yc = xc;\r\n      xc = t;\r\n      b = a;\r\n    }\r\n\r\n    // Only start adding at yc.length - 1 as the further digits of xc can be ignored.\r\n    for (a = 0; b;) {\r\n      a = (xc[--b] = xc[b] + yc[b] + a) / BASE | 0;\r\n      xc[b] = BASE === xc[b] ? 0 : xc[b] % BASE;\r\n    }\r\n\r\n    if (a) {\r\n      xc = [a].concat(xc);\r\n      ++ye;\r\n    }\r\n\r\n    // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n    // ye = MAX_EXP + 1 possible\r\n    return normalise(y, xc, ye);\r\n  };\r\n\r\n\r\n  /*\r\n   * If sd is undefined or null or true or false, return the number of significant digits of\r\n   * the value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n   * If sd is true include integer-part trailing zeros in the count.\r\n   *\r\n   * Otherwise, if sd is a number, return a new BigNumber whose value is the value of this\r\n   * BigNumber rounded to a maximum of sd significant digits using rounding mode rm, or\r\n   * ROUNDING_MODE if rm is omitted.\r\n   *\r\n   * sd {number|boolean} number: significant digits: integer, 1 to MAX inclusive.\r\n   *                     boolean: whether to count integer-part trailing zeros: true or false.\r\n   * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n   *\r\n   * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n   */\r\n  P.precision = P.sd = function (sd, rm) {\r\n    var c, n, v,\r\n      x = this;\r\n\r\n    if (sd != null && sd !== !!sd) {\r\n      intCheck(sd, 1, MAX);\r\n      if (rm == null) rm = ROUNDING_MODE;\r\n      else intCheck(rm, 0, 8);\r\n\r\n      return round(new BigNumber(x), sd, rm);\r\n    }\r\n\r\n    if (!(c = x.c)) return null;\r\n    v = c.length - 1;\r\n    n = v * LOG_BASE + 1;\r\n\r\n    if (v = c[v]) {\r\n\r\n      // Subtract the number of trailing zeros of the last element.\r\n      for (; v % 10 == 0; v /= 10, n--);\r\n\r\n      // Add the number of digits of the first element.\r\n      for (v = c[0]; v >= 10; v /= 10, n++);\r\n    }\r\n\r\n    if (sd && x.e + 1 > n) n = x.e + 1;\r\n\r\n    return n;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a new BigNumber whose value is the value of this BigNumber shifted by k places\r\n   * (powers of 10). Shift to the right if n > 0, and to the left if n < 0.\r\n   *\r\n   * k {number} Integer, -MAX_SAFE_INTEGER to MAX_SAFE_INTEGER inclusive.\r\n   *\r\n   * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {k}'\r\n   */\r\n  P.shiftedBy = function (k) {\r\n    intCheck(k, -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER);\r\n    return this.times('1e' + k);\r\n  };\r\n\r\n\r\n  /*\r\n   *  sqrt(-n) =  N\r\n   *  sqrt(N) =  N\r\n   *  sqrt(-I) =  N\r\n   *  sqrt(I) =  I\r\n   *  sqrt(0) =  0\r\n   *  sqrt(-0) = -0\r\n   *\r\n   * Return a new BigNumber whose value is the square root of the value of this BigNumber,\r\n   * rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n   */\r\n  P.squareRoot = P.sqrt = function () {\r\n    var m, n, r, rep, t,\r\n      x = this,\r\n      c = x.c,\r\n      s = x.s,\r\n      e = x.e,\r\n      dp = DECIMAL_PLACES + 4,\r\n      half = new BigNumber('0.5');\r\n\r\n    // Negative/NaN/Infinity/zero?\r\n    if (s !== 1 || !c || !c[0]) {\r\n      return new BigNumber(!s || s < 0 && (!c || c[0]) ? NaN : c ? x : 1 / 0);\r\n    }\r\n\r\n    // Initial estimate.\r\n    s = Math.sqrt(+valueOf(x));\r\n\r\n    // Math.sqrt underflow/overflow?\r\n    // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n    if (s == 0 || s == 1 / 0) {\r\n      n = coeffToString(c);\r\n      if ((n.length + e) % 2 == 0) n += '0';\r\n      s = Math.sqrt(+n);\r\n      e = bitFloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n      if (s == 1 / 0) {\r\n        n = '5e' + e;\r\n      } else {\r\n        n = s.toExponential();\r\n        n = n.slice(0, n.indexOf('e') + 1) + e;\r\n      }\r\n\r\n      r = new BigNumber(n);\r\n    } else {\r\n      r = new BigNumber(s + '');\r\n    }\r\n\r\n    // Check for zero.\r\n    // r could be zero if MIN_EXP is changed after the this value was created.\r\n    // This would cause a division by zero (x/t) and hence Infinity below, which would cause\r\n    // coeffToString to throw.\r\n    if (r.c[0]) {\r\n      e = r.e;\r\n      s = e + dp;\r\n      if (s < 3) s = 0;\r\n\r\n      // Newton-Raphson iteration.\r\n      for (; ;) {\r\n        t = r;\r\n        r = half.times(t.plus(div(x, t, dp, 1)));\r\n\r\n        if (coeffToString(t.c).slice(0, s) === (n = coeffToString(r.c)).slice(0, s)) {\r\n\r\n          // The exponent of r may here be one less than the final result exponent,\r\n          // e.g 0.0009999 (e-4) --> 0.001 (e-3), so adjust s so the rounding digits\r\n          // are indexed correctly.\r\n          if (r.e < e) --s;\r\n          n = n.slice(s - 3, s + 1);\r\n\r\n          // The 4th rounding digit may be in error by -1 so if the 4 rounding digits\r\n          // are 9999 or 4999 (i.e. approaching a rounding boundary) continue the\r\n          // iteration.\r\n          if (n == '9999' || !rep && n == '4999') {\r\n\r\n            // On the first iteration only, check to see if rounding up gives the\r\n            // exact result as the nines may infinitely repeat.\r\n            if (!rep) {\r\n              round(t, t.e + DECIMAL_PLACES + 2, 0);\r\n\r\n              if (t.times(t).eq(x)) {\r\n                r = t;\r\n                break;\r\n              }\r\n            }\r\n\r\n            dp += 4;\r\n            s += 4;\r\n            rep = 1;\r\n          } else {\r\n\r\n            // If rounding digits are null, 0{0,4} or 50{0,3}, check for exact\r\n            // result. If not, then there are further digits and m will be truthy.\r\n            if (!+n || !+n.slice(1) && n.charAt(0) == '5') {\r\n\r\n              // Truncate to the first rounding digit.\r\n              round(r, r.e + DECIMAL_PLACES + 2, 1);\r\n              m = !r.times(r).eq(x);\r\n            }\r\n\r\n            break;\r\n          }\r\n        }\r\n      }\r\n    }\r\n\r\n    return round(r, r.e + DECIMAL_PLACES + 1, ROUNDING_MODE, m);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a string representing the value of this BigNumber in exponential notation and\r\n   * rounded using ROUNDING_MODE to dp fixed decimal places.\r\n   *\r\n   * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n   * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n   *\r\n   * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n   */\r\n  P.toExponential = function (dp, rm) {\r\n    if (dp != null) {\r\n      intCheck(dp, 0, MAX);\r\n      dp++;\r\n    }\r\n    return format(this, dp, rm, 1);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a string representing the value of this BigNumber in fixed-point notation rounding\r\n   * to dp fixed decimal places using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n   *\r\n   * Note: as with JavaScript's number type, (-0).toFixed(0) is '0',\r\n   * but e.g. (-0.00001).toFixed(0) is '-0'.\r\n   *\r\n   * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n   * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n   *\r\n   * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n   */\r\n  P.toFixed = function (dp, rm) {\r\n    if (dp != null) {\r\n      intCheck(dp, 0, MAX);\r\n      dp = dp + this.e + 1;\r\n    }\r\n    return format(this, dp, rm);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a string representing the value of this BigNumber in fixed-point notation rounded\r\n   * using rm or ROUNDING_MODE to dp decimal places, and formatted according to the properties\r\n   * of the format or FORMAT object (see BigNumber.set).\r\n   *\r\n   * The formatting object may contain some or all of the properties shown below.\r\n   *\r\n   * FORMAT = {\r\n   *   prefix: '',\r\n   *   groupSize: 3,\r\n   *   secondaryGroupSize: 0,\r\n   *   groupSeparator: ',',\r\n   *   decimalSeparator: '.',\r\n   *   fractionGroupSize: 0,\r\n   *   fractionGroupSeparator: '\\xA0',      // non-breaking space\r\n   *   suffix: ''\r\n   * };\r\n   *\r\n   * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n   * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n   * [format] {object} Formatting options. See FORMAT pbject above.\r\n   *\r\n   * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n   * '[BigNumber Error] Argument not an object: {format}'\r\n   */\r\n  P.toFormat = function (dp, rm, format) {\r\n    var str,\r\n      x = this;\r\n\r\n    if (format == null) {\r\n      if (dp != null && rm && typeof rm == 'object') {\r\n        format = rm;\r\n        rm = null;\r\n      } else if (dp && typeof dp == 'object') {\r\n        format = dp;\r\n        dp = rm = null;\r\n      } else {\r\n        format = FORMAT;\r\n      }\r\n    } else if (typeof format != 'object') {\r\n      throw Error\r\n        (bignumberError + 'Argument not an object: ' + format);\r\n    }\r\n\r\n    str = x.toFixed(dp, rm);\r\n\r\n    if (x.c) {\r\n      var i,\r\n        arr = str.split('.'),\r\n        g1 = +format.groupSize,\r\n        g2 = +format.secondaryGroupSize,\r\n        groupSeparator = format.groupSeparator || '',\r\n        intPart = arr[0],\r\n        fractionPart = arr[1],\r\n        isNeg = x.s < 0,\r\n        intDigits = isNeg ? intPart.slice(1) : intPart,\r\n        len = intDigits.length;\r\n\r\n      if (g2) {\r\n        i = g1;\r\n        g1 = g2;\r\n        g2 = i;\r\n        len -= i;\r\n      }\r\n\r\n      if (g1 > 0 && len > 0) {\r\n        i = len % g1 || g1;\r\n        intPart = intDigits.substr(0, i);\r\n        for (; i < len; i += g1) intPart += groupSeparator + intDigits.substr(i, g1);\r\n        if (g2 > 0) intPart += groupSeparator + intDigits.slice(i);\r\n        if (isNeg) intPart = '-' + intPart;\r\n      }\r\n\r\n      str = fractionPart\r\n       ? intPart + (format.decimalSeparator || '') + ((g2 = +format.fractionGroupSize)\r\n        ? fractionPart.replace(new RegExp('\\\\d{' + g2 + '}\\\\B', 'g'),\r\n         '$&' + (format.fractionGroupSeparator || ''))\r\n        : fractionPart)\r\n       : intPart;\r\n    }\r\n\r\n    return (format.prefix || '') + str + (format.suffix || '');\r\n  };\r\n\r\n\r\n  /*\r\n   * Return an array of two BigNumbers representing the value of this BigNumber as a simple\r\n   * fraction with an integer numerator and an integer denominator.\r\n   * The denominator will be a positive non-zero value less than or equal to the specified\r\n   * maximum denominator. If a maximum denominator is not specified, the denominator will be\r\n   * the lowest value necessary to represent the number exactly.\r\n   *\r\n   * [md] {number|string|BigNumber} Integer >= 1, or Infinity. The maximum denominator.\r\n   *\r\n   * '[BigNumber Error] Argument {not an integer|out of range} : {md}'\r\n   */\r\n  P.toFraction = function (md) {\r\n    var d, d0, d1, d2, e, exp, n, n0, n1, q, r, s,\r\n      x = this,\r\n      xc = x.c;\r\n\r\n    if (md != null) {\r\n      n = new BigNumber(md);\r\n\r\n      // Throw if md is less than one or is not an integer, unless it is Infinity.\r\n      if (!n.isInteger() && (n.c || n.s !== 1) || n.lt(ONE)) {\r\n        throw Error\r\n          (bignumberError + 'Argument ' +\r\n            (n.isInteger() ? 'out of range: ' : 'not an integer: ') + valueOf(n));\r\n      }\r\n    }\r\n\r\n    if (!xc) return new BigNumber(x);\r\n\r\n    d = new BigNumber(ONE);\r\n    n1 = d0 = new BigNumber(ONE);\r\n    d1 = n0 = new BigNumber(ONE);\r\n    s = coeffToString(xc);\r\n\r\n    // Determine initial denominator.\r\n    // d is a power of 10 and the minimum max denominator that specifies the value exactly.\r\n    e = d.e = s.length - x.e - 1;\r\n    d.c[0] = POWS_TEN[(exp = e % LOG_BASE) < 0 ? LOG_BASE + exp : exp];\r\n    md = !md || n.comparedTo(d) > 0 ? (e > 0 ? d : n1) : n;\r\n\r\n    exp = MAX_EXP;\r\n    MAX_EXP = 1 / 0;\r\n    n = new BigNumber(s);\r\n\r\n    // n0 = d1 = 0\r\n    n0.c[0] = 0;\r\n\r\n    for (; ;)  {\r\n      q = div(n, d, 0, 1);\r\n      d2 = d0.plus(q.times(d1));\r\n      if (d2.comparedTo(md) == 1) break;\r\n      d0 = d1;\r\n      d1 = d2;\r\n      n1 = n0.plus(q.times(d2 = n1));\r\n      n0 = d2;\r\n      d = n.minus(q.times(d2 = d));\r\n      n = d2;\r\n    }\r\n\r\n    d2 = div(md.minus(d0), d1, 0, 1);\r\n    n0 = n0.plus(d2.times(n1));\r\n    d0 = d0.plus(d2.times(d1));\r\n    n0.s = n1.s = x.s;\r\n    e = e * 2;\r\n\r\n    // Determine which fraction is closer to x, n0/d0 or n1/d1\r\n    r = div(n1, d1, e, ROUNDING_MODE).minus(x).abs().comparedTo(\r\n        div(n0, d0, e, ROUNDING_MODE).minus(x).abs()) < 1 ? [n1, d1] : [n0, d0];\r\n\r\n    MAX_EXP = exp;\r\n\r\n    return r;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return the value of this BigNumber converted to a number primitive.\r\n   */\r\n  P.toNumber = function () {\r\n    return +valueOf(this);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a string representing the value of this BigNumber rounded to sd significant digits\r\n   * using rounding mode rm or ROUNDING_MODE. If sd is less than the number of digits\r\n   * necessary to represent the integer part of the value in fixed-point notation, then use\r\n   * exponential notation.\r\n   *\r\n   * [sd] {number} Significant digits. Integer, 1 to MAX inclusive.\r\n   * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n   *\r\n   * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n   */\r\n  P.toPrecision = function (sd, rm) {\r\n    if (sd != null) intCheck(sd, 1, MAX);\r\n    return format(this, sd, rm, 2);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a string representing the value of this BigNumber in base b, or base 10 if b is\r\n   * omitted. If a base is specified, including base 10, round according to DECIMAL_PLACES and\r\n   * ROUNDING_MODE. If a base is not specified, and this BigNumber has a positive exponent\r\n   * that is equal to or greater than TO_EXP_POS, or a negative exponent equal to or less than\r\n   * TO_EXP_NEG, return exponential notation.\r\n   *\r\n   * [b] {number} Integer, 2 to ALPHABET.length inclusive.\r\n   *\r\n   * '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n   */\r\n  P.toString = function (b) {\r\n    var str,\r\n      n = this,\r\n      s = n.s,\r\n      e = n.e;\r\n\r\n    // Infinity or NaN?\r\n    if (e === null) {\r\n      if (s) {\r\n        str = 'Infinity';\r\n        if (s < 0) str = '-' + str;\r\n      } else {\r\n        str = 'NaN';\r\n      }\r\n    } else {\r\n      if (b == null) {\r\n        str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n         ? toExponential(coeffToString(n.c), e)\r\n         : toFixedPoint(coeffToString(n.c), e, '0');\r\n      } else if (b === 10 && alphabetHasNormalDecimalDigits) {\r\n        n = round(new BigNumber(n), DECIMAL_PLACES + e + 1, ROUNDING_MODE);\r\n        str = toFixedPoint(coeffToString(n.c), n.e, '0');\r\n      } else {\r\n        intCheck(b, 2, ALPHABET.length, 'Base');\r\n        str = convertBase(toFixedPoint(coeffToString(n.c), e, '0'), 10, b, s, true);\r\n      }\r\n\r\n      if (s < 0 && n.c[0]) str = '-' + str;\r\n    }\r\n\r\n    return str;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return as toString, but do not accept a base argument, and include the minus sign for\r\n   * negative zero.\r\n   */\r\n  P.valueOf = P.toJSON = function () {\r\n    return valueOf(this);\r\n  };\r\n\r\n\r\n  P._isBigNumber = true;\r\n\r\n  P[Symbol.toStringTag] = 'BigNumber';\r\n\r\n  // Node.js v10.12.0+\r\n  P[Symbol.for('nodejs.util.inspect.custom')] = P.valueOf;\r\n\r\n  if (configObject != null) BigNumber.set(configObject);\r\n\r\n  return BigNumber;\r\n}\r\n\r\n\r\n// PRIVATE HELPER FUNCTIONS\r\n\r\n// These functions don't need access to variables,\r\n// e.g. DECIMAL_PLACES, in the scope of the `clone` function above.\r\n\r\n\r\nfunction bitFloor(n) {\r\n  var i = n | 0;\r\n  return n > 0 || n === i ? i : i - 1;\r\n}\r\n\r\n\r\n// Return a coefficient array as a string of base 10 digits.\r\nfunction coeffToString(a) {\r\n  var s, z,\r\n    i = 1,\r\n    j = a.length,\r\n    r = a[0] + '';\r\n\r\n  for (; i < j;) {\r\n    s = a[i++] + '';\r\n    z = LOG_BASE - s.length;\r\n    for (; z--; s = '0' + s);\r\n    r += s;\r\n  }\r\n\r\n  // Determine trailing zeros.\r\n  for (j = r.length; r.charCodeAt(--j) === 48;);\r\n\r\n  return r.slice(0, j + 1 || 1);\r\n}\r\n\r\n\r\n// Compare the value of BigNumbers x and y.\r\nfunction compare(x, y) {\r\n  var a, b,\r\n    xc = x.c,\r\n    yc = y.c,\r\n    i = x.s,\r\n    j = y.s,\r\n    k = x.e,\r\n    l = y.e;\r\n\r\n  // Either NaN?\r\n  if (!i || !j) return null;\r\n\r\n  a = xc && !xc[0];\r\n  b = yc && !yc[0];\r\n\r\n  // Either zero?\r\n  if (a || b) return a ? b ? 0 : -j : i;\r\n\r\n  // Signs differ?\r\n  if (i != j) return i;\r\n\r\n  a = i < 0;\r\n  b = k == l;\r\n\r\n  // Either Infinity?\r\n  if (!xc || !yc) return b ? 0 : !xc ^ a ? 1 : -1;\r\n\r\n  // Compare exponents.\r\n  if (!b) return k > l ^ a ? 1 : -1;\r\n\r\n  j = (k = xc.length) < (l = yc.length) ? k : l;\r\n\r\n  // Compare digit by digit.\r\n  for (i = 0; i < j; i++) if (xc[i] != yc[i]) return xc[i] > yc[i] ^ a ? 1 : -1;\r\n\r\n  // Compare lengths.\r\n  return k == l ? 0 : k > l ^ a ? 1 : -1;\r\n}\r\n\r\n\r\n/*\r\n * Check that n is a primitive number, an integer, and in range, otherwise throw.\r\n */\r\nfunction intCheck(n, min, max, name) {\r\n  if (n < min || n > max || n !== mathfloor(n)) {\r\n    throw Error\r\n     (bignumberError + (name || 'Argument') + (typeof n == 'number'\r\n       ? n < min || n > max ? ' out of range: ' : ' not an integer: '\r\n       : ' not a primitive number: ') + String(n));\r\n  }\r\n}\r\n\r\n\r\n// Assumes finite n.\r\nfunction isOdd(n) {\r\n  var k = n.c.length - 1;\r\n  return bitFloor(n.e / LOG_BASE) == k && n.c[k] % 2 != 0;\r\n}\r\n\r\n\r\nfunction toExponential(str, e) {\r\n  return (str.length > 1 ? str.charAt(0) + '.' + str.slice(1) : str) +\r\n   (e < 0 ? 'e' : 'e+') + e;\r\n}\r\n\r\n\r\nfunction toFixedPoint(str, e, z) {\r\n  var len, zs;\r\n\r\n  // Negative exponent?\r\n  if (e < 0) {\r\n\r\n    // Prepend zeros.\r\n    for (zs = z + '.'; ++e; zs += z);\r\n    str = zs + str;\r\n\r\n  // Positive exponent\r\n  } else {\r\n    len = str.length;\r\n\r\n    // Append zeros.\r\n    if (++e > len) {\r\n      for (zs = z, e -= len; --e; zs += z);\r\n      str += zs;\r\n    } else if (e < len) {\r\n      str = str.slice(0, e) + '.' + str.slice(e);\r\n    }\r\n  }\r\n\r\n  return str;\r\n}\r\n\r\n\r\n// EXPORT\r\n\r\n\r\nexport var BigNumber = clone();\r\n\r\nexport default BigNumber;\r\n","/**\n * Big Number Helpers\n */\nimport BigNumber from 'bignumber.js';\n\n/**\n * Check if value is BigNumber, Number, BigInt or number string representation\n * @param number - number to check\n */\nexport const isBigNumber = (number: string | number | bigint | BigNumber): boolean => {\n  if (typeof number === 'bigint') return true;\n  return (\n    ['number', 'object', 'string'].includes(typeof number) &&\n    // eslint-disable-next-line no-restricted-globals\n    (!isNaN(number as number) || Number.isInteger(number) || BigNumber.isBigNumber(number))\n  );\n};\n\n/**\n * BigNumber ceil operation\n */\nexport const ceil = (bigNumber: BigNumber): BigNumber =>\n  bigNumber.integerValue(BigNumber.ROUND_CEIL);\n","// eslint-disable-next-line max-classes-per-file\nimport BigNumber from 'bignumber.js';\nimport { AensName, Int } from '../tx/builder/constants.js';\nimport * as Encoded from './encoder-types.js';\n\n/**\n * aepp-sdk originated error\n * @category exception\n */\nexport abstract class BaseError extends Error {\n  constructor(message: string) {\n    super(message);\n    this.name = 'BaseError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class AccountError extends BaseError {\n  constructor(message: string) {\n    super(message);\n    this.name = 'AccountError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class AensError extends BaseError {\n  constructor(message: string) {\n    super(message);\n    this.name = 'AensError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class AeppError extends BaseError {\n  constructor(message: string) {\n    super(message);\n    this.name = 'AeppError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class ChannelError extends BaseError {\n  constructor(message: string) {\n    super(message);\n    this.name = 'ChannelError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class CompilerError extends BaseError {\n  constructor(message: string) {\n    super(message);\n    this.name = 'CompilerError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class ContractError extends BaseError {\n  constructor(message: string) {\n    super(message);\n    this.name = 'ContractError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class CryptographyError extends BaseError {\n  constructor(message: string) {\n    super(message);\n    this.name = 'CryptographyError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class NodeError extends BaseError {\n  constructor(message: string) {\n    super(message);\n    this.name = 'NodeError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class TransactionError extends BaseError {\n  constructor(message: string) {\n    super(message);\n    this.name = 'TransactionError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class WalletError extends BaseError {\n  constructor(message: string) {\n    super(message);\n    this.name = 'WalletError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class ArgumentError extends BaseError {\n  constructor(argumentName: string, requirement: unknown, argumentValue: unknown) {\n    super(`${argumentName} should be ${requirement}, got ${argumentValue} instead`);\n    this.name = 'ArgumentError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class IllegalArgumentError extends CryptographyError {\n  constructor(message: string) {\n    super(message);\n    this.name = 'IllegalArgumentError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class ArgumentCountMismatchError extends BaseError {\n  constructor(functionName: string, requiredCount: number, providedCount: number) {\n    super(`${functionName} expects ${requiredCount} arguments, got ${providedCount} instead`);\n    this.name = 'ArgumentCountMismatchError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class InsufficientBalanceError extends BaseError {\n  constructor(message: string) {\n    super(message);\n    this.name = 'InsufficientBalanceError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class MissingParamError extends BaseError {\n  constructor(message: string) {\n    super(message);\n    this.name = 'MissingParamError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class NoSerializerFoundError extends BaseError {\n  constructor() {\n    super('Byte serialization not supported');\n    this.name = 'NoSerializerFoundError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class RequestTimedOutError extends BaseError {\n  constructor(height: number) {\n    super(`Giving up at height ${height}`);\n    this.name = 'RequestTimedOutError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class TxTimedOutError extends BaseError {\n  constructor(blocks: number, th: Encoded.TxHash) {\n    super(`Giving up after ${blocks} blocks mined, transaction hash: ${th}`);\n    this.name = 'TxTimedOutError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class TypeError extends BaseError {\n  constructor(message: string) {\n    super(message);\n    this.name = 'TypeError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class UnsupportedPlatformError extends BaseError {\n  constructor(message: string) {\n    super(message);\n    this.name = 'UnsupportedPlatformError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class UnsupportedProtocolError extends BaseError {\n  constructor(message: string) {\n    super(message);\n    this.name = 'UnsupportedProtocolError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class NotImplementedError extends BaseError {\n  constructor(message: string) {\n    super(message);\n    this.name = 'NotImplementedError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class UnsupportedVersionError extends BaseError {\n  constructor(dependency: string, version: string, geVersion: string, ltVersion?: string) {\n    super(\n      `Unsupported ${dependency} version ${version}. Supported: >= ${geVersion}` +\n        (ltVersion == null ? '' : ` < ${ltVersion}`),\n    );\n    this.name = 'UnsupportedVersionError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class LogicError extends BaseError {\n  constructor(message: string) {\n    super(message);\n    this.name = 'LogicError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class InternalError extends BaseError {\n  constructor(message: string) {\n    super(message);\n    this.name = 'InternalError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class UnexpectedTsError extends InternalError {\n  constructor(message = 'Expected to not happen, required for TS') {\n    super(message);\n    this.name = 'UnexpectedTsError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class UnavailableAccountError extends AccountError {\n  constructor(address: Encoded.AccountAddress) {\n    super(`Account for ${address} not available`);\n    this.name = 'UnavailableAccountError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class AensPointerContextError extends AensError {\n  constructor(nameOrId: AensName | Encoded.Name, prefix: string) {\n    super(`Name ${nameOrId} don't have pointers for ${prefix}`);\n    this.name = 'AensPointerContextError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class InsufficientNameFeeError extends AensError {\n  constructor(nameFee: BigNumber, minNameFee: BigNumber) {\n    super(\n      `the provided fee ${nameFee.toString()} is not enough to execute the claim, required: ${minNameFee.toString()}`,\n    );\n    this.name = 'InsufficientNameFeeError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class InvalidAensNameError extends AensError {\n  constructor(message: string) {\n    super(message);\n    this.name = 'InvalidAensNameError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class InvalidRpcMessageError extends AeppError {\n  constructor(message: string) {\n    super(`Received invalid message: ${message}`);\n    this.name = 'InvalidRpcMessageError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class MissingCallbackError extends AeppError {\n  constructor(id: number) {\n    super(`Can't find callback for this messageId ${id}`);\n    this.name = 'MissingCallbackError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class UnAuthorizedAccountError extends AeppError {\n  constructor(onAccount: Encoded.AccountAddress) {\n    super(`You do not have access to account ${onAccount}`);\n    this.name = 'UnAuthorizedAccountError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class UnknownRpcClientError extends AeppError {\n  constructor(id: string) {\n    super(`RpcClient with id ${id} do not exist`);\n    this.name = 'UnknownRpcClientError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class UnsubscribedAccountError extends AeppError {\n  constructor() {\n    super('You are not subscribed for an account.');\n    this.name = 'UnsubscribedAccountError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class ChannelCallError extends ChannelError {\n  constructor(message: string) {\n    super(message);\n    this.name = 'ChannelCallError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class ChannelConnectionError extends ChannelError {\n  constructor(message: string) {\n    super(message);\n    this.name = 'ChannelConnectionError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class ChannelPingTimedOutError extends ChannelError {\n  constructor() {\n    super('Server pong timed out');\n    this.name = 'ChannelPingTimedOutError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class UnexpectedChannelMessageError extends ChannelError {\n  constructor(message: string) {\n    super(message);\n    this.name = 'UnexpectedChannelMessageError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class ChannelIncomingMessageError extends ChannelError {\n  handlerError: Error;\n\n  incomingMessage: { [key: string]: any };\n\n  constructor(handlerError: Error, incomingMessage: { [key: string]: any }) {\n    super(handlerError.message);\n    this.handlerError = handlerError;\n    this.incomingMessage = incomingMessage;\n    this.name = 'ChannelIncomingMessageError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class UnknownChannelStateError extends ChannelError {\n  constructor() {\n    super('State Channels FSM entered unknown state');\n    this.name = 'UnknownChannelStateError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class InvalidAuthDataError extends CompilerError {\n  constructor(message: string) {\n    super(message);\n    this.name = 'InvalidAuthDataError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class BytecodeMismatchError extends ContractError {\n  constructor(source: 'source code' | 'bytecode' | 'ACI', details: string = '') {\n    super(`Contract ${source} do not correspond to the bytecode deployed on the chain` + details);\n    this.name = 'BytecodeMismatchError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class DuplicateContractError extends ContractError {\n  constructor() {\n    super('Contract already deployed');\n    this.name = 'DuplicateContractError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class InactiveContractError extends ContractError {\n  constructor(contractAddress: Encoded.ContractAddress) {\n    super(`Contract with address ${contractAddress} not active`);\n    this.name = 'InactiveContractError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class InvalidMethodInvocationError extends ContractError {\n  constructor(message: string) {\n    super(message);\n    this.name = 'InvalidMethodInvocationError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class MissingContractAddressError extends ContractError {\n  constructor(message: string) {\n    super(message);\n    this.name = 'MissingContractAddressError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class MissingContractDefError extends ContractError {\n  constructor() {\n    super('Either ACI or sourceCode or sourceCodePath is required');\n    this.name = 'MissingContractDefError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class MissingFunctionNameError extends ContractError {\n  constructor() {\n    super('Function name is required');\n    this.name = 'MissingFunctionNameError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class NodeInvocationError extends ContractError {\n  transaction?: Encoded.Transaction;\n\n  constructor(message: string, transaction?: Encoded.Transaction) {\n    super(`Invocation failed${message == null ? '' : `: \"${message}\"`}`);\n    this.name = 'NodeInvocationError';\n    this.transaction = transaction;\n  }\n}\n\n/**\n * @category exception\n */\nexport class NoSuchContractFunctionError extends ContractError {\n  constructor(name: string) {\n    super(`Function ${name} doesn't exist in contract`);\n    this.name = 'NoSuchContractFunctionError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class NotPayableFunctionError extends ContractError {\n  constructor(amount: Int, fn: string) {\n    super(\n      `You try to pay \"${amount}\" to function \"${fn}\" which is not payable. ` +\n        'Only payable function can accept coins',\n    );\n    this.name = 'NotPayableFunctionError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class MissingEventDefinitionError extends ContractError {\n  constructor(eventNameHash: string, eventAddress: Encoded.ContractAddress) {\n    super(\n      `Can't find definition of ${eventNameHash} event emitted by ${eventAddress}` +\n        ' (use omitUnknown option to ignore events like this)',\n    );\n    this.name = 'MissingEventDefinitionError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class AmbiguousEventDefinitionError extends ContractError {\n  constructor(eventAddress: Encoded.ContractAddress, matchedEvents: Array<[string, string]>) {\n    super(\n      `Found multiple definitions of \"${matchedEvents[0][1]}\" event with different types emitted by` +\n        ` ${eventAddress} in ${matchedEvents.map(([name]) => `\"${name}\"`).join(', ')} contracts` +\n        ' (use contractAddressToName option to specify contract name corresponding to address)',\n    );\n    this.name = 'AmbiguousEventDefinitionError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class InvalidChecksumError extends CryptographyError {\n  constructor() {\n    super('Invalid checksum');\n    this.name = 'InvalidChecksumError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class MerkleTreeHashMismatchError extends CryptographyError {\n  constructor() {\n    super('Node hash is not equal to provided one');\n    this.name = 'MerkleTreeHashMismatchError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class MissingNodeInTreeError extends CryptographyError {\n  constructor(message: string) {\n    super(message);\n    this.name = 'MissingNodeInTreeError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class UnknownNodeLengthError extends CryptographyError {\n  constructor(nodeLength: number) {\n    super(`Unknown node length: ${nodeLength}`);\n    this.name = 'UnknownNodeLengthError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class UnknownPathNibbleError extends CryptographyError {\n  constructor(nibble: number) {\n    super(`Unknown path nibble: ${nibble}`);\n    this.name = 'UnknownPathNibbleError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class DuplicateNodeError extends NodeError {\n  constructor(name: string) {\n    super(`Node with name ${name} already exist`);\n    this.name = 'DuplicateNodeError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class NodeNotFoundError extends NodeError {\n  constructor(message: string) {\n    super(message);\n    this.name = 'NodeNotFoundError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class DecodeError extends TransactionError {\n  constructor(message: string) {\n    super(message);\n    this.name = 'DecodeError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class PayloadLengthError extends TransactionError {\n  constructor(message: string) {\n    super(message);\n    this.name = 'PayloadLengthError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class DryRunError extends TransactionError {\n  constructor(message: string) {\n    super(message);\n    this.name = 'DryRunError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class IllegalBidFeeError extends TransactionError {\n  constructor(message: string) {\n    super(message);\n    this.name = 'IllegalBidFeeError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class InvalidSignatureError extends TransactionError {\n  constructor(message: string) {\n    super(message);\n    this.name = 'InvalidSignatureError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class PrefixNotFoundError extends TransactionError {\n  constructor(tag: number) {\n    super(`Prefix for id-tag ${tag} not found.`);\n    this.name = 'PrefixNotFoundError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class SchemaNotFoundError extends TransactionError {\n  constructor(key: string, version: number) {\n    super(`Transaction schema not implemented for tag ${key} version ${version}`);\n    this.name = 'SchemaNotFoundError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class TagNotFoundError extends TransactionError {\n  constructor(prefix: string) {\n    super(`Id tag for prefix ${prefix} not found.`);\n    this.name = 'DecodeError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class TxNotInChainError extends TransactionError {\n  constructor(txHash: Encoded.TxHash) {\n    super(`Transaction ${txHash} is removed from chain`);\n    this.name = 'TxNotInChainError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class AlreadyConnectedError extends WalletError {\n  constructor(message: string) {\n    super(message);\n    this.name = 'AlreadyConnectedError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class NoWalletConnectedError extends WalletError {\n  constructor(message: string) {\n    super(message);\n    this.name = 'NoWalletConnectedError';\n  }\n}\n\n/**\n * @category exception\n */\nexport class RpcConnectionError extends WalletError {\n  constructor(message: string) {\n    super(message);\n    this.name = 'RpcConnectionError';\n  }\n}\n","import BigNumber from 'bignumber.js';\nimport { isBigNumber } from './bignumber.js';\nimport { ArgumentError } from './errors.js';\n\n/**\n * @deprecated no replacement implemented yet\n * @category utils\n */\nexport enum AE_AMOUNT_FORMATS {\n  AE = 'ae',\n  MILI_AE = 'miliAE',\n  MICRO_AE = 'microAE',\n  NANO_AE = 'nanoAE',\n  PICO_AE = 'picoAE',\n  FEMTO_AE = 'femtoAE',\n  AETTOS = 'aettos',\n}\n\n/**\n * DENOMINATION_MAGNITUDE\n */\nconst DENOMINATION_MAGNITUDE = {\n  [AE_AMOUNT_FORMATS.AE]: 0,\n  [AE_AMOUNT_FORMATS.MILI_AE]: -3,\n  [AE_AMOUNT_FORMATS.MICRO_AE]: -6,\n  [AE_AMOUNT_FORMATS.NANO_AE]: -9,\n  [AE_AMOUNT_FORMATS.PICO_AE]: -12,\n  [AE_AMOUNT_FORMATS.FEMTO_AE]: -15,\n  [AE_AMOUNT_FORMATS.AETTOS]: -18,\n} as const;\n\n/**\n * Convert amount from one to other denomination\n * @deprecated no replacement implemented yet\n * @category utils\n * @param value - amount to convert\n * @param options - options\n * @param options.denomination - denomination of amount, can be ['ae', 'aettos']\n * @param options.targetDenomination - target denomination,\n * can be ['ae', 'aettos']\n */\nexport const formatAmount = (\n  value: string | number | bigint | BigNumber,\n  {\n    denomination = AE_AMOUNT_FORMATS.AETTOS,\n    targetDenomination = AE_AMOUNT_FORMATS.AETTOS,\n  }: { denomination?: AE_AMOUNT_FORMATS; targetDenomination?: AE_AMOUNT_FORMATS },\n): string => {\n  if (!isBigNumber(value)) throw new ArgumentError('value', 'a number', value);\n\n  return new BigNumber(typeof value === 'bigint' ? value.toString() : value)\n    .shiftedBy(DENOMINATION_MAGNITUDE[denomination] - DENOMINATION_MAGNITUDE[targetDenomination])\n    .toFixed();\n};\n\n/**\n * Convert amount to AE\n * @deprecated no replacement implemented yet\n * @category utils\n * @param value - amount to convert\n * @param options - options\n * @param options.denomination - denomination of amount, can be ['ae', 'aettos']\n */\nexport const toAe = (\n  value: string | number | BigNumber,\n  { denomination = AE_AMOUNT_FORMATS.AETTOS }: { denomination?: AE_AMOUNT_FORMATS } = {},\n): string => formatAmount(value, { denomination, targetDenomination: AE_AMOUNT_FORMATS.AE });\n\n/**\n * Convert amount to aettos\n * @deprecated no replacement implemented yet\n * @category utils\n * @param value - amount to convert\n * @param options - options\n * @param options.denomination - denomination of amount, can be ['ae', 'aettos']\n */\nexport const toAettos = (\n  value: string | number | BigNumber,\n  { denomination = AE_AMOUNT_FORMATS.AE }: { denomination?: AE_AMOUNT_FORMATS } = {},\n): string => formatAmount(value, { denomination });\n\ninterface Prefix {\n  name: string;\n  magnitude: number;\n}\n\nconst prefixes: Prefix[] = [\n  { name: 'exa', magnitude: 18 },\n  { name: 'giga', magnitude: 9 },\n  { name: '', magnitude: 0 },\n  { name: 'pico', magnitude: -12 },\n];\n\nconst getNearestPrefix = (exponent: number): Prefix =>\n  prefixes.reduce((p, n) =>\n    Math.abs(n.magnitude - exponent) < Math.abs(p.magnitude - exponent) ? n : p,\n  );\n\nconst getLowerBoundPrefix = (exponent: number): Prefix =>\n  prefixes.find((p) => p.magnitude <= exponent) ?? prefixes[prefixes.length - 1];\n\n/**\n * @deprecated no replacement implemented yet\n * @category utils\n */\nexport const prefixedAmount = (rawValue: string | number | BigNumber): string => {\n  const value: BigNumber = new BigNumber(rawValue);\n\n  const exp = value.e ?? 0;\n  const { name, magnitude } = (exp < 0 ? getNearestPrefix : getLowerBoundPrefix)(exp);\n  const v = value\n    .shiftedBy(-magnitude)\n    .precision(9 + Math.min(exp - magnitude, 0))\n    .toFixed();\n  return `${v}${name !== '' ? ' ' : ''}${name}`;\n};\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nconst ValidPhaseNames = new Set([\"Deserialize\", \"Serialize\", \"Retry\", \"Sign\"]);\n/**\n * A private implementation of Pipeline.\n * Do not export this class from the package.\n * @internal\n */\nclass HttpPipeline {\n    constructor(policies) {\n        var _a;\n        this._policies = [];\n        this._policies = (_a = policies === null || policies === void 0 ? void 0 : policies.slice(0)) !== null && _a !== void 0 ? _a : [];\n        this._orderedPolicies = undefined;\n    }\n    addPolicy(policy, options = {}) {\n        if (options.phase && options.afterPhase) {\n            throw new Error(\"Policies inside a phase cannot specify afterPhase.\");\n        }\n        if (options.phase && !ValidPhaseNames.has(options.phase)) {\n            throw new Error(`Invalid phase name: ${options.phase}`);\n        }\n        if (options.afterPhase && !ValidPhaseNames.has(options.afterPhase)) {\n            throw new Error(`Invalid afterPhase name: ${options.afterPhase}`);\n        }\n        this._policies.push({\n            policy,\n            options,\n        });\n        this._orderedPolicies = undefined;\n    }\n    removePolicy(options) {\n        const removedPolicies = [];\n        this._policies = this._policies.filter((policyDescriptor) => {\n            if ((options.name && policyDescriptor.policy.name === options.name) ||\n                (options.phase && policyDescriptor.options.phase === options.phase)) {\n                removedPolicies.push(policyDescriptor.policy);\n                return false;\n            }\n            else {\n                return true;\n            }\n        });\n        this._orderedPolicies = undefined;\n        return removedPolicies;\n    }\n    sendRequest(httpClient, request) {\n        const policies = this.getOrderedPolicies();\n        const pipeline = policies.reduceRight((next, policy) => {\n            return (req) => {\n                return policy.sendRequest(req, next);\n            };\n        }, (req) => httpClient.sendRequest(req));\n        return pipeline(request);\n    }\n    getOrderedPolicies() {\n        if (!this._orderedPolicies) {\n            this._orderedPolicies = this.orderPolicies();\n        }\n        return this._orderedPolicies;\n    }\n    clone() {\n        return new HttpPipeline(this._policies);\n    }\n    static create() {\n        return new HttpPipeline();\n    }\n    orderPolicies() {\n        /**\n         * The goal of this method is to reliably order pipeline policies\n         * based on their declared requirements when they were added.\n         *\n         * Order is first determined by phase:\n         *\n         * 1. Serialize Phase\n         * 2. Policies not in a phase\n         * 3. Deserialize Phase\n         * 4. Retry Phase\n         * 5. Sign Phase\n         *\n         * Within each phase, policies are executed in the order\n         * they were added unless they were specified to execute\n         * before/after other policies or after a particular phase.\n         *\n         * To determine the final order, we will walk the policy list\n         * in phase order multiple times until all dependencies are\n         * satisfied.\n         *\n         * `afterPolicies` are the set of policies that must be\n         * executed before a given policy. This requirement is\n         * considered satisfied when each of the listed policies\n         * have been scheduled.\n         *\n         * `beforePolicies` are the set of policies that must be\n         * executed after a given policy. Since this dependency\n         * can be expressed by converting it into a equivalent\n         * `afterPolicies` declarations, they are normalized\n         * into that form for simplicity.\n         *\n         * An `afterPhase` dependency is considered satisfied when all\n         * policies in that phase have scheduled.\n         *\n         */\n        const result = [];\n        // Track all policies we know about.\n        const policyMap = new Map();\n        function createPhase(name) {\n            return {\n                name,\n                policies: new Set(),\n                hasRun: false,\n                hasAfterPolicies: false,\n            };\n        }\n        // Track policies for each phase.\n        const serializePhase = createPhase(\"Serialize\");\n        const noPhase = createPhase(\"None\");\n        const deserializePhase = createPhase(\"Deserialize\");\n        const retryPhase = createPhase(\"Retry\");\n        const signPhase = createPhase(\"Sign\");\n        // a list of phases in order\n        const orderedPhases = [serializePhase, noPhase, deserializePhase, retryPhase, signPhase];\n        // Small helper function to map phase name to each Phase\n        function getPhase(phase) {\n            if (phase === \"Retry\") {\n                return retryPhase;\n            }\n            else if (phase === \"Serialize\") {\n                return serializePhase;\n            }\n            else if (phase === \"Deserialize\") {\n                return deserializePhase;\n            }\n            else if (phase === \"Sign\") {\n                return signPhase;\n            }\n            else {\n                return noPhase;\n            }\n        }\n        // First walk each policy and create a node to track metadata.\n        for (const descriptor of this._policies) {\n            const policy = descriptor.policy;\n            const options = descriptor.options;\n            const policyName = policy.name;\n            if (policyMap.has(policyName)) {\n                throw new Error(\"Duplicate policy names not allowed in pipeline\");\n            }\n            const node = {\n                policy,\n                dependsOn: new Set(),\n                dependants: new Set(),\n            };\n            if (options.afterPhase) {\n                node.afterPhase = getPhase(options.afterPhase);\n                node.afterPhase.hasAfterPolicies = true;\n            }\n            policyMap.set(policyName, node);\n            const phase = getPhase(options.phase);\n            phase.policies.add(node);\n        }\n        // Now that each policy has a node, connect dependency references.\n        for (const descriptor of this._policies) {\n            const { policy, options } = descriptor;\n            const policyName = policy.name;\n            const node = policyMap.get(policyName);\n            if (!node) {\n                throw new Error(`Missing node for policy ${policyName}`);\n            }\n            if (options.afterPolicies) {\n                for (const afterPolicyName of options.afterPolicies) {\n                    const afterNode = policyMap.get(afterPolicyName);\n                    if (afterNode) {\n                        // Linking in both directions helps later\n                        // when we want to notify dependants.\n                        node.dependsOn.add(afterNode);\n                        afterNode.dependants.add(node);\n                    }\n                }\n            }\n            if (options.beforePolicies) {\n                for (const beforePolicyName of options.beforePolicies) {\n                    const beforeNode = policyMap.get(beforePolicyName);\n                    if (beforeNode) {\n                        // To execute before another node, make it\n                        // depend on the current node.\n                        beforeNode.dependsOn.add(node);\n                        node.dependants.add(beforeNode);\n                    }\n                }\n            }\n        }\n        function walkPhase(phase) {\n            phase.hasRun = true;\n            // Sets iterate in insertion order\n            for (const node of phase.policies) {\n                if (node.afterPhase && (!node.afterPhase.hasRun || node.afterPhase.policies.size)) {\n                    // If this node is waiting on a phase to complete,\n                    // we need to skip it for now.\n                    // Even if the phase is empty, we should wait for it\n                    // to be walked to avoid re-ordering policies.\n                    continue;\n                }\n                if (node.dependsOn.size === 0) {\n                    // If there's nothing else we're waiting for, we can\n                    // add this policy to the result list.\n                    result.push(node.policy);\n                    // Notify anything that depends on this policy that\n                    // the policy has been scheduled.\n                    for (const dependant of node.dependants) {\n                        dependant.dependsOn.delete(node);\n                    }\n                    policyMap.delete(node.policy.name);\n                    phase.policies.delete(node);\n                }\n            }\n        }\n        function walkPhases() {\n            for (const phase of orderedPhases) {\n                walkPhase(phase);\n                // if the phase isn't complete\n                if (phase.policies.size > 0 && phase !== noPhase) {\n                    if (!noPhase.hasRun) {\n                        // Try running noPhase to see if that unblocks this phase next tick.\n                        // This can happen if a phase that happens before noPhase\n                        // is waiting on a noPhase policy to complete.\n                        walkPhase(noPhase);\n                    }\n                    // Don't proceed to the next phase until this phase finishes.\n                    return;\n                }\n                if (phase.hasAfterPolicies) {\n                    // Run any policies unblocked by this phase\n                    walkPhase(noPhase);\n                }\n            }\n        }\n        // Iterate until we've put every node in the result list.\n        let iteration = 0;\n        while (policyMap.size > 0) {\n            iteration++;\n            const initialResultLength = result.length;\n            // Keep walking each phase in order until we can order every node.\n            walkPhases();\n            // The result list *should* get at least one larger each time\n            // after the first full pass.\n            // Otherwise, we're going to loop forever.\n            if (result.length <= initialResultLength && iteration > 1) {\n                throw new Error(\"Cannot satisfy policy dependencies due to requirements cycle.\");\n            }\n        }\n        return result;\n    }\n}\n/**\n * Creates a totally empty pipeline.\n * Useful for testing or creating a custom one.\n */\nexport function createEmptyPipeline() {\n    return HttpPipeline.create();\n}\n//# sourceMappingURL=pipeline.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\nimport { log } from \"./log.js\";\nconst debugEnvVariable = (typeof process !== \"undefined\" && process.env && process.env.DEBUG) || undefined;\nlet enabledString;\nlet enabledNamespaces = [];\nlet skippedNamespaces = [];\nconst debuggers = [];\nif (debugEnvVariable) {\n    enable(debugEnvVariable);\n}\nconst debugObj = Object.assign((namespace) => {\n    return createDebugger(namespace);\n}, {\n    enable,\n    enabled,\n    disable,\n    log,\n});\nfunction enable(namespaces) {\n    enabledString = namespaces;\n    enabledNamespaces = [];\n    skippedNamespaces = [];\n    const wildcard = /\\*/g;\n    const namespaceList = namespaces.split(\",\").map((ns) => ns.trim().replace(wildcard, \".*?\"));\n    for (const ns of namespaceList) {\n        if (ns.startsWith(\"-\")) {\n            skippedNamespaces.push(new RegExp(`^${ns.substr(1)}$`));\n        }\n        else {\n            enabledNamespaces.push(new RegExp(`^${ns}$`));\n        }\n    }\n    for (const instance of debuggers) {\n        instance.enabled = enabled(instance.namespace);\n    }\n}\nfunction enabled(namespace) {\n    if (namespace.endsWith(\"*\")) {\n        return true;\n    }\n    for (const skipped of skippedNamespaces) {\n        if (skipped.test(namespace)) {\n            return false;\n        }\n    }\n    for (const enabledNamespace of enabledNamespaces) {\n        if (enabledNamespace.test(namespace)) {\n            return true;\n        }\n    }\n    return false;\n}\nfunction disable() {\n    const result = enabledString || \"\";\n    enable(\"\");\n    return result;\n}\nfunction createDebugger(namespace) {\n    const newDebugger = Object.assign(debug, {\n        enabled: enabled(namespace),\n        destroy,\n        log: debugObj.log,\n        namespace,\n        extend,\n    });\n    function debug(...args) {\n        if (!newDebugger.enabled) {\n            return;\n        }\n        if (args.length > 0) {\n            args[0] = `${namespace} ${args[0]}`;\n        }\n        newDebugger.log(...args);\n    }\n    debuggers.push(newDebugger);\n    return newDebugger;\n}\nfunction destroy() {\n    const index = debuggers.indexOf(this);\n    if (index >= 0) {\n        debuggers.splice(index, 1);\n        return true;\n    }\n    return false;\n}\nfunction extend(namespace) {\n    const newDebugger = createDebugger(`${this.namespace}:${namespace}`);\n    newDebugger.log = this.log;\n    return newDebugger;\n}\nexport default debugObj;\n//# sourceMappingURL=debug.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\nexport function log(...args) {\n    if (args.length > 0) {\n        const firstArg = String(args[0]);\n        if (firstArg.includes(\":error\")) {\n            console.error(...args);\n        }\n        else if (firstArg.includes(\":warning\")) {\n            console.warn(...args);\n        }\n        else if (firstArg.includes(\":info\")) {\n            console.info(...args);\n        }\n        else if (firstArg.includes(\":verbose\")) {\n            console.debug(...args);\n        }\n        else {\n            console.debug(...args);\n        }\n    }\n}\n//# sourceMappingURL=log.common.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\nimport debug from \"./debug.js\";\nconst registeredLoggers = new Set();\nconst logLevelFromEnv = (typeof process !== \"undefined\" && process.env && process.env.AZURE_LOG_LEVEL) || undefined;\nlet azureLogLevel;\n/**\n * The AzureLogger provides a mechanism for overriding where logs are output to.\n * By default, logs are sent to stderr.\n * Override the `log` method to redirect logs to another location.\n */\nexport const AzureLogger = debug(\"azure\");\nAzureLogger.log = (...args) => {\n    debug.log(...args);\n};\nconst AZURE_LOG_LEVELS = [\"verbose\", \"info\", \"warning\", \"error\"];\nif (logLevelFromEnv) {\n    // avoid calling setLogLevel because we don't want a mis-set environment variable to crash\n    if (isAzureLogLevel(logLevelFromEnv)) {\n        setLogLevel(logLevelFromEnv);\n    }\n    else {\n        console.error(`AZURE_LOG_LEVEL set to unknown log level '${logLevelFromEnv}'; logging is not enabled. Acceptable values: ${AZURE_LOG_LEVELS.join(\", \")}.`);\n    }\n}\n/**\n * Immediately enables logging at the specified log level. If no level is specified, logging is disabled.\n * @param level - The log level to enable for logging.\n * Options from most verbose to least verbose are:\n * - verbose\n * - info\n * - warning\n * - error\n */\nexport function setLogLevel(level) {\n    if (level && !isAzureLogLevel(level)) {\n        throw new Error(`Unknown log level '${level}'. Acceptable values: ${AZURE_LOG_LEVELS.join(\",\")}`);\n    }\n    azureLogLevel = level;\n    const enabledNamespaces = [];\n    for (const logger of registeredLoggers) {\n        if (shouldEnable(logger)) {\n            enabledNamespaces.push(logger.namespace);\n        }\n    }\n    debug.enable(enabledNamespaces.join(\",\"));\n}\n/**\n * Retrieves the currently specified log level.\n */\nexport function getLogLevel() {\n    return azureLogLevel;\n}\nconst levelMap = {\n    verbose: 400,\n    info: 300,\n    warning: 200,\n    error: 100,\n};\n/**\n * Creates a logger for use by the Azure SDKs that inherits from `AzureLogger`.\n * @param namespace - The name of the SDK package.\n * @hidden\n */\nexport function createClientLogger(namespace) {\n    const clientRootLogger = AzureLogger.extend(namespace);\n    patchLogMethod(AzureLogger, clientRootLogger);\n    return {\n        error: createLogger(clientRootLogger, \"error\"),\n        warning: createLogger(clientRootLogger, \"warning\"),\n        info: createLogger(clientRootLogger, \"info\"),\n        verbose: createLogger(clientRootLogger, \"verbose\"),\n    };\n}\nfunction patchLogMethod(parent, child) {\n    child.log = (...args) => {\n        parent.log(...args);\n    };\n}\nfunction createLogger(parent, level) {\n    const logger = Object.assign(parent.extend(level), {\n        level,\n    });\n    patchLogMethod(parent, logger);\n    if (shouldEnable(logger)) {\n        const enabledNamespaces = debug.disable();\n        debug.enable(enabledNamespaces + \",\" + logger.namespace);\n    }\n    registeredLoggers.add(logger);\n    return logger;\n}\nfunction shouldEnable(logger) {\n    return Boolean(azureLogLevel && levelMap[logger.level] <= levelMap[azureLogLevel]);\n}\nfunction isAzureLogLevel(logLevel) {\n    return AZURE_LOG_LEVELS.includes(logLevel);\n}\n//# sourceMappingURL=index.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { createClientLogger } from \"@azure/logger\";\nexport const logger = createClientLogger(\"core-rest-pipeline\");\n//# sourceMappingURL=log.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n/**\n * This error is thrown when an asynchronous operation has been aborted.\n * Check for this error by testing the `name` that the name property of the\n * error matches `\"AbortError\"`.\n *\n * @example\n * ```ts\n * const controller = new AbortController();\n * controller.abort();\n * try {\n *   doAsyncWork(controller.signal)\n * } catch (e) {\n *   if (e.name === 'AbortError') {\n *     // handle abort error here.\n *   }\n * }\n * ```\n */\nexport class AbortError extends Error {\n    constructor(message) {\n        super(message);\n        this.name = \"AbortError\";\n    }\n}\n//# sourceMappingURL=AbortError.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n/**\n * Helper to determine when an input is a generic JS object.\n * @returns true when input is an object type that is not null, Array, RegExp, or Date.\n */\nexport function isObject(input) {\n    return (typeof input === \"object\" &&\n        input !== null &&\n        !Array.isArray(input) &&\n        !(input instanceof RegExp) &&\n        !(input instanceof Date));\n}\n//# sourceMappingURL=object.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { isObject } from \"./object.js\";\n/**\n * Typeguard for an error object shape (has name and message)\n * @param e - Something caught by a catch clause.\n */\nexport function isError(e) {\n    if (isObject(e)) {\n        const hasName = typeof e.name === \"string\";\n        const hasMessage = typeof e.message === \"string\";\n        return hasName && hasMessage;\n    }\n    return false;\n}\n/**\n * Given what is thought to be an error object, return the message if possible.\n * If the message is missing, returns a stringified version of the input.\n * @param e - Something thrown from a try block\n * @returns The error message or a string of the input\n */\nexport function getErrorMessage(e) {\n    if (isError(e)) {\n        return e.message;\n    }\n    else {\n        let stringified;\n        try {\n            if (typeof e === \"object\" && e) {\n                stringified = JSON.stringify(e);\n            }\n            else {\n                stringified = String(e);\n            }\n        }\n        catch (err) {\n            stringified = \"[unable to stringify input]\";\n        }\n        return `Unknown error ${stringified}`;\n    }\n}\n//# sourceMappingURL=error.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n/**\n * The helper that transforms bytes with specific character encoding into string\n * @param bytes - the uint8array bytes\n * @param format - the format we use to encode the byte\n * @returns a string of the encoded string\n */\nexport function uint8ArrayToString(bytes, format) {\n    switch (format) {\n        case \"utf-8\":\n            return uint8ArrayToUtf8String(bytes);\n        case \"base64\":\n            return uint8ArrayToBase64(bytes);\n        case \"base64url\":\n            return uint8ArrayToBase64Url(bytes);\n        case \"hex\":\n            return uint8ArrayToHexString(bytes);\n    }\n}\n/**\n * The helper that transforms string to specific character encoded bytes array.\n * @param value - the string to be converted\n * @param format - the format we use to decode the value\n * @returns a uint8array\n */\nexport function stringToUint8Array(value, format) {\n    switch (format) {\n        case \"utf-8\":\n            return utf8StringToUint8Array(value);\n        case \"base64\":\n            return base64ToUint8Array(value);\n        case \"base64url\":\n            return base64UrlToUint8Array(value);\n        case \"hex\":\n            return hexStringToUint8Array(value);\n    }\n}\n/**\n * Decodes a Uint8Array into a Base64 string.\n * @internal\n */\nexport function uint8ArrayToBase64(bytes) {\n    return btoa([...bytes].map((x) => String.fromCharCode(x)).join(\"\"));\n}\n/**\n * Decodes a Uint8Array into a Base64Url string.\n * @internal\n */\nexport function uint8ArrayToBase64Url(bytes) {\n    return uint8ArrayToBase64(bytes).replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=/g, \"\");\n}\n/**\n * Decodes a Uint8Array into a javascript string.\n * @internal\n */\nexport function uint8ArrayToUtf8String(bytes) {\n    const decoder = new TextDecoder();\n    const dataString = decoder.decode(bytes);\n    return dataString;\n}\n/**\n * Decodes a Uint8Array into a hex string\n * @internal\n */\nexport function uint8ArrayToHexString(bytes) {\n    return [...bytes].map((x) => x.toString(16).padStart(2, \"0\")).join(\"\");\n}\n/**\n * Encodes a JavaScript string into a Uint8Array.\n * @internal\n */\nexport function utf8StringToUint8Array(value) {\n    return new TextEncoder().encode(value);\n}\n/**\n * Encodes a Base64 string into a Uint8Array.\n * @internal\n */\nexport function base64ToUint8Array(value) {\n    return new Uint8Array([...atob(value)].map((x) => x.charCodeAt(0)));\n}\n/**\n * Encodes a Base64Url string into a Uint8Array.\n * @internal\n */\nexport function base64UrlToUint8Array(value) {\n    const base64String = value.replace(/-/g, \"+\").replace(/_/g, \"/\");\n    return base64ToUint8Array(base64String);\n}\nconst hexDigits = new Set(\"0123456789abcdefABCDEF\");\n/**\n * Encodes a hex string into a Uint8Array\n * @internal\n */\nexport function hexStringToUint8Array(value) {\n    // If value has odd length, the last character will be ignored, consistent with NodeJS Buffer behavior\n    const bytes = new Uint8Array(value.length / 2);\n    for (let i = 0; i < value.length / 2; ++i) {\n        const highNibble = value[2 * i];\n        const lowNibble = value[2 * i + 1];\n        if (!hexDigits.has(highNibble) || !hexDigits.has(lowNibble)) {\n            // Replicate Node Buffer behavior by exiting early when we encounter an invalid byte\n            return bytes.slice(0, i);\n        }\n        bytes[i] = parseInt(`${highNibble}${lowNibble}`, 16);\n    }\n    return bytes;\n}\n//# sourceMappingURL=bytesEncoding.common.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nvar _a;\nimport { generateUUID } from \"./uuidUtils.common.js\";\n// NOTE: This could be undefined if not used in a secure context\nconst uuidFunction = typeof ((_a = globalThis === null || globalThis === void 0 ? void 0 : globalThis.crypto) === null || _a === void 0 ? void 0 : _a.randomUUID) === \"function\"\n    ? globalThis.crypto.randomUUID.bind(globalThis.crypto)\n    : generateUUID;\n/**\n * Generated Universally Unique Identifier\n *\n * @returns RFC4122 v4 UUID.\n */\nexport function randomUUID() {\n    return uuidFunction();\n}\n//# sourceMappingURL=uuidUtils-browser.mjs.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n/**\n * Generated Universally Unique Identifier\n *\n * @returns RFC4122 v4 UUID.\n */\nexport function generateUUID() {\n    let uuid = \"\";\n    for (let i = 0; i < 32; i++) {\n        // Generate a random number between 0 and 15\n        const randomNumber = Math.floor(Math.random() * 16);\n        // Set the UUID version to 4 in the 13th position\n        if (i === 12) {\n            uuid += \"4\";\n        }\n        else if (i === 16) {\n            // Set the UUID variant to \"10\" in the 17th position\n            uuid += (randomNumber & 0x3) | 0x8;\n        }\n        else {\n            // Add a random hexadecimal digit to the UUID string\n            uuid += randomNumber.toString(16);\n        }\n        // Add hyphens to the UUID string at the appropriate positions\n        if (i === 7 || i === 11 || i === 15 || i === 19) {\n            uuid += \"-\";\n        }\n    }\n    return uuid;\n}\n/**\n * Generated Universally Unique Identifier\n *\n * @returns RFC4122 v4 UUID.\n */\nexport function randomUUID() {\n    return generateUUID();\n}\n//# sourceMappingURL=uuidUtils.common.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nvar _a, _b, _c, _d;\n/**\n * A constant that indicates whether the environment the code is running is a Web Browser.\n */\n// eslint-disable-next-line @azure/azure-sdk/ts-no-window\nexport const isBrowser = typeof window !== \"undefined\" && typeof window.document !== \"undefined\";\n/**\n * A constant that indicates whether the environment the code is running is a Web Worker.\n */\nexport const isWebWorker = typeof self === \"object\" &&\n    typeof (self === null || self === void 0 ? void 0 : self.importScripts) === \"function\" &&\n    (((_a = self.constructor) === null || _a === void 0 ? void 0 : _a.name) === \"DedicatedWorkerGlobalScope\" ||\n        ((_b = self.constructor) === null || _b === void 0 ? void 0 : _b.name) === \"ServiceWorkerGlobalScope\" ||\n        ((_c = self.constructor) === null || _c === void 0 ? void 0 : _c.name) === \"SharedWorkerGlobalScope\");\n/**\n * A constant that indicates whether the environment the code is running is Deno.\n */\nexport const isDeno = typeof Deno !== \"undefined\" &&\n    typeof Deno.version !== \"undefined\" &&\n    typeof Deno.version.deno !== \"undefined\";\n/**\n * A constant that indicates whether the environment the code is running is Bun.sh.\n */\nexport const isBun = typeof Bun !== \"undefined\" && typeof Bun.version !== \"undefined\";\n/**\n * A constant that indicates whether the environment the code is running is a Node.js compatible environment.\n */\nexport const isNodeLike = typeof globalThis.process !== \"undefined\" &&\n    Boolean(globalThis.process.version) &&\n    Boolean((_d = globalThis.process.versions) === null || _d === void 0 ? void 0 : _d.node);\n/**\n * A constant that indicates whether the environment the code is running is a Node.js compatible environment.\n * @deprecated Use `isNodeLike` instead.\n */\nexport const isNode = isNodeLike;\n/**\n * A constant that indicates whether the environment the code is running is Node.JS.\n */\nexport const isNodeRuntime = isNodeLike && !isBun && !isDeno;\n/**\n * A constant that indicates whether the environment the code is running is in React-Native.\n */\n// https://github.com/facebook/react-native/blob/main/packages/react-native/Libraries/Core/setUpNavigator.js\nexport const isReactNative = typeof navigator !== \"undefined\" && (navigator === null || navigator === void 0 ? void 0 : navigator.product) === \"ReactNative\";\n//# sourceMappingURL=checkEnvironment.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { isObject } from \"@azure/core-util\";\nconst RedactedString = \"REDACTED\";\n// Make sure this list is up-to-date with the one under core/logger/Readme#Keyconcepts\nconst defaultAllowedHeaderNames = [\n    \"x-ms-client-request-id\",\n    \"x-ms-return-client-request-id\",\n    \"x-ms-useragent\",\n    \"x-ms-correlation-request-id\",\n    \"x-ms-request-id\",\n    \"client-request-id\",\n    \"ms-cv\",\n    \"return-client-request-id\",\n    \"traceparent\",\n    \"Access-Control-Allow-Credentials\",\n    \"Access-Control-Allow-Headers\",\n    \"Access-Control-Allow-Methods\",\n    \"Access-Control-Allow-Origin\",\n    \"Access-Control-Expose-Headers\",\n    \"Access-Control-Max-Age\",\n    \"Access-Control-Request-Headers\",\n    \"Access-Control-Request-Method\",\n    \"Origin\",\n    \"Accept\",\n    \"Accept-Encoding\",\n    \"Cache-Control\",\n    \"Connection\",\n    \"Content-Length\",\n    \"Content-Type\",\n    \"Date\",\n    \"ETag\",\n    \"Expires\",\n    \"If-Match\",\n    \"If-Modified-Since\",\n    \"If-None-Match\",\n    \"If-Unmodified-Since\",\n    \"Last-Modified\",\n    \"Pragma\",\n    \"Request-Id\",\n    \"Retry-After\",\n    \"Server\",\n    \"Transfer-Encoding\",\n    \"User-Agent\",\n    \"WWW-Authenticate\",\n];\nconst defaultAllowedQueryParameters = [\"api-version\"];\n/**\n * @internal\n */\nexport class Sanitizer {\n    constructor({ additionalAllowedHeaderNames: allowedHeaderNames = [], additionalAllowedQueryParameters: allowedQueryParameters = [], } = {}) {\n        allowedHeaderNames = defaultAllowedHeaderNames.concat(allowedHeaderNames);\n        allowedQueryParameters = defaultAllowedQueryParameters.concat(allowedQueryParameters);\n        this.allowedHeaderNames = new Set(allowedHeaderNames.map((n) => n.toLowerCase()));\n        this.allowedQueryParameters = new Set(allowedQueryParameters.map((p) => p.toLowerCase()));\n    }\n    sanitize(obj) {\n        const seen = new Set();\n        return JSON.stringify(obj, (key, value) => {\n            // Ensure Errors include their interesting non-enumerable members\n            if (value instanceof Error) {\n                return Object.assign(Object.assign({}, value), { name: value.name, message: value.message });\n            }\n            if (key === \"headers\") {\n                return this.sanitizeHeaders(value);\n            }\n            else if (key === \"url\") {\n                return this.sanitizeUrl(value);\n            }\n            else if (key === \"query\") {\n                return this.sanitizeQuery(value);\n            }\n            else if (key === \"body\") {\n                // Don't log the request body\n                return undefined;\n            }\n            else if (key === \"response\") {\n                // Don't log response again\n                return undefined;\n            }\n            else if (key === \"operationSpec\") {\n                // When using sendOperationRequest, the request carries a massive\n                // field with the autorest spec. No need to log it.\n                return undefined;\n            }\n            else if (Array.isArray(value) || isObject(value)) {\n                if (seen.has(value)) {\n                    return \"[Circular]\";\n                }\n                seen.add(value);\n            }\n            return value;\n        }, 2);\n    }\n    sanitizeUrl(value) {\n        if (typeof value !== \"string\" || value === null || value === \"\") {\n            return value;\n        }\n        const url = new URL(value);\n        if (!url.search) {\n            return value;\n        }\n        for (const [key] of url.searchParams) {\n            if (!this.allowedQueryParameters.has(key.toLowerCase())) {\n                url.searchParams.set(key, RedactedString);\n            }\n        }\n        return url.toString();\n    }\n    sanitizeHeaders(obj) {\n        const sanitized = {};\n        for (const key of Object.keys(obj)) {\n            if (this.allowedHeaderNames.has(key.toLowerCase())) {\n                sanitized[key] = obj[key];\n            }\n            else {\n                sanitized[key] = RedactedString;\n            }\n        }\n        return sanitized;\n    }\n    sanitizeQuery(value) {\n        if (typeof value !== \"object\" || value === null) {\n            return value;\n        }\n        const sanitized = {};\n        for (const k of Object.keys(value)) {\n            if (this.allowedQueryParameters.has(k.toLowerCase())) {\n                sanitized[k] = value[k];\n            }\n            else {\n                sanitized[k] = RedactedString;\n            }\n        }\n        return sanitized;\n    }\n}\n//# sourceMappingURL=sanitizer.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n/**\n * The programmatic identifier of the redirectPolicy.\n */\nexport const redirectPolicyName = \"redirectPolicy\";\n/**\n * Methods that are allowed to follow redirects 301 and 302\n */\nconst allowedRedirect = [\"GET\", \"HEAD\"];\n/**\n * A policy to follow Location headers from the server in order\n * to support server-side redirection.\n * In the browser, this policy is not used.\n * @param options - Options to control policy behavior.\n */\nexport function redirectPolicy(options = {}) {\n    const { maxRetries = 20 } = options;\n    return {\n        name: redirectPolicyName,\n        async sendRequest(request, next) {\n            const response = await next(request);\n            return handleRedirect(next, response, maxRetries);\n        },\n    };\n}\nasync function handleRedirect(next, response, maxRetries, currentRetries = 0) {\n    const { request, status, headers } = response;\n    const locationHeader = headers.get(\"location\");\n    if (locationHeader &&\n        (status === 300 ||\n            (status === 301 && allowedRedirect.includes(request.method)) ||\n            (status === 302 && allowedRedirect.includes(request.method)) ||\n            (status === 303 && request.method === \"POST\") ||\n            status === 307) &&\n        currentRetries < maxRetries) {\n        const url = new URL(locationHeader, request.url);\n        request.url = url.toString();\n        // POST request with Status code 303 should be converted into a\n        // redirected GET request if the redirect url is present in the location header\n        if (status === 303) {\n            request.method = \"GET\";\n            request.headers.delete(\"Content-Length\");\n            delete request.body;\n        }\n        request.headers.delete(\"Authorization\");\n        const res = await next(request);\n        return handleRedirect(next, res, maxRetries, currentRetries + 1);\n    }\n    return response;\n}\n//# sourceMappingURL=redirectPolicy.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nexport const SDK_VERSION = \"1.19.1\";\nexport const DEFAULT_RETRY_POLICY_COUNT = 3;\n//# sourceMappingURL=constants.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { getHeaderName, setPlatformSpecificData } from \"./userAgentPlatform.js\";\nimport { SDK_VERSION } from \"../constants.js\";\nfunction getUserAgentString(telemetryInfo) {\n    const parts = [];\n    for (const [key, value] of telemetryInfo) {\n        const token = value ? `${key}/${value}` : key;\n        parts.push(token);\n    }\n    return parts.join(\" \");\n}\n/**\n * @internal\n */\nexport function getUserAgentHeaderName() {\n    return getHeaderName();\n}\n/**\n * @internal\n */\nexport async function getUserAgentValue(prefix) {\n    const runtimeInfo = new Map();\n    runtimeInfo.set(\"core-rest-pipeline\", SDK_VERSION);\n    await setPlatformSpecificData(runtimeInfo);\n    const defaultAgent = getUserAgentString(runtimeInfo);\n    const userAgentValue = prefix ? `${prefix} ${defaultAgent}` : defaultAgent;\n    return userAgentValue;\n}\n//# sourceMappingURL=userAgent.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n/**\n * @internal\n */\nexport function getHeaderName() {\n    return \"x-ms-useragent\";\n}\nfunction getBrowserInfo(userAgent) {\n    const browserRegexes = [\n        { name: \"Firefox\", regex: /Firefox\\/([\\d.]+)/ },\n        { name: \"Safari\", regex: /Version\\/([\\d.]+).*Safari/ },\n    ];\n    for (const browser of browserRegexes) {\n        const match = userAgent.match(browser.regex);\n        if (match) {\n            return { brand: browser.name, version: match[1] };\n        }\n    }\n    return undefined;\n}\nfunction getBrandVersionString(brands) {\n    const brandOrder = [\"Google Chrome\", \"Microsoft Edge\", \"Opera\", \"Brave\", \"Chromium\"];\n    for (const brand of brandOrder) {\n        const foundBrand = brands.find((b) => b.brand === brand);\n        if (foundBrand) {\n            return foundBrand;\n        }\n    }\n    return undefined;\n}\n/**\n * @internal\n */\nexport async function setPlatformSpecificData(map) {\n    const localNavigator = globalThis.navigator;\n    let osPlatform = \"unknown\";\n    if (localNavigator === null || localNavigator === void 0 ? void 0 : localNavigator.userAgentData) {\n        const entropyValues = await localNavigator.userAgentData.getHighEntropyValues([\n            \"architecture\",\n            \"platformVersion\",\n        ]);\n        osPlatform = `${entropyValues.architecture}-${entropyValues.platform}-${entropyValues.platformVersion}`;\n        // Get the brand and version\n        const brand = getBrandVersionString(localNavigator.userAgentData.brands);\n        if (brand) {\n            map.set(brand.brand, brand.version);\n        }\n    }\n    else if (localNavigator === null || localNavigator === void 0 ? void 0 : localNavigator.platform) {\n        osPlatform = localNavigator.platform;\n        const brand = getBrowserInfo(localNavigator.userAgent);\n        if (brand) {\n            map.set(brand.brand, brand.version);\n        }\n    }\n    else if (typeof globalThis.EdgeRuntime === \"string\") {\n        map.set(\"EdgeRuntime\", globalThis.EdgeRuntime);\n    }\n    map.set(\"OS\", osPlatform);\n}\n//# sourceMappingURL=userAgentPlatform-browser.mjs.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { getUserAgentHeaderName, getUserAgentValue } from \"../util/userAgent.js\";\nconst UserAgentHeaderName = getUserAgentHeaderName();\n/**\n * The programmatic identifier of the userAgentPolicy.\n */\nexport const userAgentPolicyName = \"userAgentPolicy\";\n/**\n * A policy that sets the User-Agent header (or equivalent) to reflect\n * the library version.\n * @param options - Options to customize the user agent value.\n */\nexport function userAgentPolicy(options = {}) {\n    const userAgentValue = getUserAgentValue(options.userAgentPrefix);\n    return {\n        name: userAgentPolicyName,\n        async sendRequest(request, next) {\n            if (!request.headers.has(UserAgentHeaderName)) {\n                request.headers.set(UserAgentHeaderName, await userAgentValue);\n            }\n            return next(request);\n        },\n    };\n}\n//# sourceMappingURL=userAgentPolicy.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { isNodeLike } from \"@azure/core-util\";\nimport { isNodeReadableStream } from \"./typeGuards.js\";\nconst unimplementedMethods = {\n    arrayBuffer: () => {\n        throw new Error(\"Not implemented\");\n    },\n    bytes: () => {\n        throw new Error(\"Not implemented\");\n    },\n    slice: () => {\n        throw new Error(\"Not implemented\");\n    },\n    text: () => {\n        throw new Error(\"Not implemented\");\n    },\n};\n/**\n * Private symbol used as key on objects created using createFile containing the\n * original source of the file object.\n *\n * This is used in Node to access the original Node stream without using Blob#stream, which\n * returns a web stream. This is done to avoid a couple of bugs to do with Blob#stream and\n * Readable#to/fromWeb in Node versions we support:\n * - https://github.com/nodejs/node/issues/42694 (fixed in Node 18.14)\n * - https://github.com/nodejs/node/issues/48916 (fixed in Node 20.6)\n *\n * Once these versions are no longer supported, we may be able to stop doing this.\n *\n * @internal\n */\nconst rawContent = Symbol(\"rawContent\");\nfunction hasRawContent(x) {\n    return typeof x[rawContent] === \"function\";\n}\n/**\n * Extract the raw content from a given blob-like object. If the input was created using createFile\n * or createFileFromStream, the exact content passed into createFile/createFileFromStream will be used.\n * For true instances of Blob and File, returns the blob's content as a Web ReadableStream<Uint8Array>.\n *\n * @internal\n */\nexport function getRawContent(blob) {\n    if (hasRawContent(blob)) {\n        return blob[rawContent]();\n    }\n    else {\n        return blob.stream();\n    }\n}\n/**\n * Create an object that implements the File interface. This object is intended to be\n * passed into RequestBodyType.formData, and is not guaranteed to work as expected in\n * other situations.\n *\n * Use this function to:\n * - Create a File object for use in RequestBodyType.formData in environments where the\n *   global File object is unavailable.\n * - Create a File-like object from a readable stream without reading the stream into memory.\n *\n * @param stream - the content of the file as a callback returning a stream. When a File object made using createFile is\n *                  passed in a request's form data map, the stream will not be read into memory\n *                  and instead will be streamed when the request is made. In the event of a retry, the\n *                  stream needs to be read again, so this callback SHOULD return a fresh stream if possible.\n * @param name - the name of the file.\n * @param options - optional metadata about the file, e.g. file name, file size, MIME type.\n */\nexport function createFileFromStream(stream, name, options = {}) {\n    var _a, _b, _c, _d;\n    return Object.assign(Object.assign({}, unimplementedMethods), { type: (_a = options.type) !== null && _a !== void 0 ? _a : \"\", lastModified: (_b = options.lastModified) !== null && _b !== void 0 ? _b : new Date().getTime(), webkitRelativePath: (_c = options.webkitRelativePath) !== null && _c !== void 0 ? _c : \"\", size: (_d = options.size) !== null && _d !== void 0 ? _d : -1, name, stream: () => {\n            const s = stream();\n            if (isNodeReadableStream(s)) {\n                throw new Error(\"Not supported: a Node stream was provided as input to createFileFromStream.\");\n            }\n            return s;\n        }, [rawContent]: stream });\n}\n/**\n * Create an object that implements the File interface. This object is intended to be\n * passed into RequestBodyType.formData, and is not guaranteed to work as expected in\n * other situations.\n *\n * Use this function create a File object for use in RequestBodyType.formData in environments where the global File object is unavailable.\n *\n * @param content - the content of the file as a Uint8Array in memory.\n * @param name - the name of the file.\n * @param options - optional metadata about the file, e.g. file name, file size, MIME type.\n */\nexport function createFile(content, name, options = {}) {\n    var _a, _b, _c;\n    if (isNodeLike) {\n        return Object.assign(Object.assign({}, unimplementedMethods), { type: (_a = options.type) !== null && _a !== void 0 ? _a : \"\", lastModified: (_b = options.lastModified) !== null && _b !== void 0 ? _b : new Date().getTime(), webkitRelativePath: (_c = options.webkitRelativePath) !== null && _c !== void 0 ? _c : \"\", size: content.byteLength, name, arrayBuffer: async () => content.buffer, stream: () => new Blob([content]).stream(), [rawContent]: () => content });\n    }\n    else {\n        return new File([content], name, options);\n    }\n}\n//# sourceMappingURL=file.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nexport function isNodeReadableStream(x) {\n    return Boolean(x && typeof x[\"pipe\"] === \"function\");\n}\nexport function isWebReadableStream(x) {\n    return Boolean(x &&\n        typeof x.getReader === \"function\" &&\n        typeof x.tee === \"function\");\n}\nexport function isReadableStream(x) {\n    return isNodeReadableStream(x) || isWebReadableStream(x);\n}\nexport function isBlob(x) {\n    return typeof x.stream === \"function\";\n}\n//# sourceMappingURL=typeGuards.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { getRawContent } from \"./file.js\";\nimport { isNodeReadableStream, isWebReadableStream } from \"./typeGuards.js\";\n/**\n * Drain the content of the given ReadableStream into a Blob.\n * The blob's content may end up in memory or on disk dependent on size.\n */\nfunction drain(stream) {\n    return new Response(stream).blob();\n}\nasync function toBlobPart(source) {\n    if (source instanceof Blob || source instanceof Uint8Array) {\n        return source;\n    }\n    if (isWebReadableStream(source)) {\n        return drain(source);\n    }\n    // If it's not a true Blob, and it's not a Uint8Array, we can assume the source\n    // is a fake File created by createFileFromStream and we can get the original stream\n    // using getRawContent.\n    const rawContent = getRawContent(source);\n    // Shouldn't happen but guard for it anyway\n    if (isNodeReadableStream(rawContent)) {\n        throw new Error(\"Encountered unexpected type. In the browser, `concat` supports Web ReadableStream, Blob, Uint8Array, and files created using `createFile` only.\");\n    }\n    return toBlobPart(rawContent);\n}\n/**\n * Utility function that concatenates a set of binary inputs into one combined output.\n *\n * @param sources - array of sources for the concatenation\n * @returns - in Node, a (() =\\> NodeJS.ReadableStream) which, when read, produces a concatenation of all the inputs.\n *           In browser, returns a `Blob` representing all the concatenated inputs.\n *\n * @internal\n */\nexport async function concat(sources) {\n    const parts = [];\n    for (const source of sources) {\n        parts.push(await toBlobPart(typeof source === \"function\" ? source() : source));\n    }\n    return new Blob(parts);\n}\n//# sourceMappingURL=concat.common.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { randomUUID, stringToUint8Array } from \"@azure/core-util\";\nimport { concat } from \"../util/concat.js\";\nimport { isBlob } from \"../util/typeGuards.js\";\nfunction generateBoundary() {\n    return `----AzSDKFormBoundary${randomUUID()}`;\n}\nfunction encodeHeaders(headers) {\n    let result = \"\";\n    for (const [key, value] of headers) {\n        result += `${key}: ${value}\\r\\n`;\n    }\n    return result;\n}\nfunction getLength(source) {\n    if (source instanceof Uint8Array) {\n        return source.byteLength;\n    }\n    else if (isBlob(source)) {\n        // if was created using createFile then -1 means we have an unknown size\n        return source.size === -1 ? undefined : source.size;\n    }\n    else {\n        return undefined;\n    }\n}\nfunction getTotalLength(sources) {\n    let total = 0;\n    for (const source of sources) {\n        const partLength = getLength(source);\n        if (partLength === undefined) {\n            return undefined;\n        }\n        else {\n            total += partLength;\n        }\n    }\n    return total;\n}\nasync function buildRequestBody(request, parts, boundary) {\n    const sources = [\n        stringToUint8Array(`--${boundary}`, \"utf-8\"),\n        ...parts.flatMap((part) => [\n            stringToUint8Array(\"\\r\\n\", \"utf-8\"),\n            stringToUint8Array(encodeHeaders(part.headers), \"utf-8\"),\n            stringToUint8Array(\"\\r\\n\", \"utf-8\"),\n            part.body,\n            stringToUint8Array(`\\r\\n--${boundary}`, \"utf-8\"),\n        ]),\n        stringToUint8Array(\"--\\r\\n\\r\\n\", \"utf-8\"),\n    ];\n    const contentLength = getTotalLength(sources);\n    if (contentLength) {\n        request.headers.set(\"Content-Length\", contentLength);\n    }\n    request.body = await concat(sources);\n}\n/**\n * Name of multipart policy\n */\nexport const multipartPolicyName = \"multipartPolicy\";\nconst maxBoundaryLength = 70;\nconst validBoundaryCharacters = new Set(`abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'()+,-./:=?`);\nfunction assertValidBoundary(boundary) {\n    if (boundary.length > maxBoundaryLength) {\n        throw new Error(`Multipart boundary \"${boundary}\" exceeds maximum length of 70 characters`);\n    }\n    if (Array.from(boundary).some((x) => !validBoundaryCharacters.has(x))) {\n        throw new Error(`Multipart boundary \"${boundary}\" contains invalid characters`);\n    }\n}\n/**\n * Pipeline policy for multipart requests\n */\nexport function multipartPolicy() {\n    return {\n        name: multipartPolicyName,\n        async sendRequest(request, next) {\n            var _a;\n            if (!request.multipartBody) {\n                return next(request);\n            }\n            if (request.body) {\n                throw new Error(\"multipartBody and regular body cannot be set at the same time\");\n            }\n            let boundary = request.multipartBody.boundary;\n            const contentTypeHeader = (_a = request.headers.get(\"Content-Type\")) !== null && _a !== void 0 ? _a : \"multipart/mixed\";\n            const parsedHeader = contentTypeHeader.match(/^(multipart\\/[^ ;]+)(?:; *boundary=(.+))?$/);\n            if (!parsedHeader) {\n                throw new Error(`Got multipart request body, but content-type header was not multipart: ${contentTypeHeader}`);\n            }\n            const [, contentType, parsedBoundary] = parsedHeader;\n            if (parsedBoundary && boundary && parsedBoundary !== boundary) {\n                throw new Error(`Multipart boundary was specified as ${parsedBoundary} in the header, but got ${boundary} in the request body`);\n            }\n            boundary !== null && boundary !== void 0 ? boundary : (boundary = parsedBoundary);\n            if (boundary) {\n                assertValidBoundary(boundary);\n            }\n            else {\n                boundary = generateBoundary();\n            }\n            request.headers.set(\"Content-Type\", `${contentType}; boundary=${boundary}`);\n            await buildRequestBody(request, request.multipartBody.parts, boundary);\n            request.multipartBody = undefined;\n            return next(request);\n        },\n    };\n}\n//# sourceMappingURL=multipartPolicy.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { AbortError } from \"@azure/abort-controller\";\nconst StandardAbortMessage = \"The operation was aborted.\";\n/**\n * A wrapper for setTimeout that resolves a promise after delayInMs milliseconds.\n * @param delayInMs - The number of milliseconds to be delayed.\n * @param value - The value to be resolved with after a timeout of t milliseconds.\n * @param options - The options for delay - currently abort options\n *                  - abortSignal - The abortSignal associated with containing operation.\n *                  - abortErrorMsg - The abort error message associated with containing operation.\n * @returns Resolved promise\n */\nexport function delay(delayInMs, value, options) {\n    return new Promise((resolve, reject) => {\n        let timer = undefined;\n        let onAborted = undefined;\n        const rejectOnAbort = () => {\n            return reject(new AbortError((options === null || options === void 0 ? void 0 : options.abortErrorMsg) ? options === null || options === void 0 ? void 0 : options.abortErrorMsg : StandardAbortMessage));\n        };\n        const removeListeners = () => {\n            if ((options === null || options === void 0 ? void 0 : options.abortSignal) && onAborted) {\n                options.abortSignal.removeEventListener(\"abort\", onAborted);\n            }\n        };\n        onAborted = () => {\n            if (timer) {\n                clearTimeout(timer);\n            }\n            removeListeners();\n            return rejectOnAbort();\n        };\n        if ((options === null || options === void 0 ? void 0 : options.abortSignal) && options.abortSignal.aborted) {\n            return rejectOnAbort();\n        }\n        timer = setTimeout(() => {\n            removeListeners();\n            resolve(value);\n        }, delayInMs);\n        if (options === null || options === void 0 ? void 0 : options.abortSignal) {\n            options.abortSignal.addEventListener(\"abort\", onAborted);\n        }\n    });\n}\n/**\n * @internal\n * @returns the parsed value or undefined if the parsed value is invalid.\n */\nexport function parseHeaderValueAsNumber(response, headerName) {\n    const value = response.headers.get(headerName);\n    if (!value)\n        return;\n    const valueAsNum = Number(value);\n    if (Number.isNaN(valueAsNum))\n        return;\n    return valueAsNum;\n}\n//# sourceMappingURL=helpers.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { parseHeaderValueAsNumber } from \"../util/helpers.js\";\n/**\n * The header that comes back from Azure services representing\n * the amount of time (minimum) to wait to retry (in seconds or timestamp after which we can retry).\n */\nconst RetryAfterHeader = \"Retry-After\";\n/**\n * The headers that come back from Azure services representing\n * the amount of time (minimum) to wait to retry.\n *\n * \"retry-after-ms\", \"x-ms-retry-after-ms\" : milliseconds\n * \"Retry-After\" : seconds or timestamp\n */\nconst AllRetryAfterHeaders = [\"retry-after-ms\", \"x-ms-retry-after-ms\", RetryAfterHeader];\n/**\n * A response is a throttling retry response if it has a throttling status code (429 or 503),\n * as long as one of the [ \"Retry-After\" or \"retry-after-ms\" or \"x-ms-retry-after-ms\" ] headers has a valid value.\n *\n * Returns the `retryAfterInMs` value if the response is a throttling retry response.\n * If not throttling retry response, returns `undefined`.\n *\n * @internal\n */\nfunction getRetryAfterInMs(response) {\n    if (!(response && [429, 503].includes(response.status)))\n        return undefined;\n    try {\n        // Headers: \"retry-after-ms\", \"x-ms-retry-after-ms\", \"Retry-After\"\n        for (const header of AllRetryAfterHeaders) {\n            const retryAfterValue = parseHeaderValueAsNumber(response, header);\n            if (retryAfterValue === 0 || retryAfterValue) {\n                // \"Retry-After\" header ==> seconds\n                // \"retry-after-ms\", \"x-ms-retry-after-ms\" headers ==> milli-seconds\n                const multiplyingFactor = header === RetryAfterHeader ? 1000 : 1;\n                return retryAfterValue * multiplyingFactor; // in milli-seconds\n            }\n        }\n        // RetryAfterHeader (\"Retry-After\") has a special case where it might be formatted as a date instead of a number of seconds\n        const retryAfterHeader = response.headers.get(RetryAfterHeader);\n        if (!retryAfterHeader)\n            return;\n        const date = Date.parse(retryAfterHeader);\n        const diff = date - Date.now();\n        // negative diff would mean a date in the past, so retry asap with 0 milliseconds\n        return Number.isFinite(diff) ? Math.max(0, diff) : undefined;\n    }\n    catch (_a) {\n        return undefined;\n    }\n}\n/**\n * A response is a retry response if it has a throttling status code (429 or 503),\n * as long as one of the [ \"Retry-After\" or \"retry-after-ms\" or \"x-ms-retry-after-ms\" ] headers has a valid value.\n */\nexport function isThrottlingRetryResponse(response) {\n    return Number.isFinite(getRetryAfterInMs(response));\n}\nexport function throttlingRetryStrategy() {\n    return {\n        name: \"throttlingRetryStrategy\",\n        retry({ response }) {\n            const retryAfterInMs = getRetryAfterInMs(response);\n            if (!Number.isFinite(retryAfterInMs)) {\n                return { skipStrategy: true };\n            }\n            return {\n                retryAfterInMs,\n            };\n        },\n    };\n}\n//# sourceMappingURL=throttlingRetryStrategy.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { calculateRetryDelay } from \"@azure/core-util\";\nimport { isThrottlingRetryResponse } from \"./throttlingRetryStrategy.js\";\n// intervals are in milliseconds\nconst DEFAULT_CLIENT_RETRY_INTERVAL = 1000;\nconst DEFAULT_CLIENT_MAX_RETRY_INTERVAL = 1000 * 64;\n/**\n * A retry strategy that retries with an exponentially increasing delay in these two cases:\n * - When there are errors in the underlying transport layer (e.g. DNS lookup failures).\n * - Or otherwise if the outgoing request fails (408, greater or equal than 500, except for 501 and 505).\n */\nexport function exponentialRetryStrategy(options = {}) {\n    var _a, _b;\n    const retryInterval = (_a = options.retryDelayInMs) !== null && _a !== void 0 ? _a : DEFAULT_CLIENT_RETRY_INTERVAL;\n    const maxRetryInterval = (_b = options.maxRetryDelayInMs) !== null && _b !== void 0 ? _b : DEFAULT_CLIENT_MAX_RETRY_INTERVAL;\n    return {\n        name: \"exponentialRetryStrategy\",\n        retry({ retryCount, response, responseError }) {\n            const matchedSystemError = isSystemError(responseError);\n            const ignoreSystemErrors = matchedSystemError && options.ignoreSystemErrors;\n            const isExponential = isExponentialRetryResponse(response);\n            const ignoreExponentialResponse = isExponential && options.ignoreHttpStatusCodes;\n            const unknownResponse = response && (isThrottlingRetryResponse(response) || !isExponential);\n            if (unknownResponse || ignoreExponentialResponse || ignoreSystemErrors) {\n                return { skipStrategy: true };\n            }\n            if (responseError && !matchedSystemError && !isExponential) {\n                return { errorToThrow: responseError };\n            }\n            return calculateRetryDelay(retryCount, {\n                retryDelayInMs: retryInterval,\n                maxRetryDelayInMs: maxRetryInterval,\n            });\n        },\n    };\n}\n/**\n * A response is a retry response if it has status codes:\n * - 408, or\n * - Greater or equal than 500, except for 501 and 505.\n */\nexport function isExponentialRetryResponse(response) {\n    return Boolean(response &&\n        response.status !== undefined &&\n        (response.status >= 500 || response.status === 408) &&\n        response.status !== 501 &&\n        response.status !== 505);\n}\n/**\n * Determines whether an error from a pipeline response was triggered in the network layer.\n */\nexport function isSystemError(err) {\n    if (!err) {\n        return false;\n    }\n    return (err.code === \"ETIMEDOUT\" ||\n        err.code === \"ESOCKETTIMEDOUT\" ||\n        err.code === \"ECONNREFUSED\" ||\n        err.code === \"ECONNRESET\" ||\n        err.code === \"ENOENT\" ||\n        err.code === \"ENOTFOUND\");\n}\n//# sourceMappingURL=exponentialRetryStrategy.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { createAbortablePromise } from \"./createAbortablePromise.js\";\nimport { getRandomIntegerInclusive } from \"./random.js\";\nconst StandardAbortMessage = \"The delay was aborted.\";\n/**\n * A wrapper for setTimeout that resolves a promise after timeInMs milliseconds.\n * @param timeInMs - The number of milliseconds to be delayed.\n * @param options - The options for delay - currently abort options\n * @returns Promise that is resolved after timeInMs\n */\nexport function delay(timeInMs, options) {\n    let token;\n    const { abortSignal, abortErrorMsg } = options !== null && options !== void 0 ? options : {};\n    return createAbortablePromise((resolve) => {\n        token = setTimeout(resolve, timeInMs);\n    }, {\n        cleanupBeforeAbort: () => clearTimeout(token),\n        abortSignal,\n        abortErrorMsg: abortErrorMsg !== null && abortErrorMsg !== void 0 ? abortErrorMsg : StandardAbortMessage,\n    });\n}\n/**\n * Calculates the delay interval for retry attempts using exponential delay with jitter.\n * @param retryAttempt - The current retry attempt number.\n * @param config - The exponential retry configuration.\n * @returns An object containing the calculated retry delay.\n */\nexport function calculateRetryDelay(retryAttempt, config) {\n    // Exponentially increase the delay each time\n    const exponentialDelay = config.retryDelayInMs * Math.pow(2, retryAttempt);\n    // Don't let the delay exceed the maximum\n    const clampedDelay = Math.min(config.maxRetryDelayInMs, exponentialDelay);\n    // Allow the final value to have some \"jitter\" (within 50% of the delay size) so\n    // that retries across multiple clients don't occur simultaneously.\n    const retryAfterInMs = clampedDelay / 2 + getRandomIntegerInclusive(0, clampedDelay / 2);\n    return { retryAfterInMs };\n}\n//# sourceMappingURL=delay.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n/**\n * Returns a random integer value between a lower and upper bound,\n * inclusive of both bounds.\n * Note that this uses Math.random and isn't secure. If you need to use\n * this for any kind of security purpose, find a better source of random.\n * @param min - The smallest integer value allowed.\n * @param max - The largest integer value allowed.\n */\nexport function getRandomIntegerInclusive(min, max) {\n    // Make sure inputs are integers.\n    min = Math.ceil(min);\n    max = Math.floor(max);\n    // Pick a random offset from zero to the size of the range.\n    // Since Math.random() can never return 1, we have to make the range one larger\n    // in order to be inclusive of the maximum value after we take the floor.\n    const offset = Math.floor(Math.random() * (max - min + 1));\n    return offset + min;\n}\n//# sourceMappingURL=random.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { delay } from \"../util/helpers.js\";\nimport { createClientLogger } from \"@azure/logger\";\nimport { AbortError } from \"@azure/abort-controller\";\nimport { DEFAULT_RETRY_POLICY_COUNT } from \"../constants.js\";\nconst retryPolicyLogger = createClientLogger(\"core-rest-pipeline retryPolicy\");\n/**\n * The programmatic identifier of the retryPolicy.\n */\nconst retryPolicyName = \"retryPolicy\";\n/**\n * retryPolicy is a generic policy to enable retrying requests when certain conditions are met\n */\nexport function retryPolicy(strategies, options = { maxRetries: DEFAULT_RETRY_POLICY_COUNT }) {\n    const logger = options.logger || retryPolicyLogger;\n    return {\n        name: retryPolicyName,\n        async sendRequest(request, next) {\n            var _a, _b;\n            let response;\n            let responseError;\n            let retryCount = -1;\n            retryRequest: while (true) {\n                retryCount += 1;\n                response = undefined;\n                responseError = undefined;\n                try {\n                    logger.info(`Retry ${retryCount}: Attempting to send request`, request.requestId);\n                    response = await next(request);\n                    logger.info(`Retry ${retryCount}: Received a response from request`, request.requestId);\n                }\n                catch (e) {\n                    logger.error(`Retry ${retryCount}: Received an error from request`, request.requestId);\n                    // RestErrors are valid targets for the retry strategies.\n                    // If none of the retry strategies can work with them, they will be thrown later in this policy.\n                    // If the received error is not a RestError, it is immediately thrown.\n                    responseError = e;\n                    if (!e || responseError.name !== \"RestError\") {\n                        throw e;\n                    }\n                    response = responseError.response;\n                }\n                if ((_a = request.abortSignal) === null || _a === void 0 ? void 0 : _a.aborted) {\n                    logger.error(`Retry ${retryCount}: Request aborted.`);\n                    const abortError = new AbortError();\n                    throw abortError;\n                }\n                if (retryCount >= ((_b = options.maxRetries) !== null && _b !== void 0 ? _b : DEFAULT_RETRY_POLICY_COUNT)) {\n                    logger.info(`Retry ${retryCount}: Maximum retries reached. Returning the last received response, or throwing the last received error.`);\n                    if (responseError) {\n                        throw responseError;\n                    }\n                    else if (response) {\n                        return response;\n                    }\n                    else {\n                        throw new Error(\"Maximum retries reached with no response or error to throw\");\n                    }\n                }\n                logger.info(`Retry ${retryCount}: Processing ${strategies.length} retry strategies.`);\n                strategiesLoop: for (const strategy of strategies) {\n                    const strategyLogger = strategy.logger || retryPolicyLogger;\n                    strategyLogger.info(`Retry ${retryCount}: Processing retry strategy ${strategy.name}.`);\n                    const modifiers = strategy.retry({\n                        retryCount,\n                        response,\n                        responseError,\n                    });\n                    if (modifiers.skipStrategy) {\n                        strategyLogger.info(`Retry ${retryCount}: Skipped.`);\n                        continue strategiesLoop;\n                    }\n                    const { errorToThrow, retryAfterInMs, redirectTo } = modifiers;\n                    if (errorToThrow) {\n                        strategyLogger.error(`Retry ${retryCount}: Retry strategy ${strategy.name} throws error:`, errorToThrow);\n                        throw errorToThrow;\n                    }\n                    if (retryAfterInMs || retryAfterInMs === 0) {\n                        strategyLogger.info(`Retry ${retryCount}: Retry strategy ${strategy.name} retries after ${retryAfterInMs}`);\n                        await delay(retryAfterInMs, undefined, { abortSignal: request.abortSignal });\n                        continue retryRequest;\n                    }\n                    if (redirectTo) {\n                        strategyLogger.info(`Retry ${retryCount}: Retry strategy ${strategy.name} redirects to ${redirectTo}`);\n                        request.url = redirectTo;\n                        continue retryRequest;\n                    }\n                }\n                if (responseError) {\n                    logger.info(`None of the retry strategies could work with the received error. Throwing it.`);\n                    throw responseError;\n                }\n                if (response) {\n                    logger.info(`None of the retry strategies could work with the received response. Returning it.`);\n                    return response;\n                }\n                // If all the retries skip and there's no response,\n                // we're still in the retry loop, so a new request will be sent\n                // until `maxRetries` is reached.\n            }\n        },\n    };\n}\n//# sourceMappingURL=retryPolicy.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nfunction normalizeName(name) {\n    return name.toLowerCase();\n}\nfunction* headerIterator(map) {\n    for (const entry of map.values()) {\n        yield [entry.name, entry.value];\n    }\n}\nclass HttpHeadersImpl {\n    constructor(rawHeaders) {\n        this._headersMap = new Map();\n        if (rawHeaders) {\n            for (const headerName of Object.keys(rawHeaders)) {\n                this.set(headerName, rawHeaders[headerName]);\n            }\n        }\n    }\n    /**\n     * Set a header in this collection with the provided name and value. The name is\n     * case-insensitive.\n     * @param name - The name of the header to set. This value is case-insensitive.\n     * @param value - The value of the header to set.\n     */\n    set(name, value) {\n        this._headersMap.set(normalizeName(name), { name, value: String(value).trim() });\n    }\n    /**\n     * Get the header value for the provided header name, or undefined if no header exists in this\n     * collection with the provided name.\n     * @param name - The name of the header. This value is case-insensitive.\n     */\n    get(name) {\n        var _a;\n        return (_a = this._headersMap.get(normalizeName(name))) === null || _a === void 0 ? void 0 : _a.value;\n    }\n    /**\n     * Get whether or not this header collection contains a header entry for the provided header name.\n     * @param name - The name of the header to set. This value is case-insensitive.\n     */\n    has(name) {\n        return this._headersMap.has(normalizeName(name));\n    }\n    /**\n     * Remove the header with the provided headerName.\n     * @param name - The name of the header to remove.\n     */\n    delete(name) {\n        this._headersMap.delete(normalizeName(name));\n    }\n    /**\n     * Get the JSON object representation of this HTTP header collection.\n     */\n    toJSON(options = {}) {\n        const result = {};\n        if (options.preserveCase) {\n            for (const entry of this._headersMap.values()) {\n                result[entry.name] = entry.value;\n            }\n        }\n        else {\n            for (const [normalizedName, entry] of this._headersMap) {\n                result[normalizedName] = entry.value;\n            }\n        }\n        return result;\n    }\n    /**\n     * Get the string representation of this HTTP header collection.\n     */\n    toString() {\n        return JSON.stringify(this.toJSON({ preserveCase: true }));\n    }\n    /**\n     * Iterate over tuples of header [name, value] pairs.\n     */\n    [Symbol.iterator]() {\n        return headerIterator(this._headersMap);\n    }\n}\n/**\n * Creates an object that satisfies the `HttpHeaders` interface.\n * @param rawHeaders - A simple object representing initial headers\n */\nexport function createHttpHeaders(rawHeaders) {\n    return new HttpHeadersImpl(rawHeaders);\n}\n//# sourceMappingURL=httpHeaders.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nexport const proxyPolicyName = \"proxyPolicy\";\nconst errorMessage = \"proxyPolicy is not supported in browser environment\";\nexport function getDefaultProxySettings() {\n    throw new Error(errorMessage);\n}\n/**\n * proxyPolicy is not supported in the browser and attempting\n * to use it will raise an error.\n */\nexport function proxyPolicy() {\n    throw new Error(errorMessage);\n}\n/**\n * A function to reset the cached agents.\n * proxyPolicy is not supported in the browser and attempting\n * to use it will raise an error.\n * @internal\n */\nexport function resetCachedProxyAgents() {\n    throw new Error(errorMessage);\n}\n//# sourceMappingURL=proxyPolicy.common.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n/**\n * The programmatic identifier of the setClientRequestIdPolicy.\n */\nexport const setClientRequestIdPolicyName = \"setClientRequestIdPolicy\";\n/**\n * Each PipelineRequest gets a unique id upon creation.\n * This policy passes that unique id along via an HTTP header to enable better\n * telemetry and tracing.\n * @param requestIdHeaderName - The name of the header to pass the request ID to.\n */\nexport function setClientRequestIdPolicy(requestIdHeaderName = \"x-ms-client-request-id\") {\n    return {\n        name: setClientRequestIdPolicyName,\n        async sendRequest(request, next) {\n            if (!request.headers.has(requestIdHeaderName)) {\n                request.headers.set(requestIdHeaderName, request.requestId);\n            }\n            return next(request);\n        },\n    };\n}\n//# sourceMappingURL=setClientRequestIdPolicy.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n/** @internal */\nexport const knownContextKeys = {\n    span: Symbol.for(\"@azure/core-tracing span\"),\n    namespace: Symbol.for(\"@azure/core-tracing namespace\"),\n};\n/**\n * Creates a new {@link TracingContext} with the given options.\n * @param options - A set of known keys that may be set on the context.\n * @returns A new {@link TracingContext} with the given options.\n *\n * @internal\n */\nexport function createTracingContext(options = {}) {\n    let context = new TracingContextImpl(options.parentContext);\n    if (options.span) {\n        context = context.setValue(knownContextKeys.span, options.span);\n    }\n    if (options.namespace) {\n        context = context.setValue(knownContextKeys.namespace, options.namespace);\n    }\n    return context;\n}\n/** @internal */\nexport class TracingContextImpl {\n    constructor(initialContext) {\n        this._contextMap =\n            initialContext instanceof TracingContextImpl\n                ? new Map(initialContext._contextMap)\n                : new Map();\n    }\n    setValue(key, value) {\n        const newContext = new TracingContextImpl(this);\n        newContext._contextMap.set(key, value);\n        return newContext;\n    }\n    getValue(key) {\n        return this._contextMap.get(key);\n    }\n    deleteValue(key) {\n        const newContext = new TracingContextImpl(this);\n        newContext._contextMap.delete(key);\n        return newContext;\n    }\n}\n//# sourceMappingURL=tracingContext.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n/**\n * Browser-only implementation of the module's state. The browser esm variant will not load the commonjs state, so we do not need to share state between the two.\n */\nexport const state = {\n    instrumenterImplementation: undefined,\n};\n//# sourceMappingURL=state-browser.mjs.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { createTracingContext } from \"./tracingContext.js\";\nimport { state } from \"./state.js\";\nexport function createDefaultTracingSpan() {\n    return {\n        end: () => {\n            // noop\n        },\n        isRecording: () => false,\n        recordException: () => {\n            // noop\n        },\n        setAttribute: () => {\n            // noop\n        },\n        setStatus: () => {\n            // noop\n        },\n        addEvent: () => {\n            // noop\n        },\n    };\n}\nexport function createDefaultInstrumenter() {\n    return {\n        createRequestHeaders: () => {\n            return {};\n        },\n        parseTraceparentHeader: () => {\n            return undefined;\n        },\n        startSpan: (_name, spanOptions) => {\n            return {\n                span: createDefaultTracingSpan(),\n                tracingContext: createTracingContext({ parentContext: spanOptions.tracingContext }),\n            };\n        },\n        withContext(_context, callback, ...callbackArgs) {\n            return callback(...callbackArgs);\n        },\n    };\n}\n/**\n * Extends the Azure SDK with support for a given instrumenter implementation.\n *\n * @param instrumenter - The instrumenter implementation to use.\n */\nexport function useInstrumenter(instrumenter) {\n    state.instrumenterImplementation = instrumenter;\n}\n/**\n * Gets the currently set instrumenter, a No-Op instrumenter by default.\n *\n * @returns The currently set instrumenter\n */\nexport function getInstrumenter() {\n    if (!state.instrumenterImplementation) {\n        state.instrumenterImplementation = createDefaultInstrumenter();\n    }\n    return state.instrumenterImplementation;\n}\n//# sourceMappingURL=instrumenter.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nexport const custom = {};\n//# sourceMappingURL=inspect.common.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { isError } from \"@azure/core-util\";\nimport { custom } from \"./util/inspect.js\";\nimport { Sanitizer } from \"./util/sanitizer.js\";\nconst errorSanitizer = new Sanitizer();\n/**\n * A custom error type for failed pipeline requests.\n */\nexport class RestError extends Error {\n    constructor(message, options = {}) {\n        super(message);\n        this.name = \"RestError\";\n        this.code = options.code;\n        this.statusCode = options.statusCode;\n        // The request and response may contain sensitive information in the headers or body.\n        // To help prevent this sensitive information being accidentally logged, the request and response\n        // properties are marked as non-enumerable here. This prevents them showing up in the output of\n        // JSON.stringify and console.log.\n        Object.defineProperty(this, \"request\", { value: options.request, enumerable: false });\n        Object.defineProperty(this, \"response\", { value: options.response, enumerable: false });\n        Object.setPrototypeOf(this, RestError.prototype);\n    }\n    /**\n     * Logging method for util.inspect in Node\n     */\n    [custom]() {\n        // Extract non-enumerable properties and add them back. This is OK since in this output the request and\n        // response get sanitized.\n        return `RestError: ${this.message} \\n ${errorSanitizer.sanitize(Object.assign(Object.assign({}, this), { request: this.request, response: this.response }))}`;\n    }\n}\n/**\n * Something went wrong when making the request.\n * This means the actual request failed for some reason,\n * such as a DNS issue or the connection being lost.\n */\nRestError.REQUEST_SEND_ERROR = \"REQUEST_SEND_ERROR\";\n/**\n * This means that parsing the response from the server failed.\n * It may have been malformed.\n */\nRestError.PARSE_ERROR = \"PARSE_ERROR\";\n/**\n * Typeguard for RestError\n * @param e - Something caught by a catch clause.\n */\nexport function isRestError(e) {\n    if (e instanceof RestError) {\n        return true;\n    }\n    return isError(e) && e.name === \"RestError\";\n}\n//# sourceMappingURL=restError.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { logPolicy } from \"./policies/logPolicy.js\";\nimport { createEmptyPipeline } from \"./pipeline.js\";\nimport { redirectPolicy } from \"./policies/redirectPolicy.js\";\nimport { userAgentPolicy } from \"./policies/userAgentPolicy.js\";\nimport { multipartPolicy, multipartPolicyName } from \"./policies/multipartPolicy.js\";\nimport { decompressResponsePolicy } from \"./policies/decompressResponsePolicy.js\";\nimport { defaultRetryPolicy } from \"./policies/defaultRetryPolicy.js\";\nimport { formDataPolicy } from \"./policies/formDataPolicy.js\";\nimport { isNodeLike } from \"@azure/core-util\";\nimport { proxyPolicy } from \"./policies/proxyPolicy.js\";\nimport { setClientRequestIdPolicy } from \"./policies/setClientRequestIdPolicy.js\";\nimport { agentPolicy } from \"./policies/agentPolicy.js\";\nimport { tlsPolicy } from \"./policies/tlsPolicy.js\";\nimport { tracingPolicy } from \"./policies/tracingPolicy.js\";\n/**\n * Create a new pipeline with a default set of customizable policies.\n * @param options - Options to configure a custom pipeline.\n */\nexport function createPipelineFromOptions(options) {\n    var _a;\n    const pipeline = createEmptyPipeline();\n    if (isNodeLike) {\n        if (options.agent) {\n            pipeline.addPolicy(agentPolicy(options.agent));\n        }\n        if (options.tlsOptions) {\n            pipeline.addPolicy(tlsPolicy(options.tlsOptions));\n        }\n        pipeline.addPolicy(proxyPolicy(options.proxyOptions));\n        pipeline.addPolicy(decompressResponsePolicy());\n    }\n    pipeline.addPolicy(formDataPolicy(), { beforePolicies: [multipartPolicyName] });\n    pipeline.addPolicy(userAgentPolicy(options.userAgentOptions));\n    pipeline.addPolicy(setClientRequestIdPolicy((_a = options.telemetryOptions) === null || _a === void 0 ? void 0 : _a.clientRequestIdHeaderName));\n    // The multipart policy is added after policies with no phase, so that\n    // policies can be added between it and formDataPolicy to modify\n    // properties (e.g., making the boundary constant in recorded tests).\n    pipeline.addPolicy(multipartPolicy(), { afterPhase: \"Deserialize\" });\n    pipeline.addPolicy(defaultRetryPolicy(options.retryOptions), { phase: \"Retry\" });\n    pipeline.addPolicy(tracingPolicy(Object.assign(Object.assign({}, options.userAgentOptions), options.loggingOptions)), {\n        afterPhase: \"Retry\",\n    });\n    if (isNodeLike) {\n        // Both XHR and Fetch expect to handle redirects automatically,\n        // so only include this policy when we're in Node.\n        pipeline.addPolicy(redirectPolicy(options.redirectOptions), { afterPhase: \"Retry\" });\n    }\n    pipeline.addPolicy(logPolicy(options.loggingOptions), { afterPhase: \"Sign\" });\n    return pipeline;\n}\n//# sourceMappingURL=createPipelineFromOptions.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n/**\n * Name of the TLS Policy\n */\nexport const tlsPolicyName = \"tlsPolicy\";\n/**\n * Gets a pipeline policy that adds the client certificate to the HttpClient agent for authentication.\n */\nexport function tlsPolicy(tlsSettings) {\n    return {\n        name: tlsPolicyName,\n        sendRequest: async (req, next) => {\n            // Users may define a request tlsSettings, honor those over the client level one\n            if (!req.tlsSettings) {\n                req.tlsSettings = tlsSettings;\n            }\n            return next(req);\n        },\n    };\n}\n//# sourceMappingURL=tlsPolicy.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n/**\n * Name of the Agent Policy\n */\nexport const agentPolicyName = \"agentPolicy\";\n/**\n * Gets a pipeline policy that sets http.agent\n */\nexport function agentPolicy(agent) {\n    return {\n        name: agentPolicyName,\n        sendRequest: async (req, next) => {\n            // Users may define an agent on the request, honor it over the client level one\n            if (!req.agent) {\n                req.agent = agent;\n            }\n            return next(req);\n        },\n    };\n}\n//# sourceMappingURL=agentPolicy.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n/*\n * NOTE: When moving this file, please update \"browser\" section in package.json\n */\nexport const decompressResponsePolicyName = \"decompressResponsePolicy\";\n/**\n * decompressResponsePolicy is not supported in the browser and attempting\n * to use it will raise an error.\n */\nexport function decompressResponsePolicy() {\n    throw new Error(\"decompressResponsePolicy is not supported in browser environment\");\n}\n//# sourceMappingURL=decompressResponsePolicy-browser.mjs.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { isNodeLike, stringToUint8Array } from \"@azure/core-util\";\nimport { createHttpHeaders } from \"../httpHeaders.js\";\n/**\n * The programmatic identifier of the formDataPolicy.\n */\nexport const formDataPolicyName = \"formDataPolicy\";\nfunction formDataToFormDataMap(formData) {\n    var _a;\n    const formDataMap = {};\n    for (const [key, value] of formData.entries()) {\n        (_a = formDataMap[key]) !== null && _a !== void 0 ? _a : (formDataMap[key] = []);\n        formDataMap[key].push(value);\n    }\n    return formDataMap;\n}\n/**\n * A policy that encodes FormData on the request into the body.\n */\nexport function formDataPolicy() {\n    return {\n        name: formDataPolicyName,\n        async sendRequest(request, next) {\n            if (isNodeLike && typeof FormData !== \"undefined\" && request.body instanceof FormData) {\n                request.formData = formDataToFormDataMap(request.body);\n                request.body = undefined;\n            }\n            if (request.formData) {\n                const contentType = request.headers.get(\"Content-Type\");\n                if (contentType && contentType.indexOf(\"application/x-www-form-urlencoded\") !== -1) {\n                    request.body = wwwFormUrlEncode(request.formData);\n                }\n                else {\n                    await prepareFormData(request.formData, request);\n                }\n                request.formData = undefined;\n            }\n            return next(request);\n        },\n    };\n}\nfunction wwwFormUrlEncode(formData) {\n    const urlSearchParams = new URLSearchParams();\n    for (const [key, value] of Object.entries(formData)) {\n        if (Array.isArray(value)) {\n            for (const subValue of value) {\n                urlSearchParams.append(key, subValue.toString());\n            }\n        }\n        else {\n            urlSearchParams.append(key, value.toString());\n        }\n    }\n    return urlSearchParams.toString();\n}\nasync function prepareFormData(formData, request) {\n    // validate content type (multipart/form-data)\n    const contentType = request.headers.get(\"Content-Type\");\n    if (contentType && !contentType.startsWith(\"multipart/form-data\")) {\n        // content type is specified and is not multipart/form-data. Exit.\n        return;\n    }\n    request.headers.set(\"Content-Type\", contentType !== null && contentType !== void 0 ? contentType : \"multipart/form-data\");\n    // set body to MultipartRequestBody using content from FormDataMap\n    const parts = [];\n    for (const [fieldName, values] of Object.entries(formData)) {\n        for (const value of Array.isArray(values) ? values : [values]) {\n            if (typeof value === \"string\") {\n                parts.push({\n                    headers: createHttpHeaders({\n                        \"Content-Disposition\": `form-data; name=\"${fieldName}\"`,\n                    }),\n                    body: stringToUint8Array(value, \"utf-8\"),\n                });\n            }\n            else if (value === undefined || value === null || typeof value !== \"object\") {\n                throw new Error(`Unexpected value for key ${fieldName}: ${value}. Value should be serialized to string first.`);\n            }\n            else {\n                // using || instead of ?? here since if value.name is empty we should create a file name\n                const fileName = value.name || \"blob\";\n                const headers = createHttpHeaders();\n                headers.set(\"Content-Disposition\", `form-data; name=\"${fieldName}\"; filename=\"${fileName}\"`);\n                // again, || is used since an empty value.type means the content type is unset\n                headers.set(\"Content-Type\", value.type || \"application/octet-stream\");\n                parts.push({\n                    headers,\n                    body: value,\n                });\n            }\n        }\n    }\n    request.multipartBody = { parts };\n}\n//# sourceMappingURL=formDataPolicy.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { exponentialRetryStrategy } from \"../retryStrategies/exponentialRetryStrategy.js\";\nimport { throttlingRetryStrategy } from \"../retryStrategies/throttlingRetryStrategy.js\";\nimport { retryPolicy } from \"./retryPolicy.js\";\nimport { DEFAULT_RETRY_POLICY_COUNT } from \"../constants.js\";\n/**\n * Name of the {@link defaultRetryPolicy}\n */\nexport const defaultRetryPolicyName = \"defaultRetryPolicy\";\n/**\n * A policy that retries according to three strategies:\n * - When the server sends a 429 response with a Retry-After header.\n * - When there are errors in the underlying transport layer (e.g. DNS lookup failures).\n * - Or otherwise if the outgoing request fails, it will retry with an exponentially increasing delay.\n */\nexport function defaultRetryPolicy(options = {}) {\n    var _a;\n    return {\n        name: defaultRetryPolicyName,\n        sendRequest: retryPolicy([throttlingRetryStrategy(), exponentialRetryStrategy(options)], {\n            maxRetries: (_a = options.maxRetries) !== null && _a !== void 0 ? _a : DEFAULT_RETRY_POLICY_COUNT,\n        }).sendRequest,\n    };\n}\n//# sourceMappingURL=defaultRetryPolicy.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { createTracingClient, } from \"@azure/core-tracing\";\nimport { SDK_VERSION } from \"../constants.js\";\nimport { getUserAgentValue } from \"../util/userAgent.js\";\nimport { logger } from \"../log.js\";\nimport { getErrorMessage, isError } from \"@azure/core-util\";\nimport { isRestError } from \"../restError.js\";\nimport { Sanitizer } from \"../util/sanitizer.js\";\n/**\n * The programmatic identifier of the tracingPolicy.\n */\nexport const tracingPolicyName = \"tracingPolicy\";\n/**\n * A simple policy to create OpenTelemetry Spans for each request made by the pipeline\n * that has SpanOptions with a parent.\n * Requests made without a parent Span will not be recorded.\n * @param options - Options to configure the telemetry logged by the tracing policy.\n */\nexport function tracingPolicy(options = {}) {\n    const userAgentPromise = getUserAgentValue(options.userAgentPrefix);\n    const sanitizer = new Sanitizer({\n        additionalAllowedQueryParameters: options.additionalAllowedQueryParameters,\n    });\n    const tracingClient = tryCreateTracingClient();\n    return {\n        name: tracingPolicyName,\n        async sendRequest(request, next) {\n            var _a;\n            if (!tracingClient) {\n                return next(request);\n            }\n            const userAgent = await userAgentPromise;\n            const spanAttributes = {\n                \"http.url\": sanitizer.sanitizeUrl(request.url),\n                \"http.method\": request.method,\n                \"http.user_agent\": userAgent,\n                requestId: request.requestId,\n            };\n            if (userAgent) {\n                spanAttributes[\"http.user_agent\"] = userAgent;\n            }\n            const { span, tracingContext } = (_a = tryCreateSpan(tracingClient, request, spanAttributes)) !== null && _a !== void 0 ? _a : {};\n            if (!span || !tracingContext) {\n                return next(request);\n            }\n            try {\n                const response = await tracingClient.withContext(tracingContext, next, request);\n                tryProcessResponse(span, response);\n                return response;\n            }\n            catch (err) {\n                tryProcessError(span, err);\n                throw err;\n            }\n        },\n    };\n}\nfunction tryCreateTracingClient() {\n    try {\n        return createTracingClient({\n            namespace: \"\",\n            packageName: \"@azure/core-rest-pipeline\",\n            packageVersion: SDK_VERSION,\n        });\n    }\n    catch (e) {\n        logger.warning(`Error when creating the TracingClient: ${getErrorMessage(e)}`);\n        return undefined;\n    }\n}\nfunction tryCreateSpan(tracingClient, request, spanAttributes) {\n    try {\n        // As per spec, we do not need to differentiate between HTTP and HTTPS in span name.\n        const { span, updatedOptions } = tracingClient.startSpan(`HTTP ${request.method}`, { tracingOptions: request.tracingOptions }, {\n            spanKind: \"client\",\n            spanAttributes,\n        });\n        // If the span is not recording, don't do any more work.\n        if (!span.isRecording()) {\n            span.end();\n            return undefined;\n        }\n        // set headers\n        const headers = tracingClient.createRequestHeaders(updatedOptions.tracingOptions.tracingContext);\n        for (const [key, value] of Object.entries(headers)) {\n            request.headers.set(key, value);\n        }\n        return { span, tracingContext: updatedOptions.tracingOptions.tracingContext };\n    }\n    catch (e) {\n        logger.warning(`Skipping creating a tracing span due to an error: ${getErrorMessage(e)}`);\n        return undefined;\n    }\n}\nfunction tryProcessError(span, error) {\n    try {\n        span.setStatus({\n            status: \"error\",\n            error: isError(error) ? error : undefined,\n        });\n        if (isRestError(error) && error.statusCode) {\n            span.setAttribute(\"http.status_code\", error.statusCode);\n        }\n        span.end();\n    }\n    catch (e) {\n        logger.warning(`Skipping tracing span processing due to an error: ${getErrorMessage(e)}`);\n    }\n}\nfunction tryProcessResponse(span, response) {\n    try {\n        span.setAttribute(\"http.status_code\", response.status);\n        const serviceRequestId = response.headers.get(\"x-ms-request-id\");\n        if (serviceRequestId) {\n            span.setAttribute(\"serviceRequestId\", serviceRequestId);\n        }\n        // Per semantic conventions, only set the status to error if the status code is 4xx or 5xx.\n        // Otherwise, the status MUST remain unset.\n        // https://opentelemetry.io/docs/specs/semconv/http/http-spans/#status\n        if (response.status >= 400) {\n            span.setStatus({\n                status: \"error\",\n            });\n        }\n        span.end();\n    }\n    catch (e) {\n        logger.warning(`Skipping tracing span processing due to an error: ${getErrorMessage(e)}`);\n    }\n}\n//# sourceMappingURL=tracingPolicy.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { getInstrumenter } from \"./instrumenter.js\";\nimport { knownContextKeys } from \"./tracingContext.js\";\n/**\n * Creates a new tracing client.\n *\n * @param options - Options used to configure the tracing client.\n * @returns - An instance of {@link TracingClient}.\n */\nexport function createTracingClient(options) {\n    const { namespace, packageName, packageVersion } = options;\n    function startSpan(name, operationOptions, spanOptions) {\n        var _a;\n        const startSpanResult = getInstrumenter().startSpan(name, Object.assign(Object.assign({}, spanOptions), { packageName: packageName, packageVersion: packageVersion, tracingContext: (_a = operationOptions === null || operationOptions === void 0 ? void 0 : operationOptions.tracingOptions) === null || _a === void 0 ? void 0 : _a.tracingContext }));\n        let tracingContext = startSpanResult.tracingContext;\n        const span = startSpanResult.span;\n        if (!tracingContext.getValue(knownContextKeys.namespace)) {\n            tracingContext = tracingContext.setValue(knownContextKeys.namespace, namespace);\n        }\n        span.setAttribute(\"az.namespace\", tracingContext.getValue(knownContextKeys.namespace));\n        const updatedOptions = Object.assign({}, operationOptions, {\n            tracingOptions: Object.assign(Object.assign({}, operationOptions === null || operationOptions === void 0 ? void 0 : operationOptions.tracingOptions), { tracingContext }),\n        });\n        return {\n            span,\n            updatedOptions,\n        };\n    }\n    async function withSpan(name, operationOptions, callback, spanOptions) {\n        const { span, updatedOptions } = startSpan(name, operationOptions, spanOptions);\n        try {\n            const result = await withContext(updatedOptions.tracingOptions.tracingContext, () => Promise.resolve(callback(updatedOptions, span)));\n            span.setStatus({ status: \"success\" });\n            return result;\n        }\n        catch (err) {\n            span.setStatus({ status: \"error\", error: err });\n            throw err;\n        }\n        finally {\n            span.end();\n        }\n    }\n    function withContext(context, callback, ...callbackArgs) {\n        return getInstrumenter().withContext(context, callback, ...callbackArgs);\n    }\n    /**\n     * Parses a traceparent header value into a span identifier.\n     *\n     * @param traceparentHeader - The traceparent header to parse.\n     * @returns An implementation-specific identifier for the span.\n     */\n    function parseTraceparentHeader(traceparentHeader) {\n        return getInstrumenter().parseTraceparentHeader(traceparentHeader);\n    }\n    /**\n     * Creates a set of request headers to propagate tracing information to a backend.\n     *\n     * @param tracingContext - The context containing the span to serialize.\n     * @returns The set of headers to add to a request.\n     */\n    function createRequestHeaders(tracingContext) {\n        return getInstrumenter().createRequestHeaders(tracingContext);\n    }\n    return {\n        startSpan,\n        withSpan,\n        withContext,\n        parseTraceparentHeader,\n        createRequestHeaders,\n    };\n}\n//# sourceMappingURL=tracingClient.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { logger as coreLogger } from \"../log.js\";\nimport { Sanitizer } from \"../util/sanitizer.js\";\n/**\n * The programmatic identifier of the logPolicy.\n */\nexport const logPolicyName = \"logPolicy\";\n/**\n * A policy that logs all requests and responses.\n * @param options - Options to configure logPolicy.\n */\nexport function logPolicy(options = {}) {\n    var _a;\n    const logger = (_a = options.logger) !== null && _a !== void 0 ? _a : coreLogger.info;\n    const sanitizer = new Sanitizer({\n        additionalAllowedHeaderNames: options.additionalAllowedHeaderNames,\n        additionalAllowedQueryParameters: options.additionalAllowedQueryParameters,\n    });\n    return {\n        name: logPolicyName,\n        async sendRequest(request, next) {\n            if (!logger.enabled) {\n                return next(request);\n            }\n            logger(`Request: ${sanitizer.sanitize(request)}`);\n            const response = await next(request);\n            logger(`Response status code: ${response.status}`);\n            logger(`Headers: ${sanitizer.sanitize(response.headers)}`);\n            return response;\n        },\n    };\n}\n//# sourceMappingURL=logPolicy.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { AbortError } from \"@azure/abort-controller\";\nimport { RestError } from \"./restError.js\";\nimport { createHttpHeaders } from \"./httpHeaders.js\";\nimport { isNodeReadableStream, isWebReadableStream } from \"./util/typeGuards.js\";\n/**\n * Checks if the body is a Blob or Blob-like\n */\nfunction isBlob(body) {\n    // File objects count as a type of Blob, so we want to use instanceof explicitly\n    return (typeof Blob === \"function\" || typeof Blob === \"object\") && body instanceof Blob;\n}\n/**\n * A HttpClient implementation that uses window.fetch to send HTTP requests.\n * @internal\n */\nclass FetchHttpClient {\n    /**\n     * Makes a request over an underlying transport layer and returns the response.\n     * @param request - The request to be made.\n     */\n    async sendRequest(request) {\n        const url = new URL(request.url);\n        const isInsecure = url.protocol !== \"https:\";\n        if (isInsecure && !request.allowInsecureConnection) {\n            throw new Error(`Cannot connect to ${request.url} while allowInsecureConnection is false.`);\n        }\n        if (request.proxySettings) {\n            throw new Error(\"HTTP proxy is not supported in browser environment\");\n        }\n        try {\n            return await makeRequest(request);\n        }\n        catch (e) {\n            throw getError(e, request);\n        }\n    }\n}\n/**\n * Sends a request\n */\nasync function makeRequest(request) {\n    const { abortController, abortControllerCleanup } = setupAbortSignal(request);\n    try {\n        const headers = buildFetchHeaders(request.headers);\n        const { streaming, body: requestBody } = buildRequestBody(request);\n        const requestInit = Object.assign(Object.assign({ body: requestBody, method: request.method, headers: headers, signal: abortController.signal }, (\"credentials\" in Request.prototype\n            ? { credentials: request.withCredentials ? \"include\" : \"same-origin\" }\n            : {})), (\"cache\" in Request.prototype ? { cache: \"no-store\" } : {}));\n        // According to https://fetch.spec.whatwg.org/#fetch-method,\n        // init.duplex must be set when body is a ReadableStream object.\n        // currently \"half\" is the only valid value.\n        if (streaming) {\n            requestInit.duplex = \"half\";\n        }\n        /**\n         * Developers of the future:\n         * Do not set redirect: \"manual\" as part\n         * of request options.\n         * It will not work as you expect.\n         */\n        const response = await fetch(request.url, requestInit);\n        // If we're uploading a blob, we need to fire the progress event manually\n        if (isBlob(request.body) && request.onUploadProgress) {\n            request.onUploadProgress({ loadedBytes: request.body.size });\n        }\n        return buildPipelineResponse(response, request, abortControllerCleanup);\n    }\n    catch (e) {\n        abortControllerCleanup === null || abortControllerCleanup === void 0 ? void 0 : abortControllerCleanup();\n        throw e;\n    }\n}\n/**\n * Creates a pipeline response from a Fetch response;\n */\nasync function buildPipelineResponse(httpResponse, request, abortControllerCleanup) {\n    var _a, _b;\n    const headers = buildPipelineHeaders(httpResponse);\n    const response = {\n        request,\n        headers,\n        status: httpResponse.status,\n    };\n    const bodyStream = isWebReadableStream(httpResponse.body)\n        ? buildBodyStream(httpResponse.body, {\n            onProgress: request.onDownloadProgress,\n            onEnd: abortControllerCleanup,\n        })\n        : httpResponse.body;\n    if (\n    // Value of POSITIVE_INFINITY in streamResponseStatusCodes is considered as any status code\n    ((_a = request.streamResponseStatusCodes) === null || _a === void 0 ? void 0 : _a.has(Number.POSITIVE_INFINITY)) ||\n        ((_b = request.streamResponseStatusCodes) === null || _b === void 0 ? void 0 : _b.has(response.status))) {\n        if (request.enableBrowserStreams) {\n            response.browserStreamBody = bodyStream !== null && bodyStream !== void 0 ? bodyStream : undefined;\n        }\n        else {\n            const responseStream = new Response(bodyStream);\n            response.blobBody = responseStream.blob();\n            abortControllerCleanup === null || abortControllerCleanup === void 0 ? void 0 : abortControllerCleanup();\n        }\n    }\n    else {\n        const responseStream = new Response(bodyStream);\n        response.bodyAsText = await responseStream.text();\n        abortControllerCleanup === null || abortControllerCleanup === void 0 ? void 0 : abortControllerCleanup();\n    }\n    return response;\n}\nfunction setupAbortSignal(request) {\n    const abortController = new AbortController();\n    // Cleanup function\n    let abortControllerCleanup;\n    /**\n     * Attach an abort listener to the request\n     */\n    let abortListener;\n    if (request.abortSignal) {\n        if (request.abortSignal.aborted) {\n            throw new AbortError(\"The operation was aborted. Request has already been canceled.\");\n        }\n        abortListener = (event) => {\n            if (event.type === \"abort\") {\n                abortController.abort();\n            }\n        };\n        request.abortSignal.addEventListener(\"abort\", abortListener);\n        abortControllerCleanup = () => {\n            var _a;\n            if (abortListener) {\n                (_a = request.abortSignal) === null || _a === void 0 ? void 0 : _a.removeEventListener(\"abort\", abortListener);\n            }\n        };\n    }\n    // If a timeout was passed, call the abort signal once the time elapses\n    if (request.timeout > 0) {\n        setTimeout(() => {\n            abortController.abort();\n        }, request.timeout);\n    }\n    return { abortController, abortControllerCleanup };\n}\n/**\n * Gets the specific error\n */\n// eslint-disable-next-line @azure/azure-sdk/ts-use-interface-parameters\nfunction getError(e, request) {\n    var _a;\n    if (e && (e === null || e === void 0 ? void 0 : e.name) === \"AbortError\") {\n        return e;\n    }\n    else {\n        return new RestError(`Error sending request: ${e.message}`, {\n            code: (_a = e === null || e === void 0 ? void 0 : e.code) !== null && _a !== void 0 ? _a : RestError.REQUEST_SEND_ERROR,\n            request,\n        });\n    }\n}\n/**\n * Converts PipelineRequest headers to Fetch headers\n */\nfunction buildFetchHeaders(pipelineHeaders) {\n    const headers = new Headers();\n    for (const [name, value] of pipelineHeaders) {\n        headers.append(name, value);\n    }\n    return headers;\n}\nfunction buildPipelineHeaders(httpResponse) {\n    const responseHeaders = createHttpHeaders();\n    for (const [name, value] of httpResponse.headers) {\n        responseHeaders.set(name, value);\n    }\n    return responseHeaders;\n}\nfunction buildRequestBody(request) {\n    const body = typeof request.body === \"function\" ? request.body() : request.body;\n    if (isNodeReadableStream(body)) {\n        throw new Error(\"Node streams are not supported in browser environment.\");\n    }\n    return isWebReadableStream(body)\n        ? { streaming: true, body: buildBodyStream(body, { onProgress: request.onUploadProgress }) }\n        : { streaming: false, body };\n}\n/**\n * Reads the request/response original stream and stream it through a new\n * ReadableStream, this is done to be able to report progress in a way that\n * all modern browsers support. TransformStreams would be an alternative,\n * however they are not yet supported by all browsers i.e Firefox\n */\nfunction buildBodyStream(readableStream, options = {}) {\n    let loadedBytes = 0;\n    const { onProgress, onEnd } = options;\n    // If the current browser supports pipeThrough we use a TransformStream\n    // to report progress\n    if (isTransformStreamSupported(readableStream)) {\n        return readableStream.pipeThrough(new TransformStream({\n            transform(chunk, controller) {\n                if (chunk === null) {\n                    controller.terminate();\n                    return;\n                }\n                controller.enqueue(chunk);\n                loadedBytes += chunk.length;\n                if (onProgress) {\n                    onProgress({ loadedBytes });\n                }\n            },\n            flush() {\n                onEnd === null || onEnd === void 0 ? void 0 : onEnd();\n            },\n        }));\n    }\n    else {\n        // If we can't use transform streams, wrap the original stream in a new readable stream\n        // and use pull to enqueue each chunk and report progress.\n        const reader = readableStream.getReader();\n        return new ReadableStream({\n            async pull(controller) {\n                var _a;\n                const { done, value } = await reader.read();\n                // When no more data needs to be consumed, break the reading\n                if (done || !value) {\n                    onEnd === null || onEnd === void 0 ? void 0 : onEnd();\n                    // Close the stream\n                    controller.close();\n                    reader.releaseLock();\n                    return;\n                }\n                loadedBytes += (_a = value === null || value === void 0 ? void 0 : value.length) !== null && _a !== void 0 ? _a : 0;\n                // Enqueue the next data chunk into our target stream\n                controller.enqueue(value);\n                if (onProgress) {\n                    onProgress({ loadedBytes });\n                }\n            },\n            cancel(reason) {\n                onEnd === null || onEnd === void 0 ? void 0 : onEnd();\n                return reader.cancel(reason);\n            },\n        });\n    }\n}\n/**\n * Create a new HttpClient instance for the browser environment.\n * @internal\n */\nexport function createFetchHttpClient() {\n    return new FetchHttpClient();\n}\nfunction isTransformStreamSupported(readableStream) {\n    return readableStream.pipeThrough !== undefined && self.TransformStream !== undefined;\n}\n//# sourceMappingURL=fetchHttpClient.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { createHttpHeaders } from \"./httpHeaders.js\";\nimport { randomUUID } from \"@azure/core-util\";\nclass PipelineRequestImpl {\n    constructor(options) {\n        var _a, _b, _c, _d, _e, _f, _g;\n        this.url = options.url;\n        this.body = options.body;\n        this.headers = (_a = options.headers) !== null && _a !== void 0 ? _a : createHttpHeaders();\n        this.method = (_b = options.method) !== null && _b !== void 0 ? _b : \"GET\";\n        this.timeout = (_c = options.timeout) !== null && _c !== void 0 ? _c : 0;\n        this.multipartBody = options.multipartBody;\n        this.formData = options.formData;\n        this.disableKeepAlive = (_d = options.disableKeepAlive) !== null && _d !== void 0 ? _d : false;\n        this.proxySettings = options.proxySettings;\n        this.streamResponseStatusCodes = options.streamResponseStatusCodes;\n        this.withCredentials = (_e = options.withCredentials) !== null && _e !== void 0 ? _e : false;\n        this.abortSignal = options.abortSignal;\n        this.tracingOptions = options.tracingOptions;\n        this.onUploadProgress = options.onUploadProgress;\n        this.onDownloadProgress = options.onDownloadProgress;\n        this.requestId = options.requestId || randomUUID();\n        this.allowInsecureConnection = (_f = options.allowInsecureConnection) !== null && _f !== void 0 ? _f : false;\n        this.enableBrowserStreams = (_g = options.enableBrowserStreams) !== null && _g !== void 0 ? _g : false;\n        this.agent = options.agent;\n        this.tlsSettings = options.tlsSettings;\n    }\n}\n/**\n * Creates a new pipeline request with the given options.\n * This method is to allow for the easy setting of default values and not required.\n * @param options - The options to create the request with.\n */\nexport function createPipelineRequest(options) {\n    return new PipelineRequestImpl(options);\n}\n//# sourceMappingURL=pipelineRequest.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { delay } from \"./helpers.js\";\n// Default options for the cycler if none are provided\nexport const DEFAULT_CYCLER_OPTIONS = {\n    forcedRefreshWindowInMs: 1000, // Force waiting for a refresh 1s before the token expires\n    retryIntervalInMs: 3000, // Allow refresh attempts every 3s\n    refreshWindowInMs: 1000 * 60 * 2, // Start refreshing 2m before expiry\n};\n/**\n * Converts an an unreliable access token getter (which may resolve with null)\n * into an AccessTokenGetter by retrying the unreliable getter in a regular\n * interval.\n *\n * @param getAccessToken - A function that produces a promise of an access token that may fail by returning null.\n * @param retryIntervalInMs - The time (in milliseconds) to wait between retry attempts.\n * @param refreshTimeout - The timestamp after which the refresh attempt will fail, throwing an exception.\n * @returns - A promise that, if it resolves, will resolve with an access token.\n */\nasync function beginRefresh(getAccessToken, retryIntervalInMs, refreshTimeout) {\n    // This wrapper handles exceptions gracefully as long as we haven't exceeded\n    // the timeout.\n    async function tryGetAccessToken() {\n        if (Date.now() < refreshTimeout) {\n            try {\n                return await getAccessToken();\n            }\n            catch (_a) {\n                return null;\n            }\n        }\n        else {\n            const finalToken = await getAccessToken();\n            // Timeout is up, so throw if it's still null\n            if (finalToken === null) {\n                throw new Error(\"Failed to refresh access token.\");\n            }\n            return finalToken;\n        }\n    }\n    let token = await tryGetAccessToken();\n    while (token === null) {\n        await delay(retryIntervalInMs);\n        token = await tryGetAccessToken();\n    }\n    return token;\n}\n/**\n * Creates a token cycler from a credential, scopes, and optional settings.\n *\n * A token cycler represents a way to reliably retrieve a valid access token\n * from a TokenCredential. It will handle initializing the token, refreshing it\n * when it nears expiration, and synchronizes refresh attempts to avoid\n * concurrency hazards.\n *\n * @param credential - the underlying TokenCredential that provides the access\n * token\n * @param tokenCyclerOptions - optionally override default settings for the cycler\n *\n * @returns - a function that reliably produces a valid access token\n */\nexport function createTokenCycler(credential, tokenCyclerOptions) {\n    let refreshWorker = null;\n    let token = null;\n    let tenantId;\n    const options = Object.assign(Object.assign({}, DEFAULT_CYCLER_OPTIONS), tokenCyclerOptions);\n    /**\n     * This little holder defines several predicates that we use to construct\n     * the rules of refreshing the token.\n     */\n    const cycler = {\n        /**\n         * Produces true if a refresh job is currently in progress.\n         */\n        get isRefreshing() {\n            return refreshWorker !== null;\n        },\n        /**\n         * Produces true if the cycler SHOULD refresh (we are within the refresh\n         * window and not already refreshing)\n         */\n        get shouldRefresh() {\n            var _a;\n            if (cycler.isRefreshing) {\n                return false;\n            }\n            if ((token === null || token === void 0 ? void 0 : token.refreshAfterTimestamp) && token.refreshAfterTimestamp < Date.now()) {\n                return true;\n            }\n            return ((_a = token === null || token === void 0 ? void 0 : token.expiresOnTimestamp) !== null && _a !== void 0 ? _a : 0) - options.refreshWindowInMs < Date.now();\n        },\n        /**\n         * Produces true if the cycler MUST refresh (null or nearly-expired\n         * token).\n         */\n        get mustRefresh() {\n            return (token === null || token.expiresOnTimestamp - options.forcedRefreshWindowInMs < Date.now());\n        },\n    };\n    /**\n     * Starts a refresh job or returns the existing job if one is already\n     * running.\n     */\n    function refresh(scopes, getTokenOptions) {\n        var _a;\n        if (!cycler.isRefreshing) {\n            // We bind `scopes` here to avoid passing it around a lot\n            const tryGetAccessToken = () => credential.getToken(scopes, getTokenOptions);\n            // Take advantage of promise chaining to insert an assignment to `token`\n            // before the refresh can be considered done.\n            refreshWorker = beginRefresh(tryGetAccessToken, options.retryIntervalInMs, \n            // If we don't have a token, then we should timeout immediately\n            (_a = token === null || token === void 0 ? void 0 : token.expiresOnTimestamp) !== null && _a !== void 0 ? _a : Date.now())\n                .then((_token) => {\n                refreshWorker = null;\n                token = _token;\n                tenantId = getTokenOptions.tenantId;\n                return token;\n            })\n                .catch((reason) => {\n                // We also should reset the refresher if we enter a failed state.  All\n                // existing awaiters will throw, but subsequent requests will start a\n                // new retry chain.\n                refreshWorker = null;\n                token = null;\n                tenantId = undefined;\n                throw reason;\n            });\n        }\n        return refreshWorker;\n    }\n    return async (scopes, tokenOptions) => {\n        //\n        // Simple rules:\n        // - If we MUST refresh, then return the refresh task, blocking\n        //   the pipeline until a token is available.\n        // - If we SHOULD refresh, then run refresh but don't return it\n        //   (we can still use the cached token).\n        // - Return the token, since it's fine if we didn't return in\n        //   step 1.\n        //\n        const hasClaimChallenge = Boolean(tokenOptions.claims);\n        const tenantIdChanged = tenantId !== tokenOptions.tenantId;\n        if (hasClaimChallenge) {\n            // If we've received a claim, we know the existing token isn't valid\n            // We want to clear it so that that refresh worker won't use the old expiration time as a timeout\n            token = null;\n        }\n        // If the tenantId passed in token options is different to the one we have\n        // Or if we are in claim challenge and the token was rejected and a new access token need to be issued, we need to\n        // refresh the token with the new tenantId or token.\n        const mustRefresh = tenantIdChanged || hasClaimChallenge || cycler.mustRefresh;\n        if (mustRefresh) {\n            return refresh(scopes, tokenOptions);\n        }\n        if (cycler.shouldRefresh) {\n            refresh(scopes, tokenOptions);\n        }\n        return token;\n    };\n}\n//# sourceMappingURL=tokenCycler.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { createTokenCycler } from \"../util/tokenCycler.js\";\nimport { logger as coreLogger } from \"../log.js\";\nimport { isRestError } from \"../restError.js\";\n/**\n * The programmatic identifier of the bearerTokenAuthenticationPolicy.\n */\nexport const bearerTokenAuthenticationPolicyName = \"bearerTokenAuthenticationPolicy\";\n/**\n * Try to send the given request.\n *\n * When a response is received, returns a tuple of the response received and, if the response was received\n * inside a thrown RestError, the RestError that was thrown.\n *\n * Otherwise, if an error was thrown while sending the request that did not provide an underlying response, it\n * will be rethrown.\n */\nasync function trySendRequest(request, next) {\n    try {\n        return [await next(request), undefined];\n    }\n    catch (e) {\n        if (isRestError(e) && e.response) {\n            return [e.response, e];\n        }\n        else {\n            throw e;\n        }\n    }\n}\n/**\n * Default authorize request handler\n */\nasync function defaultAuthorizeRequest(options) {\n    const { scopes, getAccessToken, request } = options;\n    // Enable CAE true by default\n    const getTokenOptions = {\n        abortSignal: request.abortSignal,\n        tracingOptions: request.tracingOptions,\n        enableCae: true,\n    };\n    const accessToken = await getAccessToken(scopes, getTokenOptions);\n    if (accessToken) {\n        options.request.headers.set(\"Authorization\", `Bearer ${accessToken.token}`);\n    }\n}\n/**\n * We will retrieve the challenge only if the response status code was 401,\n * and if the response contained the header \"WWW-Authenticate\" with a non-empty value.\n */\nfunction isChallengeResponse(response) {\n    return response.status === 401 && response.headers.has(\"WWW-Authenticate\");\n}\n/**\n * Re-authorize the request for CAE challenge.\n * The response containing the challenge is `options.response`.\n * If this method returns true, the underlying request will be sent once again.\n */\nasync function authorizeRequestOnCaeChallenge(onChallengeOptions, caeClaims) {\n    var _a;\n    const { scopes } = onChallengeOptions;\n    const accessToken = await onChallengeOptions.getAccessToken(scopes, {\n        enableCae: true,\n        claims: caeClaims,\n    });\n    if (!accessToken) {\n        return false;\n    }\n    onChallengeOptions.request.headers.set(\"Authorization\", `${(_a = accessToken.tokenType) !== null && _a !== void 0 ? _a : \"Bearer\"} ${accessToken.token}`);\n    return true;\n}\n/**\n * A policy that can request a token from a TokenCredential implementation and\n * then apply it to the Authorization header of a request as a Bearer token.\n */\nexport function bearerTokenAuthenticationPolicy(options) {\n    var _a, _b, _c;\n    const { credential, scopes, challengeCallbacks } = options;\n    const logger = options.logger || coreLogger;\n    const callbacks = {\n        authorizeRequest: (_b = (_a = challengeCallbacks === null || challengeCallbacks === void 0 ? void 0 : challengeCallbacks.authorizeRequest) === null || _a === void 0 ? void 0 : _a.bind(challengeCallbacks)) !== null && _b !== void 0 ? _b : defaultAuthorizeRequest,\n        authorizeRequestOnChallenge: (_c = challengeCallbacks === null || challengeCallbacks === void 0 ? void 0 : challengeCallbacks.authorizeRequestOnChallenge) === null || _c === void 0 ? void 0 : _c.bind(challengeCallbacks),\n    };\n    // This function encapsulates the entire process of reliably retrieving the token\n    // The options are left out of the public API until there's demand to configure this.\n    // Remember to extend `BearerTokenAuthenticationPolicyOptions` with `TokenCyclerOptions`\n    // in order to pass through the `options` object.\n    const getAccessToken = credential\n        ? createTokenCycler(credential /* , options */)\n        : () => Promise.resolve(null);\n    return {\n        name: bearerTokenAuthenticationPolicyName,\n        /**\n         * If there's no challenge parameter:\n         * - It will try to retrieve the token using the cache, or the credential's getToken.\n         * - Then it will try the next policy with or without the retrieved token.\n         *\n         * It uses the challenge parameters to:\n         * - Skip a first attempt to get the token from the credential if there's no cached token,\n         *   since it expects the token to be retrievable only after the challenge.\n         * - Prepare the outgoing request if the `prepareRequest` method has been provided.\n         * - Send an initial request to receive the challenge if it fails.\n         * - Process a challenge if the response contains it.\n         * - Retrieve a token with the challenge information, then re-send the request.\n         */\n        async sendRequest(request, next) {\n            if (!request.url.toLowerCase().startsWith(\"https://\")) {\n                throw new Error(\"Bearer token authentication is not permitted for non-TLS protected (non-https) URLs.\");\n            }\n            await callbacks.authorizeRequest({\n                scopes: Array.isArray(scopes) ? scopes : [scopes],\n                request,\n                getAccessToken,\n                logger,\n            });\n            let response;\n            let error;\n            let shouldSendRequest;\n            [response, error] = await trySendRequest(request, next);\n            if (isChallengeResponse(response)) {\n                let claims = getCaeChallengeClaims(response.headers.get(\"WWW-Authenticate\"));\n                // Handle CAE by default when receive CAE claim\n                if (claims) {\n                    let parsedClaim;\n                    // Return the response immediately if claims is not a valid base64 encoded string\n                    try {\n                        parsedClaim = atob(claims);\n                    }\n                    catch (e) {\n                        logger.warning(`The WWW-Authenticate header contains \"claims\" that cannot be parsed. Unable to perform the Continuous Access Evaluation authentication flow. Unparsable claims: ${claims}`);\n                        return response;\n                    }\n                    shouldSendRequest = await authorizeRequestOnCaeChallenge({\n                        scopes: Array.isArray(scopes) ? scopes : [scopes],\n                        response,\n                        request,\n                        getAccessToken,\n                        logger,\n                    }, parsedClaim);\n                    // Send updated request and handle response for RestError\n                    if (shouldSendRequest) {\n                        [response, error] = await trySendRequest(request, next);\n                    }\n                }\n                else if (callbacks.authorizeRequestOnChallenge) {\n                    // Handle custom challenges when client provides custom callback\n                    shouldSendRequest = await callbacks.authorizeRequestOnChallenge({\n                        scopes: Array.isArray(scopes) ? scopes : [scopes],\n                        request,\n                        response,\n                        getAccessToken,\n                        logger,\n                    });\n                    // Send updated request and handle response for RestError\n                    if (shouldSendRequest) {\n                        [response, error] = await trySendRequest(request, next);\n                    }\n                    // If we get another CAE Claim, we will handle it by default and return whatever value we receive for this\n                    if (isChallengeResponse(response)) {\n                        claims = getCaeChallengeClaims(response.headers.get(\"WWW-Authenticate\"));\n                        if (claims) {\n                            let parsedClaim;\n                            try {\n                                parsedClaim = atob(claims);\n                            }\n                            catch (e) {\n                                logger.warning(`The WWW-Authenticate header contains \"claims\" that cannot be parsed. Unable to perform the Continuous Access Evaluation authentication flow. Unparsable claims: ${claims}`);\n                                return response;\n                            }\n                            shouldSendRequest = await authorizeRequestOnCaeChallenge({\n                                scopes: Array.isArray(scopes) ? scopes : [scopes],\n                                response,\n                                request,\n                                getAccessToken,\n                                logger,\n                            }, parsedClaim);\n                            // Send updated request and handle response for RestError\n                            if (shouldSendRequest) {\n                                [response, error] = await trySendRequest(request, next);\n                            }\n                        }\n                    }\n                }\n            }\n            if (error) {\n                throw error;\n            }\n            else {\n                return response;\n            }\n        },\n    };\n}\n/**\n * Converts: `Bearer a=\"b\", c=\"d\", Pop e=\"f\", g=\"h\"`.\n * Into: `[ { scheme: 'Bearer', params: { a: 'b', c: 'd' } }, { scheme: 'Pop', params: { e: 'f', g: 'h' } } ]`.\n *\n * @internal\n */\nexport function parseChallenges(challenges) {\n    // Challenge regex seperates the string to individual challenges with different schemes in the format `Scheme a=\"b\", c=d`\n    // The challenge regex captures parameteres with either quotes values or unquoted values\n    const challengeRegex = /(\\w+)\\s+((?:\\w+=(?:\"[^\"]*\"|[^,]*),?\\s*)+)/g;\n    // Parameter regex captures the claims group removed from the scheme in the format `a=\"b\"` and `c=\"d\"`\n    // CAE challenge always have quoted parameters. For more reference, https://learn.microsoft.com/entra/identity-platform/claims-challenge\n    const paramRegex = /(\\w+)=\"([^\"]*)\"/g;\n    const parsedChallenges = [];\n    let match;\n    // Iterate over each challenge match\n    while ((match = challengeRegex.exec(challenges)) !== null) {\n        const scheme = match[1];\n        const paramsString = match[2];\n        const params = {};\n        let paramMatch;\n        // Iterate over each parameter match\n        while ((paramMatch = paramRegex.exec(paramsString)) !== null) {\n            params[paramMatch[1]] = paramMatch[2];\n        }\n        parsedChallenges.push({ scheme, params });\n    }\n    return parsedChallenges;\n}\n/**\n * Parse a pipeline response and look for a CAE challenge with \"Bearer\" scheme\n * Return the value in the header without parsing the challenge\n * @internal\n */\nfunction getCaeChallengeClaims(challenges) {\n    var _a;\n    if (!challenges) {\n        return;\n    }\n    // Find all challenges present in the header\n    const parsedChallenges = parseChallenges(challenges);\n    return (_a = parsedChallenges.find((x) => x.scheme === \"Bearer\" && x.params.claims && x.params.error === \"insufficient_claims\")) === null || _a === void 0 ? void 0 : _a.params.claims;\n}\n//# sourceMappingURL=bearerTokenAuthenticationPolicy.js.map","import { RestError } from '@azure/core-rest-pipeline';\n\nexport const pause = async (duration: number): Promise<void> =>\n  new Promise((resolve) => {\n    setTimeout(resolve, duration);\n  });\n\nexport const mapObject = <InputV, OutputV>(\n  object: { [k: string]: InputV },\n  fn: (\n    value: [string, InputV],\n    index: number,\n    array: Array<[string, InputV]>,\n  ) => [number | string, OutputV],\n): { [k: string]: OutputV } => Object.fromEntries(Object.entries(object).map(fn));\n\n// remove after dropping webpack4 support\nconst isWebpack4Buffer = (() => {\n  try {\n    Buffer.concat([Uint8Array.from([])]);\n    return false;\n  } catch (error) {\n    return true;\n  }\n})();\n\nexport const concatBuffers = isWebpack4Buffer\n  ? (list: readonly Uint8Array[], totalLength?: number): Buffer =>\n      Buffer.concat(\n        list.map((el) => Buffer.from(el)),\n        totalLength,\n      )\n  : Buffer.concat;\n\n/**\n * Object key type guard\n * @param key - Maybe object key\n * @param object - Object\n */\nexport function isKeyOfObject<T extends object>(\n  key: string | number | symbol,\n  object: T,\n): key is keyof T {\n  return key in object;\n}\n\n/**\n * Array item type guard\n * @param item - Maybe array item\n * @param array - Array\n */\nexport function isItemOfArray<T>(item: any, array: readonly T[]): item is T {\n  return array.includes(item);\n}\n\nexport function isAccountNotFoundError(error: Error): boolean {\n  return (\n    error instanceof RestError &&\n    error.statusCode === 404 &&\n    error.message.includes('Account not found')\n  );\n}\n\n// based on https://stackoverflow.com/a/50375286\nexport type UnionToIntersection<Union> = (Union extends any ? (k: Union) => void : never) extends (\n  k: infer Intersection,\n) => void\n  ? Intersection\n  : never;\n\n// based on https://stackoverflow.com/a/61108377\nexport type Optional<T, K extends keyof T> = Pick<Partial<T>, K> & Omit<T, K>;\n\nexport function ensureError(error: unknown): asserts error is Error {\n  if (error instanceof Error) return;\n  throw error;\n}\n","import { ArgumentError } from './errors.js';\n\nexport function wrapWithProxy<Value extends object | undefined>(\n  valueCb: () => Value,\n): NonNullable<Value> {\n  return new Proxy(\n    {},\n    Object.fromEntries(\n      (\n        [\n          'apply',\n          'construct',\n          'defineProperty',\n          'deleteProperty',\n          'getOwnPropertyDescriptor',\n          'getPrototypeOf',\n          'isExtensible',\n          'ownKeys',\n          'preventExtensions',\n          'set',\n          'setPrototypeOf',\n          'get',\n          'has',\n        ] as const\n      ).map((name) => [\n        name,\n        (t: {}, ...args: unknown[]) => {\n          const target = valueCb();\n          if (target == null) throw new ArgumentError('wrapped value', 'defined', target);\n          if (name === 'get' && args[0] === '_wrappedValue') return target;\n          const res = (Reflect[name] as any)(target, ...args);\n          return typeof res === 'function' && name === 'get' ? res.bind(target) : res;\n        },\n      ]),\n    ),\n  ) as NonNullable<Value>;\n}\n\nexport function unwrapProxy<Value extends object>(value: Value): Value {\n  return (value as { _wrappedValue?: Value })._wrappedValue ?? value;\n}\n","/**\n * @category utils\n * @see {@link https://github.com/aeternity/protocol/blob/master/node/api/api_encoding.md}\n * @see {@link https://github.com/aeternity/aeserialization/blob/eb68fe331bd476910394966b7f5ede7a74d37e35/src/aeser_api_encoder.erl#L205-L230}\n */\nexport enum Encoding {\n  KeyBlockHash = 'kh',\n  MicroBlockHash = 'mh',\n  BlockPofHash = 'bf',\n  BlockTxHash = 'bx',\n  BlockStateHash = 'bs',\n  Channel = 'ch',\n  ContractAddress = 'ct',\n  ContractBytearray = 'cb',\n  ContractStoreKey = 'ck',\n  ContractStoreValue = 'cv',\n  Transaction = 'tx',\n  TxHash = 'th',\n  OracleAddress = 'ok',\n  OracleQuery = 'ov',\n  OracleQueryId = 'oq',\n  OracleResponse = 'or',\n  AccountAddress = 'ak',\n  AccountSecretKey = 'sk',\n  Signature = 'sg',\n  Commitment = 'cm',\n  PeerPubkey = 'pp',\n  Name = 'nm',\n  State = 'st',\n  Poi = 'pi',\n  StateTrees = 'ss',\n  CallStateTree = 'cs',\n  Bytearray = 'ba',\n}\n\nexport type KeyBlockHash = `${Encoding.KeyBlockHash}_${string}`;\nexport type MicroBlockHash = `${Encoding.MicroBlockHash}_${string}`;\nexport type BlockPofHash = `${Encoding.BlockPofHash}_${string}`;\nexport type BlockTxHash = `${Encoding.BlockTxHash}_${string}`;\nexport type BlockStateHash = `${Encoding.BlockStateHash}_${string}`;\nexport type Channel = `${Encoding.Channel}_${string}`;\nexport type ContractAddress = `${Encoding.ContractAddress}_${string}`;\nexport type ContractBytearray = `${Encoding.ContractBytearray}_${string}`;\nexport type ContractStoreKey = `${Encoding.ContractStoreKey}_${string}`;\nexport type ContractStoreValue = `${Encoding.ContractStoreValue}_${string}`;\nexport type Transaction = `${Encoding.Transaction}_${string}`;\nexport type TxHash = `${Encoding.TxHash}_${string}`;\nexport type OracleAddress = `${Encoding.OracleAddress}_${string}`;\nexport type OracleQuery = `${Encoding.OracleQuery}_${string}`;\nexport type OracleQueryId = `${Encoding.OracleQueryId}_${string}`;\nexport type OracleResponse = `${Encoding.OracleResponse}_${string}`;\nexport type AccountAddress = `${Encoding.AccountAddress}_${string}`;\nexport type AccountSecretKey = `${Encoding.AccountSecretKey}_${string}`;\nexport type Signature = `${Encoding.Signature}_${string}`;\nexport type Commitment = `${Encoding.Commitment}_${string}`;\nexport type PeerPubkey = `${Encoding.PeerPubkey}_${string}`;\nexport type Name = `${Encoding.Name}_${string}`;\nexport type State = `${Encoding.State}_${string}`;\nexport type Poi = `${Encoding.Poi}_${string}`;\nexport type StateTrees = `${Encoding.StateTrees}_${string}`;\nexport type CallStateTree = `${Encoding.CallStateTree}_${string}`;\nexport type Bytearray = `${Encoding.Bytearray}_${string}`;\n\nexport type Generic<Type extends Encoding> = `${Type}_${string}`;\nexport type Any = `${Encoding}_${string}`;\n","// base-x encoding / decoding\n// Copyright (c) 2018 base-x contributors\n// Copyright (c) 2014-2018 The Bitcoin Core developers (base58.cpp)\n// Distributed under the MIT software license, see the accompanying\n// file LICENSE or http://www.opensource.org/licenses/mit-license.php.\nfunction base (ALPHABET) {\n  if (ALPHABET.length >= 255) { throw new TypeError('Alphabet too long') }\n  const BASE_MAP = new Uint8Array(256)\n  for (let j = 0; j < BASE_MAP.length; j++) {\n    BASE_MAP[j] = 255\n  }\n  for (let i = 0; i < ALPHABET.length; i++) {\n    const x = ALPHABET.charAt(i)\n    const xc = x.charCodeAt(0)\n    if (BASE_MAP[xc] !== 255) { throw new TypeError(x + ' is ambiguous') }\n    BASE_MAP[xc] = i\n  }\n  const BASE = ALPHABET.length\n  const LEADER = ALPHABET.charAt(0)\n  const FACTOR = Math.log(BASE) / Math.log(256) // log(BASE) / log(256), rounded up\n  const iFACTOR = Math.log(256) / Math.log(BASE) // log(256) / log(BASE), rounded up\n  function encode (source) {\n    // eslint-disable-next-line no-empty\n    if (source instanceof Uint8Array) { } else if (ArrayBuffer.isView(source)) {\n      source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength)\n    } else if (Array.isArray(source)) {\n      source = Uint8Array.from(source)\n    }\n    if (!(source instanceof Uint8Array)) { throw new TypeError('Expected Uint8Array') }\n    if (source.length === 0) { return '' }\n    // Skip & count leading zeroes.\n    let zeroes = 0\n    let length = 0\n    let pbegin = 0\n    const pend = source.length\n    while (pbegin !== pend && source[pbegin] === 0) {\n      pbegin++\n      zeroes++\n    }\n    // Allocate enough space in big-endian base58 representation.\n    const size = ((pend - pbegin) * iFACTOR + 1) >>> 0\n    const b58 = new Uint8Array(size)\n    // Process the bytes.\n    while (pbegin !== pend) {\n      let carry = source[pbegin]\n      // Apply \"b58 = b58 * 256 + ch\".\n      let i = 0\n      for (let it1 = size - 1; (carry !== 0 || i < length) && (it1 !== -1); it1--, i++) {\n        carry += (256 * b58[it1]) >>> 0\n        b58[it1] = (carry % BASE) >>> 0\n        carry = (carry / BASE) >>> 0\n      }\n      if (carry !== 0) { throw new Error('Non-zero carry') }\n      length = i\n      pbegin++\n    }\n    // Skip leading zeroes in base58 result.\n    let it2 = size - length\n    while (it2 !== size && b58[it2] === 0) {\n      it2++\n    }\n    // Translate the result into a string.\n    let str = LEADER.repeat(zeroes)\n    for (; it2 < size; ++it2) { str += ALPHABET.charAt(b58[it2]) }\n    return str\n  }\n  function decodeUnsafe (source) {\n    if (typeof source !== 'string') { throw new TypeError('Expected String') }\n    if (source.length === 0) { return new Uint8Array() }\n    let psz = 0\n    // Skip and count leading '1's.\n    let zeroes = 0\n    let length = 0\n    while (source[psz] === LEADER) {\n      zeroes++\n      psz++\n    }\n    // Allocate enough space in big-endian base256 representation.\n    const size = (((source.length - psz) * FACTOR) + 1) >>> 0 // log(58) / log(256), rounded up.\n    const b256 = new Uint8Array(size)\n    // Process the characters.\n    while (psz < source.length) {\n      // Find code of next character\n      const charCode = source.charCodeAt(psz)\n      // Base map can not be indexed using char code\n      if (charCode > 255) { return }\n      // Decode character\n      let carry = BASE_MAP[charCode]\n      // Invalid character\n      if (carry === 255) { return }\n      let i = 0\n      for (let it3 = size - 1; (carry !== 0 || i < length) && (it3 !== -1); it3--, i++) {\n        carry += (BASE * b256[it3]) >>> 0\n        b256[it3] = (carry % 256) >>> 0\n        carry = (carry / 256) >>> 0\n      }\n      if (carry !== 0) { throw new Error('Non-zero carry') }\n      length = i\n      psz++\n    }\n    // Skip leading zeroes in b256.\n    let it4 = size - length\n    while (it4 !== size && b256[it4] === 0) {\n      it4++\n    }\n    const vch = new Uint8Array(zeroes + (size - it4))\n    let j = zeroes\n    while (it4 !== size) {\n      vch[j++] = b256[it4++]\n    }\n    return vch\n  }\n  function decode (string) {\n    const buffer = decodeUnsafe(string)\n    if (buffer) { return buffer }\n    throw new Error('Non-base' + BASE + ' character')\n  }\n  return {\n    encode,\n    decodeUnsafe,\n    decode\n  }\n}\nexport default base\n","import basex from 'base-x';\nvar ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';\nexport default basex(ALPHABET);\n","import bs58 from 'bs58';\n// js extension is required for mjs build, not importing the whole package to reduce bundle size\n// eslint-disable-next-line import/extensions\nimport Sha256 from 'sha.js/sha256.js';\nimport { DecodeError, ArgumentError, InvalidChecksumError, PayloadLengthError } from './errors.js';\nimport { concatBuffers, isKeyOfObject } from './other.js';\nimport * as Encoded from './encoder-types.js';\nimport { Encoding } from './encoder-types.js';\n\nexport { Encoded, Encoding };\n\n/**\n * Calculate SHA256 hash of `input`\n * @param input - Data to hash\n * @returns Hash\n */\nexport function sha256hash(input: Uint8Array | string): Buffer {\n  return new Sha256().update(input).digest();\n}\n\n/**\n * @see {@link https://github.com/aeternity/aeserialization/blob/eb68fe331bd476910394966b7f5ede7a74d37e35/src/aeser_api_encoder.erl#L177-L202}\n */\nconst base64Types = [\n  Encoding.ContractBytearray,\n  Encoding.ContractStoreKey,\n  Encoding.ContractStoreValue,\n  Encoding.Transaction,\n  Encoding.OracleQuery,\n  Encoding.OracleResponse,\n  Encoding.State,\n  Encoding.Poi,\n  Encoding.StateTrees,\n  Encoding.CallStateTree,\n  Encoding.Bytearray,\n] as const;\nconst base58Types = [\n  Encoding.KeyBlockHash,\n  Encoding.MicroBlockHash,\n  Encoding.BlockPofHash,\n  Encoding.BlockTxHash,\n  Encoding.BlockStateHash,\n  Encoding.Channel,\n  Encoding.ContractAddress,\n  Encoding.TxHash,\n  Encoding.OracleAddress,\n  Encoding.OracleQueryId,\n  Encoding.AccountAddress,\n  Encoding.AccountSecretKey,\n  Encoding.Signature,\n  Encoding.Commitment,\n  Encoding.PeerPubkey,\n  Encoding.Name,\n] as const;\n\n/**\n * @see {@link https://github.com/aeternity/aeserialization/blob/eb68fe331bd476910394966b7f5ede7a74d37e35/src/aeser_api_encoder.erl#L261-L286}\n */\nconst byteSizeForType = {\n  [Encoding.KeyBlockHash]: 32,\n  [Encoding.MicroBlockHash]: 32,\n  [Encoding.BlockPofHash]: 32,\n  [Encoding.BlockTxHash]: 32,\n  [Encoding.BlockStateHash]: 32,\n  [Encoding.Channel]: 32,\n  [Encoding.ContractAddress]: 32,\n  [Encoding.TxHash]: 32,\n  [Encoding.OracleAddress]: 32,\n  [Encoding.OracleQueryId]: 32,\n  [Encoding.AccountAddress]: 32,\n  [Encoding.AccountSecretKey]: 32,\n  [Encoding.Signature]: 64,\n  [Encoding.Commitment]: 32,\n  [Encoding.PeerPubkey]: 32,\n  [Encoding.State]: 32,\n} as const;\n\nfunction ensureValidLength(data: Uint8Array, type: Encoding): void {\n  if (!isKeyOfObject(type, byteSizeForType)) return;\n  const reqLen = byteSizeForType[type];\n  if (reqLen == null || data.length === reqLen) return;\n  throw new PayloadLengthError(`Payload should be ${reqLen} bytes, got ${data.length} instead`);\n}\n\nconst getChecksum = (payload: Uint8Array): Buffer => sha256hash(sha256hash(payload)).slice(0, 4);\n\nconst addChecksum = (payload: Uint8Array): Buffer => concatBuffers([payload, getChecksum(payload)]);\n\nfunction getPayload(buffer: Buffer): Buffer {\n  const payload = buffer.slice(0, -4);\n  if (!getChecksum(payload).equals(buffer.slice(-4))) throw new InvalidChecksumError();\n  return payload;\n}\n\nconst base64 = {\n  encode: (buffer: Uint8Array) => addChecksum(buffer).toString('base64'),\n  decode: (string: string) => getPayload(Buffer.from(string, 'base64')),\n};\n\nconst base58 = {\n  encode: (buffer: Uint8Array) => bs58.encode(addChecksum(buffer)),\n  decode: (string: string) => getPayload(Buffer.from(bs58.decode(string))),\n};\n\nconst parseType = (maybeType: unknown): [Encoding, typeof base64] => {\n  const base64Type = base64Types.find((t) => t === maybeType);\n  if (base64Type != null) return [base64Type, base64];\n  const base58Type = base58Types.find((t) => t === maybeType);\n  if (base58Type != null) return [base58Type, base58];\n  throw new ArgumentError(\n    'prefix',\n    `one of ${[...base58Types, ...base64Types].join(', ')}`,\n    maybeType,\n  );\n};\n\n/**\n * Decode data using the default encoding/decoding algorithm\n * @param data - An Base58/64check encoded and prefixed string\n * (ex tx_..., sg_..., ak_....)\n * @returns Decoded data\n * @category utils\n */\nexport function decode(data: Encoded.Any): Buffer {\n  const [prefix, encodedPayload, extra] = data.split('_');\n  if (encodedPayload == null) throw new DecodeError(`Encoded string missing payload: ${data}`);\n  if (extra != null) throw new DecodeError(`Encoded string have extra parts: ${data}`);\n  const [type, encoder] = parseType(prefix);\n  const payload = encoder.decode(encodedPayload);\n  ensureValidLength(payload, type);\n  return payload;\n}\n\n/**\n * Encode data using the default encoding/decoding algorithm\n * @param data - An decoded data\n * @param type - Prefix of Transaction\n * @returns Encoded string Base58check or Base64check data\n * @category utils\n */\nexport function encode<Type extends Encoding>(data: Uint8Array, type: Type): Encoded.Generic<Type> {\n  const [, encoder] = parseType(type);\n  ensureValidLength(data, type);\n  return `${type}_${encoder.encode(data)}`;\n}\n","import nacl from 'tweetnacl';\n// js extension is required for mjs build, not importing the whole package to reduce bundle size\n// eslint-disable-next-line import/extensions\nimport { blake2b } from 'blakejs/blake2b.js';\n\nimport { concatBuffers, isItemOfArray } from './other.js';\nimport { decode, Encoded, Encoding } from './encoder.js';\nimport { ArgumentError } from './errors.js';\n\n/**\n * Check if address is valid\n * @param maybeAddress - Address to check\n * @category utils\n * @deprecated Use {@link isEncoded} instead\n */\nexport function isAddressValid(maybeAddress: string): maybeAddress is Encoded.AccountAddress;\n/**\n * Check if data is encoded in one of provided encodings\n * @param maybeEncoded - Data to check\n * @param encodings - Rest parameters with encodings to check against\n * @deprecated Use {@link isEncoded} instead\n */\nexport function isAddressValid<E extends Encoding>(\n  maybeEncoded: string,\n  ...encodings: E[]\n): maybeEncoded is Encoded.Generic<E>;\nexport function isAddressValid(maybeEncoded: string, ...encodings: Encoding[]): boolean {\n  if (encodings.length === 0) encodings = [Encoding.AccountAddress];\n  try {\n    decode(maybeEncoded as Encoded.Any);\n    const encoding = maybeEncoded.split('_')[0];\n    if (!isItemOfArray(encoding, encodings)) {\n      throw new ArgumentError(\n        'Encoded string type',\n        encodings.length > 1 ? `one of ${encodings.join(', ')}` : encodings[0],\n        encoding,\n      );\n    }\n    return true;\n  } catch (error) {\n    return false;\n  }\n}\n\n/**\n * Check if data is encoded in any encoding\n * @param maybeEncoded - Data to check\n * @category utils\n */\nexport function ensureEncoded(maybeEncoded: string): asserts maybeEncoded is Encoded.Any;\n/**\n * Check if data is encoded in one of provided encodings\n * @param maybeEncoded - Data to check\n * @param encodings - Rest parameters with encodings to check against\n */\nexport function ensureEncoded<E extends Encoding>(\n  maybeEncoded: string,\n  ...encodings: E[]\n): asserts maybeEncoded is Encoded.Generic<E>;\nexport function ensureEncoded(maybeEncoded: string, ...encodings: Encoding[]): void {\n  decode(maybeEncoded as Encoded.Any);\n  if (encodings.length === 0) return;\n  const encoding = maybeEncoded.split('_')[0];\n  if (isItemOfArray(encoding, encodings)) return;\n  throw new ArgumentError(\n    'Encoded string type',\n    encodings.length > 1 ? `one of ${encodings.join(', ')}` : encodings[0],\n    encoding,\n  );\n}\n\n/**\n * Check if data is encoded in any encoding\n * @param maybeEncoded - Data to check\n * @category utils\n */\nexport function isEncoded(maybeEncoded: string): maybeEncoded is Encoded.Any;\n/**\n * Check if data is encoded in one of provided encodings\n * @param maybeEncoded - Data to check\n * @param encodings - Rest parameters with encodings to check against\n */\nexport function isEncoded<E extends Encoding>(\n  maybeEncoded: string,\n  ...encodings: E[]\n): maybeEncoded is Encoded.Generic<E>;\nexport function isEncoded(maybeEncoded: string, ...encodings: Encoding[]): boolean {\n  try {\n    ensureEncoded(maybeEncoded, ...encodings);\n    return true;\n  } catch (error) {\n    return false;\n  }\n}\n\n/**\n * Generate a random salt (positive integer)\n * @returns random salt\n * @category utils\n */\nexport function genSalt(): number {\n  const [random] = new BigUint64Array(nacl.randomBytes(8).buffer);\n  return Number(random % BigInt(Number.MAX_SAFE_INTEGER));\n}\n\n/**\n * Converts a positive integer to the smallest possible\n * representation in a binary digit representation\n * @param value - Value to encode\n * @returns Encoded number\n * @category utils\n * @deprecated This function is out of the sdk scope. Copy implementation from sdk if necessary.\n */\nexport function encodeUnsigned(value: number): Buffer {\n  const binary = Buffer.allocUnsafe(4);\n  binary.writeUInt32BE(value);\n  return binary.subarray(binary.findIndex((i) => i !== 0));\n}\n\n/**\n * Calculate 256bits Blake2b hash of `input`\n * @param input - Data to hash\n * @returns Hash\n * @category utils\n * @deprecated use \"blakejs\" package directly\n */\nexport function hash(input: string | Uint8Array): Buffer {\n  return Buffer.from(blake2b(input, undefined, 32)); // 256 bits\n}\n\n/**\n * Verify that data was signed by account\n * @param data - Data that was signed\n * @param signature - Signature of data\n * @param address - Address of account to verify against\n * @returns is data was signed by account\n * @category utils\n */\nexport function verifySignature(\n  data: Uint8Array,\n  signature: Uint8Array,\n  address: Encoded.AccountAddress,\n): boolean {\n  return nacl.sign.detached.verify(data, signature, decode(address));\n}\n\nexport function encodeVarUInt(value: number): Buffer {\n  if (value < 0xfd) {\n    return Buffer.from([value]);\n  }\n  if (value <= 0xffff) {\n    return concatBuffers([Buffer.from([0xfd]), Buffer.from(new Uint16Array([value]).buffer)]);\n  }\n  if (value <= 0xffffffff) {\n    return concatBuffers([Buffer.from([0xfe]), Buffer.from(new Uint32Array([value]).buffer)]);\n  }\n  return concatBuffers([\n    Buffer.from([0xff]),\n    Buffer.from(new BigUint64Array([BigInt(value)]).buffer),\n  ]);\n}\n\nconst messagePrefix = Buffer.from('aeternity Signed Message:\\n', 'utf8');\nexport const messagePrefixLength = encodeVarUInt(messagePrefix.length);\n\n/**\n * Hash message\n * @param message - Message to hash\n * @returns Hash of message\n * @category utils\n */\nexport function hashMessage(message: string): Buffer {\n  const msg = Buffer.from(message, 'utf8');\n  return hash(concatBuffers([messagePrefixLength, messagePrefix, encodeVarUInt(msg.length), msg]));\n}\n\n/**\n * Verify that message was signed by address\n * @param message - Message that was signed\n * @param signature - Signature of message\n * @param address - Address to verify against\n * @returns is data was signed by address\n * @category utils\n */\nexport function verifyMessageSignature(\n  message: string,\n  signature: Uint8Array,\n  address: Encoded.AccountAddress,\n): boolean {\n  return verifySignature(hashMessage(message), signature, address);\n}\n","import BigNumber from 'bignumber.js';\nimport { NoSerializerFoundError, TypeError } from './errors.js';\n\n/**\n * Convert string, number, or BigNumber to byte array\n * @param val - value to convert\n * @param big - enables force conversion to BigNumber\n * @returns Buffer\n * @category utils\n * @deprecated use `Buffer.from(<string>)` or `Buffer.from(<number>.toString(16), 'hex')` instead\n */\n// eslint-disable-next-line import/prefer-default-export\nexport function toBytes(val?: null | string | number | BigNumber, big = false): Buffer {\n  // Encode a value to bytes.\n  // If the value is an int it will be encoded as bytes big endian\n  // Raises ValueError if the input is not an int or string\n\n  if (val == null) return Buffer.from([]);\n  if (Number.isInteger(val) || BigNumber.isBigNumber(val) || big) {\n    if (!BigNumber.isBigNumber(val)) val = new BigNumber(val);\n    if (!val.isInteger()) throw new TypeError(`Unexpected not integer value: ${val.toFixed()}`);\n    let hexString = val.toString(16);\n    if (hexString.length % 2 === 1) hexString = `0${hexString}`;\n    return Buffer.from(hexString, 'hex');\n  }\n  if (typeof val === 'string') {\n    return Buffer.from(val);\n  }\n  throw new NoSerializerFoundError();\n}\n","import BigNumber from 'bignumber.js';\nimport { mapObject } from '../../utils/other.js';\n\n/**\n * @category transaction builder\n */\nexport const DRY_RUN_ACCOUNT = {\n  pub: 'ak_11111111111111111111111111111111273Yts',\n  amount: 100000000000000000000000000000000000n,\n} as const;\n\n/**\n * @category account generalized\n * @deprecated transaction builder will ensure that gas doesn't exceed the maximum value by itself\n */\nexport const MAX_AUTH_FUN_GAS = 50000;\n/**\n * @category utils\n */\nexport type Int = number | string | BigNumber;\n/**\n * @category AENS\n */\nexport type AensName = `${string}.chain`;\n/**\n * @category transaction builder\n */\nexport const MIN_GAS_PRICE = 1e9; // TODO: don't use number for ae\n/**\n * @category AENS\n * @see {@link https://github.com/aeternity/aeternity/blob/72e440b8731422e335f879a31ecbbee7ac23a1cf/apps/aecore/src/aec_governance.erl#L67}\n * @deprecated use {@link getMinimumNameFee} instead\n */\nexport const NAME_FEE_MULTIPLIER = 1e14;\n/**\n * The next bid should be at least 5% bigger than the previous one\n * @category AENS\n * @deprecated use {@link computeBidFee} instead\n */\nexport const NAME_FEE_BID_INCREMENT = 0.05;\n/**\n * Approximately 1 day\n * @category AENS\n * @see {@link https://github.com/aeternity/aeternity/blob/72e440b8731422e335f879a31ecbbee7ac23a1cf/apps/aecore/src/aec_governance.erl#L272}\n * @deprecated use {@link computeAuctionEndBlock} instead\n */\nexport const NAME_BID_TIMEOUT_BLOCKS = 480;\n/**\n * This is the max length for a domain that requires a base fee to be paid\n * @category AENS\n * @deprecated use {@link getMinimumNameFee} instead\n */\nexport const NAME_MAX_LENGTH_FEE = 31;\n/**\n * @category AENS\n * @see {@link https://github.com/aeternity/aeternity/blob/72e440b8731422e335f879a31ecbbee7ac23a1cf/apps/aecore/src/aec_governance.erl#L290}\n * @see {@link https://github.com/aeternity/protocol/blob/master/AENS.md#protocol-fees-and-protection-times}\n * @deprecated use {@link getMinimumNameFee} instead\n */\nexport const NAME_BID_RANGES = mapObject(\n  {\n    31: 3,\n    30: 5,\n    29: 8,\n    28: 13,\n    27: 21,\n    26: 34,\n    25: 55,\n    24: 89,\n    23: 144,\n    22: 233,\n    21: 377,\n    20: 610,\n    19: 987,\n    18: 1597,\n    17: 2584,\n    16: 4181,\n    15: 6765,\n    14: 10946,\n    13: 17711,\n    12: 28657,\n    11: 46368,\n    10: 75025,\n    9: 121393,\n    8: 196418,\n    7: 317811,\n    6: 514229,\n    5: 832040,\n    4: 1346269,\n    3: 2178309,\n    2: 3524578,\n    1: 5702887,\n  },\n  ([key, value]) => [key, new BigNumber(value).times(NAME_FEE_MULTIPLIER)],\n);\n\n/**\n * @category chain\n */\nexport enum ConsensusProtocolVersion {\n  Ceres = 6,\n}\n\n/**\n * @category contract\n * @see {@link https://github.com/aeternity/protocol/blob/0f6dee3d9d1e8e2469816798f5c7587a6c918f94/contracts/contract_vms.md#virtual-machines-on-the-%C3%A6ternity-blockchain}\n */\nexport enum VmVersion {\n  NoVm = 0,\n  Sophia = 1,\n  SophiaImprovementsMinerva = 3,\n  SophiaImprovementsFortuna = 4,\n  Fate = 5,\n  SophiaImprovementsLima = 6,\n  Fate2 = 7,\n  Fate3 = 8,\n}\n\n/**\n * @category contract\n * @see {@link https://github.com/aeternity/protocol/blob/0f6dee3d9d1e8e2469816798f5c7587a6c918f94/contracts/contract_vms.md#virtual-machines-on-the-%C3%A6ternity-blockchain}\n */\nexport enum AbiVersion {\n  NoAbi = 0,\n  Sophia = 1,\n  Fate = 3,\n}\n\n/**\n * Enum with tag types\n * @category transaction builder\n * @see {@link https://github.com/aeternity/protocol/blob/0f6dee3d9d1e8e2469816798f5c7587a6c918f94/serializations.md#binary-serialization}\n * @see {@link https://github.com/aeternity/aeserialization/blob/eb68fe331bd476910394966b7f5ede7a74d37e35/src/aeser_chain_objects.erl#L39-L97}\n */\n// TODO: implement serialisation for commented-out tags\nexport enum Tag {\n  SignedTx = 11,\n  SpendTx = 12,\n  OracleRegisterTx = 22,\n  OracleQueryTx = 23,\n  /**\n   * @deprecated use `OracleRespondTx` instead\n   */\n  OracleResponseTx = 24,\n  // eslint-disable-next-line @typescript-eslint/no-duplicate-enum-values\n  OracleRespondTx = 24,\n  OracleExtendTx = 25,\n  NameClaimTx = 32,\n  NamePreclaimTx = 33,\n  NameUpdateTx = 34,\n  NameRevokeTx = 35,\n  NameTransferTx = 36,\n  ContractCreateTx = 42,\n  ContractCallTx = 43,\n  ChannelCreateTx = 50,\n  ChannelDepositTx = 51,\n  ChannelWithdrawTx = 52,\n  ChannelForceProgressTx = 521,\n  ChannelCloseMutualTx = 53,\n  ChannelCloseSoloTx = 54,\n  ChannelSlashTx = 55,\n  ChannelSettleTx = 56,\n  ChannelOffChainTx = 57,\n  ChannelSnapshotSoloTx = 59,\n  GaAttachTx = 80,\n  GaMetaTx = 81,\n  PayingForTx = 82,\n}\n","import BigNumber from 'bignumber.js';\nimport { genSalt, hash } from '../../utils/crypto.js';\nimport { decode, encode, Encoded, Encoding } from '../../utils/encoder.js';\nimport { toBytes } from '../../utils/bytes.js';\nimport { concatBuffers } from '../../utils/other.js';\nimport {\n  AensName,\n  NAME_BID_RANGES,\n  NAME_FEE_BID_INCREMENT,\n  NAME_MAX_LENGTH_FEE,\n} from './constants.js';\nimport { ceil } from '../../utils/bignumber.js';\nimport { ArgumentError, IllegalBidFeeError } from '../../utils/errors.js';\n\n/**\n * JavaScript-based Transaction builder helper function's\n */\n\n/**\n * Build a contract address\n * @category contract\n * @param owner - Address of contract owner\n * @param nonce - Nonce of ContractCreateTx or state channel round when contract was created\n * @returns Contract address\n */\nexport function buildContractId(\n  owner: Encoded.AccountAddress,\n  nonce: number | BigNumber,\n): Encoded.ContractAddress {\n  const ownerIdAndNonce = Buffer.from([...decode(owner), ...toBytes(nonce)]);\n  const b2bHash = hash(ownerIdAndNonce);\n  return encode(b2bHash, Encoding.ContractAddress);\n}\n\n// TODO: add `build` prefix the same as others\n/**\n * Build a oracle query id\n * @category oracle\n * @param senderId - The public key of the sender account\n * @param nonce - the nonce of the transaction\n * @param oracleId - The oracle public key\n * @returns Contract public key\n */\nexport function oracleQueryId(\n  senderId: Encoded.AccountAddress,\n  nonce: number | BigNumber | string,\n  oracleId: Encoded.OracleAddress,\n): Encoded.OracleQueryId {\n  function _int32(val: number | string | BigNumber): Buffer {\n    const nonceBE = toBytes(val, true);\n    return concatBuffers([Buffer.alloc(32 - nonceBE.length), nonceBE]);\n  }\n\n  const b2bHash = hash(Buffer.from([...decode(senderId), ..._int32(nonce), ...decode(oracleId)]));\n  return encode(b2bHash, Encoding.OracleQueryId);\n}\n\nconst AENS_SUFFIX = '.chain';\n\nexport function nameToPunycode(maybeName: string): AensName {\n  const [name, suffix, ...other] = maybeName.split('.');\n  if (other.length !== 0) throw new ArgumentError('aens name', 'including only one dot', maybeName);\n  if (suffix !== AENS_SUFFIX.slice(1)) {\n    throw new ArgumentError('aens name', `suffixed with ${AENS_SUFFIX}`, maybeName);\n  }\n  if (/\\p{Emoji_Presentation}/u.test(name)) {\n    throw new ArgumentError('aens name', 'not containing emoji', maybeName);\n  }\n  if (name[2] === '-' && name[3] === '-') {\n    throw new ArgumentError(\n      'aens name',\n      'without \"-\" char in both the third and fourth positions',\n      maybeName,\n    );\n  }\n  if (name[0] === '-') {\n    throw new ArgumentError('aens name', 'starting with no \"-\" char', maybeName);\n  }\n  if (name.at(-1) === '-') {\n    throw new ArgumentError('aens name', 'ending with no \"-\" char', maybeName);\n  }\n  let punycode;\n  try {\n    const u = new URL(`http://${name}.${suffix}`);\n    if (u.username + u.password + u.port + u.search + u.hash !== '' || u.pathname !== '/') {\n      throw new ArgumentError('aens name', 'valid', maybeName);\n    }\n    punycode = u.host;\n  } catch (error) {\n    if (error instanceof TypeError && error.message.includes('Invalid URL')) {\n      throw new ArgumentError('aens name', 'valid', maybeName);\n    }\n    throw error;\n  }\n  if (!/^[a-z0-9.-]+$/i.test(punycode)) {\n    throw new ArgumentError('aens name', 'without illegal chars', maybeName);\n  }\n  if (punycode.length > 63 + AENS_SUFFIX.length) {\n    throw new ArgumentError('aens name', 'not too long', maybeName);\n  }\n  return punycode as AensName;\n}\n\n// TODO: replace `produce` with `build` the same as others\n/**\n * Encode an AENS name\n * @category AENS\n * @param name - Name to encode\n * @returns `nm_` prefixed encoded AENS name\n */\nexport function produceNameId(name: AensName): Encoded.Name {\n  return encode(hash(nameToPunycode(name)), Encoding.Name);\n}\n\n// TODO: add `build` the same as others\n/**\n * Generate the commitment hash by hashing the salt and\n * name, base 58 encoding the result and prepending 'cm_'\n * @category transaction builder\n * @param name - Name to be registered\n * @param salt - Random number\n * @returns Commitment hash\n */\nexport function commitmentHash(name: AensName, salt: number = genSalt()): Encoded.Commitment {\n  return encode(\n    hash(\n      concatBuffers([\n        Buffer.from(nameToPunycode(name)),\n        Buffer.from(salt.toString(16).padStart(64, '0'), 'hex'),\n      ]),\n    ),\n    Encoding.Commitment,\n  );\n}\n\n/**\n * Utility function to convert bytes to int\n * @category utils\n * @param buffer - Value\n * @returns Buffer Buffer from number(BigEndian)\n * @deprecated use `BigInt('0x' + <buffer>.toString('hex')).toString()` instead\n */\nexport function readInt(buffer: Uint8Array = Buffer.from([])): string {\n  return BigInt('0x' + Buffer.from(buffer).toString('hex')).toString();\n}\n\n/**\n * Ensure that name is valid AENS name, would throw an exception otherwise\n * @category AENS\n * @param maybeName - AENS name\n */\nexport function ensureName(maybeName: string): asserts maybeName is AensName {\n  nameToPunycode(maybeName);\n}\n\n/**\n * Is AENS name valid\n * @category AENS\n * @param maybeName - AENS name\n */\nexport function isName(maybeName: string): maybeName is AensName {\n  try {\n    ensureName(maybeName);\n    return true;\n  } catch (error) {\n    return false;\n  }\n}\n\nconst encodingToPointerKey = [\n  [Encoding.AccountAddress, 'account_pubkey'],\n  [Encoding.OracleAddress, 'oracle_pubkey'],\n  [Encoding.ContractAddress, 'contract_pubkey'],\n  [Encoding.Channel, 'channel'],\n] as const;\n\n/**\n * @category AENS\n * @param identifier - account/oracle/contract address, or channel\n * @returns default AENS pointer key\n */\nexport function getDefaultPointerKey(\n  identifier: Encoded.Generic<(typeof encodingToPointerKey)[number][0]>,\n): (typeof encodingToPointerKey)[number][1] {\n  decode(identifier);\n  const encoding = identifier.substring(0, 2);\n  const result = encodingToPointerKey.find(([e]) => e === encoding)?.[1];\n  if (result != null) return result;\n  throw new ArgumentError(\n    'identifier',\n    `prefixed with one of ${encodingToPointerKey.map(([e]) => `${e}_`).join(', ')}`,\n    identifier,\n  );\n}\n\n/**\n * Get the minimum AENS name fee\n * @category AENS\n * @param name - the AENS name to get the fee for\n * @returns the minimum fee for the AENS name auction\n */\nexport function getMinimumNameFee(name: AensName): BigNumber {\n  const nameLength = nameToPunycode(name).length - AENS_SUFFIX.length;\n  return NAME_BID_RANGES[Math.min(nameLength, NAME_MAX_LENGTH_FEE)];\n}\n\n/**\n * Compute bid fee for AENS auction\n * @category AENS\n * @param name - the AENS name to get the fee for\n * @param options - Options\n * @param options.startFee - Auction start fee\n * @param options.increment - Bid multiplier(In percentage, must be between 0 and 1)\n * @returns Bid fee\n */\nexport function computeBidFee(\n  name: AensName,\n  {\n    startFee,\n    increment = NAME_FEE_BID_INCREMENT,\n  }: { startFee?: number | string | BigNumber; increment?: number } = {},\n): BigNumber {\n  if (!(Number(increment) === increment && increment % 1 !== 0))\n    throw new IllegalBidFeeError(`Increment must be float. Current increment ${increment}`);\n  if (increment < NAME_FEE_BID_INCREMENT)\n    throw new IllegalBidFeeError(`minimum increment percentage is ${NAME_FEE_BID_INCREMENT}`);\n  // FIXME: increment should be used somehow here\n  return ceil(\n    new BigNumber(startFee ?? getMinimumNameFee(name)).times(\n      new BigNumber(NAME_FEE_BID_INCREMENT).plus(1),\n    ),\n  );\n}\n\n/**\n * Compute approximate auction end height.\n *\n * From Ceres, each time a new (successful!) bid is made for a name the auction is extended for up\n * to 120 key-blocks/generations. I.e. after the bid there is always at least 120 generations to\n * make a higher bid.\n *\n * @category AENS\n * @param name - Name to compute auction end for\n * @param claimHeight - Auction starting height\n * @see {@link https://github.com/aeternity/protocol/blob/cfb19ce/AENS.md#from-ceres-protocol-upgrade}\n * @returns Auction end height\n */\nexport function computeAuctionEndBlock(name: AensName, claimHeight: number): number {\n  const length = nameToPunycode(name).length - AENS_SUFFIX.length;\n  const h =\n    (length <= 4 ? 2400 : null) ?? (length <= 8 ? 960 : null) ?? (length <= 12 ? 480 : null) ?? 0;\n  return h + claimHeight;\n}\n\n/**\n * Is name accept going to auction\n * @category AENS\n */\nexport function isAuctionName(name: AensName): boolean {\n  return nameToPunycode(name).length < 13 + AENS_SUFFIX.length;\n}\n","import { AE_AMOUNT_FORMATS, formatAmount } from './utils/amount-formatter.js';\nimport { isAccountNotFoundError, pause } from './utils/other.js';\nimport { unwrapProxy } from './utils/wrap-proxy.js';\nimport { isName, produceNameId } from './tx/builder/helpers.js';\nimport { AensName, DRY_RUN_ACCOUNT } from './tx/builder/constants.js';\nimport {\n  AensPointerContextError,\n  DryRunError,\n  InvalidAensNameError,\n  TxTimedOutError,\n  TxNotInChainError,\n  InternalError,\n} from './utils/errors.js';\nimport Node from './Node.js';\nimport { DryRunResult, DryRunResults, SignedTx } from './apis/node/index.js';\nimport { decode, encode, Encoded, Encoding } from './utils/encoder.js';\n\nasync function getEventInterval(\n  type: 'key-block' | 'micro-block',\n  {\n    _expectedMineRate,\n    _microBlockCycle,\n    onNode,\n  }: { _expectedMineRate?: number; _microBlockCycle?: number; onNode: Node },\n): Promise<number> {\n  if (_expectedMineRate != null && type === 'key-block') return _expectedMineRate;\n  if (_microBlockCycle != null && type === 'micro-block') return _microBlockCycle;\n\n  const networkId = await onNode.getNetworkId();\n  if (networkId === 'ae_dev') return 0;\n  if (!['ae_mainnet', 'ae_uat'].includes(networkId) && (await onNode._isHyperchain())) return 3000;\n\n  if (type === 'key-block') return 180000;\n  else return 3000;\n}\n\n/**\n * @category chain\n * @param type - Type\n * @param options - Options\n */\nexport async function _getPollInterval(\n  type: Parameters<typeof getEventInterval>[0],\n  options: Parameters<typeof getEventInterval>[1],\n): Promise<number> {\n  return Math.floor((await getEventInterval(type, options)) / 3);\n}\n\nconst heightCache: WeakMap<Node, { time: number; height: number }> = new WeakMap();\n\n/**\n * Obtain current height of the chain\n * @category chain\n * @param options - Options\n * @param options.cached - Get height from the cache. The lag behind the actual height shouldn't\n * be more than 1 block. Use if needed to reduce requests count, and approximate value can be used.\n * For example, for timeout check in transaction status polling.\n * @returns Current chain height\n */\nexport async function getHeight({\n  cached = false,\n  ...options\n}: {\n  onNode: Node;\n  cached?: boolean;\n} & Parameters<typeof _getPollInterval>[1]): Promise<number> {\n  const onNode = unwrapProxy(options.onNode);\n  if (cached) {\n    const cache = heightCache.get(onNode);\n    if (cache != null && cache.time > Date.now() - (await _getPollInterval('key-block', options))) {\n      return cache.height;\n    }\n  }\n  const { height } = await onNode.getCurrentKeyBlockHeight();\n  heightCache.set(onNode, { height, time: Date.now() });\n  return height;\n}\n\n/**\n * Return transaction details if it is mined, fail otherwise.\n * If the transaction has ttl specified then would wait till it leaves the mempool.\n * Otherwise would fail if a specified amount of blocks were mined.\n * @category chain\n * @param th - The hash of transaction to poll\n * @param options - Options\n * @param options.interval - Interval (in ms) at which to poll the chain\n * @param options.blocks - Number of blocks mined after which to fail if transaction ttl is not set\n * @param options.onNode - Node to use\n * @returns The transaction as it was mined\n */\nexport async function poll(\n  th: Encoded.TxHash,\n  {\n    blocks = 5,\n    interval,\n    ...options\n  }: { blocks?: number; interval?: number; onNode: Node } & Parameters<typeof _getPollInterval>[1],\n): ReturnType<Node['getTransactionByHash']> {\n  interval ??= await _getPollInterval('micro-block', options);\n  let max;\n  do {\n    const tx = await options.onNode.getTransactionByHash(th);\n    if (tx.blockHeight !== -1) return tx;\n    if (max == null) {\n      max = tx.tx.ttl !== 0 ? -1 : (await getHeight({ ...options, cached: true })) + blocks;\n    }\n    await pause(interval);\n  } while (max === -1 ? true : (await getHeight({ ...options, cached: true })) < max);\n  throw new TxTimedOutError(blocks, th);\n}\n\n/**\n * Wait for the chain to reach a specific height\n * @category chain\n * @param height - Height to wait for\n * @param options - Options\n * @param options.interval - Interval (in ms) at which to poll the chain\n * @param options.onNode - Node to use\n * @returns Current chain height\n */\nexport async function awaitHeight(\n  height: number,\n  {\n    interval,\n    ...options\n  }: { interval?: number; onNode: Node } & Parameters<typeof _getPollInterval>[1],\n): Promise<number> {\n  interval ??= Math.min(await _getPollInterval('key-block', options), 5000);\n  let currentHeight;\n  do {\n    if (currentHeight != null) await pause(interval);\n    currentHeight = await getHeight(options);\n  } while (currentHeight < height);\n  return currentHeight;\n}\n\n/**\n * Wait for transaction confirmation\n * @category chain\n * @param txHash - Transaction hash\n * @param options - Options\n * @param options.confirm - Number of micro blocks to wait for transaction confirmation\n * @param options.onNode - Node to use\n * @returns Current Height\n */\nexport async function waitForTxConfirm(\n  txHash: Encoded.TxHash,\n  {\n    confirm = 3,\n    onNode,\n    ...options\n  }: { confirm?: number; onNode: Node } & Parameters<typeof awaitHeight>[1],\n): Promise<number> {\n  const { blockHeight } = await onNode.getTransactionByHash(txHash);\n  const height = await awaitHeight(blockHeight + confirm, { onNode, ...options });\n  const { blockHeight: newBlockHeight } = await onNode.getTransactionByHash(txHash);\n  switch (newBlockHeight) {\n    case -1:\n      throw new TxNotInChainError(txHash);\n    case blockHeight:\n      return height;\n    default:\n      return waitForTxConfirm(txHash, { onNode, confirm, ...options });\n  }\n}\n\n/**\n * Get account by account public key\n * @category chain\n * @param address - Account address (public key)\n * @param options - Options\n * @param options.height - Get account on specific block by block height\n * @param options.hash - Get account on specific block by micro block hash or key block hash\n * @param options.onNode - Node to use\n */\nexport async function getAccount(\n  address: Encoded.AccountAddress | Encoded.ContractAddress,\n  {\n    height,\n    hash,\n    onNode,\n  }: { height?: number; hash?: Encoded.KeyBlockHash | Encoded.MicroBlockHash; onNode: Node },\n): ReturnType<Node['getAccountByPubkey']> {\n  if (height != null) return onNode.getAccountByPubkeyAndHeight(address, height);\n  if (hash != null) return onNode.getAccountByPubkeyAndHash(address, hash);\n  return onNode.getAccountByPubkey(address);\n}\n\n/**\n * Request the balance of specified account\n * @category chain\n * @param address - The public account address to obtain the balance for\n * @param options - Options\n * @param options.format\n * @param options.height - The chain height at which to obtain the balance for\n * (default: top of chain)\n * @param options.hash - The block hash on which to obtain the balance for (default: top of chain)\n */\nexport async function getBalance(\n  address: Encoded.AccountAddress | Encoded.ContractAddress | Encoded.OracleAddress,\n  {\n    /**\n     * @deprecated no replacement implemented yet\n     */\n    format = AE_AMOUNT_FORMATS.AETTOS,\n    ...options\n  }: { format?: AE_AMOUNT_FORMATS } & Parameters<typeof getAccount>[1],\n): Promise<string> {\n  const addr = address.startsWith('ok_')\n    ? encode(decode(address), Encoding.AccountAddress)\n    : (address as Encoded.AccountAddress | Encoded.ContractAddress);\n\n  const { balance } = await getAccount(addr, options).catch((error) => {\n    if (!isAccountNotFoundError(error)) throw error;\n    return { balance: 0n };\n  });\n\n  return formatAmount(balance, { targetDenomination: format });\n}\n\n/**\n * Obtain current generation\n * @category chain\n * @param options - Options\n * @param options.onNode - Node to use\n * @returns Current Generation\n * @deprecated Use {@link Node.getCurrentGeneration} instead\n */\nexport async function getCurrentGeneration({\n  onNode,\n}: {\n  onNode: Node;\n}): ReturnType<Node['getCurrentGeneration']> {\n  return onNode.getCurrentGeneration();\n}\n\n/**\n * Get generation by hash or height\n * @category chain\n * @param hashOrHeight - Generation hash or height\n * @param options - Options\n * @param options.onNode - Node to use\n * @returns Generation\n * @deprecated Use {@link Node.getGenerationByHash} or {@link Node.getGenerationByHeight} instead\n */\nexport async function getGeneration(\n  hashOrHeight: Encoded.KeyBlockHash | number,\n  { onNode }: { onNode: Node },\n): ReturnType<Node['getGenerationByHash']> {\n  if (typeof hashOrHeight === 'number') return onNode.getGenerationByHeight(hashOrHeight);\n  return onNode.getGenerationByHash(hashOrHeight);\n}\n\n/**\n * Get micro block transactions\n * @category chain\n * @param hash - Micro block hash\n * @param options - Options\n * @param options.onNode - Node to use\n * @returns Transactions\n * @deprecated Use {@link Node.getMicroBlockTransactionsByHash} instead\n */\nexport async function getMicroBlockTransactions(\n  hash: Encoded.MicroBlockHash,\n  { onNode }: { onNode: Node },\n): Promise<SignedTx[]> {\n  return (await onNode.getMicroBlockTransactionsByHash(hash)).transactions;\n}\n\n/**\n * Get key block\n * @category chain\n * @param hashOrHeight - Key block hash or height\n * @param options - Options\n * @param options.onNode - Node to use\n * @returns Key Block\n * @deprecated Use {@link Node.getKeyBlockByHeight} or {@link Node.getKeyBlockByHash} instead\n */\nexport async function getKeyBlock(\n  hashOrHeight: Encoded.KeyBlockHash | number,\n  { onNode }: { onNode: Node },\n): ReturnType<Node['getKeyBlockByHash']> {\n  if (typeof hashOrHeight === 'number') return onNode.getKeyBlockByHeight(hashOrHeight);\n  return onNode.getKeyBlockByHash(hashOrHeight);\n}\n\n/**\n * Get micro block header\n * @category chain\n * @param hash - Micro block hash\n * @param options - Options\n * @param options.onNode - Node to use\n * @returns Micro block header\n * @deprecated Use {@link Node.getMicroBlockHeaderByHash} instead\n */\nexport async function getMicroBlockHeader(\n  hash: Encoded.MicroBlockHash,\n  { onNode }: { onNode: Node },\n): ReturnType<Node['getMicroBlockHeaderByHash']> {\n  return onNode.getMicroBlockHeaderByHash(hash);\n}\n\ninterface TxDryRunArguments {\n  tx: Encoded.Transaction;\n  accountAddress: Encoded.AccountAddress;\n  top?: number | Encoded.KeyBlockHash | Encoded.MicroBlockHash;\n  txEvents?: any;\n  resolve: Function;\n  reject: Function;\n}\nconst txDryRunRequests: Map<string, TxDryRunArguments[] & { timeout?: NodeJS.Timeout }> = new Map();\n\nasync function txDryRunHandler(key: string, onNode: Node): Promise<void> {\n  const rs = txDryRunRequests.get(key);\n  txDryRunRequests.delete(key);\n  if (rs == null) throw new InternalError(\"Can't get dry-run request\");\n\n  let dryRunRes;\n  try {\n    const top =\n      typeof rs[0].top === 'number'\n        ? (await onNode.getKeyBlockByHeight(rs[0].top)).hash\n        : rs[0].top;\n    dryRunRes = await onNode.protectedDryRunTxs({\n      top,\n      txEvents: rs[0].txEvents,\n      txs: rs.map((req) => ({ tx: req.tx })),\n      accounts: Array.from(new Set(rs.map((req) => req.accountAddress))).map((pubKey) => ({\n        pubKey,\n        amount: DRY_RUN_ACCOUNT.amount,\n      })),\n    });\n  } catch (error) {\n    rs.forEach(({ reject }) => reject(error));\n    return;\n  }\n\n  const { results, txEvents } = dryRunRes;\n  results.forEach(({ result, reason, ...resultPayload }, idx) => {\n    const { resolve, reject, tx, accountAddress } = rs[idx];\n    if (result === 'ok') resolve({ ...resultPayload, txEvents });\n    else reject(Object.assign(new DryRunError(reason as string), { tx, accountAddress }));\n  });\n}\n\n/**\n * Transaction dry-run\n * @category chain\n * @param tx - transaction to execute\n * @param accountAddress - address that will be used to execute transaction\n * @param options - Options\n * @param options.top - hash of block on which to make dry-run\n * @param options.txEvents - collect and return on-chain tx events that would result from the call\n * @param options.combine - Enables combining of similar requests to a single dry-run call\n * @param options.onNode - Node to use\n */\nexport async function txDryRun(\n  tx: Encoded.Transaction,\n  accountAddress: Encoded.AccountAddress,\n  {\n    top,\n    txEvents,\n    combine,\n    onNode,\n  }: { top?: TxDryRunArguments['top']; txEvents?: boolean; combine?: boolean; onNode: Node },\n): Promise<{ txEvents?: DryRunResults['txEvents'] } & DryRunResult> {\n  const key = combine === true ? [top, txEvents].join() : 'immediate';\n  const requests = txDryRunRequests.get(key) ?? [];\n  txDryRunRequests.set(key, requests);\n  return new Promise((resolve, reject) => {\n    requests.push({\n      tx,\n      accountAddress,\n      top,\n      txEvents,\n      resolve,\n      reject,\n    });\n    if (combine !== true) {\n      void txDryRunHandler(key, onNode);\n      return;\n    }\n    requests.timeout ??= setTimeout(() => {\n      void txDryRunHandler(key, onNode);\n    });\n  });\n}\n\n/**\n * Get contract byte code\n * @category contract\n * @param contractId - Contract address\n * @param options - Options\n * @param options.onNode - Node to use\n * @deprecated Use {@link Node.getContractCode} instead\n */\nexport async function getContractByteCode(\n  contractId: Encoded.ContractAddress,\n  { onNode }: { onNode: Node },\n): ReturnType<Node['getContractCode']> {\n  return onNode.getContractCode(contractId);\n}\n\n/**\n * Get contract entry\n * @category contract\n * @param contractId - Contract address\n * @param options - Options\n * @param options.onNode - Node to use\n * @deprecated Use {@link Node.getContract} instead\n */\nexport async function getContract(\n  contractId: Encoded.ContractAddress,\n  { onNode }: { onNode: Node },\n): ReturnType<Node['getContract']> {\n  return onNode.getContract(contractId);\n}\n\n/**\n * Get name entry\n * @category AENS\n * @param name - AENS name\n * @param options - Options\n * @param options.onNode - Node to use\n * @deprecated Use {@link Node.getNameEntryByName} or {@link Name.getState} instead\n */\nexport async function getName(\n  name: AensName,\n  { onNode }: { onNode: Node },\n): ReturnType<Node['getNameEntryByName']> {\n  return onNode.getNameEntryByName(name);\n}\n\n/**\n * Resolve AENS name and return name hash\n * @category AENS\n * @param nameOrId - AENS name or address\n * @param key - in AENS pointers record\n * @param options - Options\n * @param options.verify - To ensure that name exist and have a corresponding pointer\n * // TODO: avoid that to don't trust to current api gateway\n * @param options.resolveByNode - Enables pointer resolving using node\n * @param options.onNode - Node to use\n * @returns Address or AENS name hash\n */\nexport async function resolveName<Type extends Encoding.AccountAddress | Encoding.ContractAddress>(\n  nameOrId: AensName | Encoded.Generic<Type>,\n  key: string,\n  {\n    verify = true,\n    resolveByNode = false,\n    onNode,\n  }: { verify?: boolean; resolveByNode?: boolean; onNode: Node },\n): Promise<Encoded.Generic<Type | Encoding.Name>> {\n  if (isName(nameOrId)) {\n    if (verify || resolveByNode) {\n      const name = await onNode.getNameEntryByName(nameOrId);\n      const pointer = name.pointers.find((p) => p.key === key);\n      if (pointer == null) throw new AensPointerContextError(nameOrId, key);\n      if (resolveByNode) return pointer.id as Encoded.Generic<Type>;\n    }\n    return produceNameId(nameOrId);\n  }\n  try {\n    decode(nameOrId);\n    return nameOrId;\n  } catch (error) {\n    throw new InvalidAensNameError(`Invalid name or address: ${nameOrId}`);\n  }\n}\n","import { ConsensusProtocolVersion, VmVersion, AbiVersion } from '../constants.js';\nimport Node from '../../../Node.js';\n\n/*\n * First abi/vm by default\n * @see {@link https://github.com/aeternity/protocol/blob/71cf111/contracts/contract_vms.md#virtual-machines-on-the-æternity-blockchain}\n */\nexport const ProtocolToVmAbi = {\n  [ConsensusProtocolVersion.Ceres]: {\n    'contract-create': {\n      vmVersion: [VmVersion.Fate3],\n      abiVersion: [AbiVersion.Fate],\n    },\n    'contract-call': {\n      vmVersion: [],\n      abiVersion: [AbiVersion.Fate],\n    },\n    'oracle-call': {\n      vmVersion: [],\n      abiVersion: [AbiVersion.NoAbi, AbiVersion.Fate],\n    },\n  },\n} as const;\n\nexport interface CtVersion {\n  vmVersion: VmVersion;\n  abiVersion: AbiVersion;\n}\n\nexport function getProtocolDetails(\n  protocolVersion: ConsensusProtocolVersion,\n  type: 'contract-create' | 'contract-call' | 'oracle-call',\n): CtVersion {\n  const protocol = ProtocolToVmAbi[protocolVersion][type];\n  return {\n    vmVersion: protocol.vmVersion[0] ?? VmVersion.Fate2,\n    abiVersion: protocol.abiVersion[0],\n  };\n}\n\nexport default {\n  serialize(\n    value: CtVersion | undefined,\n    params: {},\n    {\n      consensusProtocolVersion = ConsensusProtocolVersion.Ceres,\n    }: { consensusProtocolVersion?: ConsensusProtocolVersion },\n  ): Buffer {\n    value ??= getProtocolDetails(consensusProtocolVersion, 'contract-create');\n\n    return Buffer.from([value.vmVersion, 0, value.abiVersion]);\n  },\n\n  async prepare(\n    value: CtVersion | undefined,\n    params: {},\n    // TODO: { consensusProtocolVersion: ConsensusProtocolVersion } | { onNode: Node } | {}\n    options: { consensusProtocolVersion?: ConsensusProtocolVersion; onNode?: Node },\n  ): Promise<CtVersion | undefined> {\n    if (value != null) return value;\n    if (options.consensusProtocolVersion != null) return undefined;\n    if (Object.keys(ConsensusProtocolVersion).length === 2) return undefined;\n    if (options.onNode != null) {\n      return getProtocolDetails(\n        (await options.onNode.getNodeInfo()).consensusProtocolVersion,\n        'contract-create',\n      );\n    }\n    return undefined;\n  },\n\n  deserialize(buffer: Buffer): CtVersion {\n    const [vm, , abi] = buffer;\n    return { vmVersion: +vm, abiVersion: +abi };\n  },\n};\n","import { Tag, ConsensusProtocolVersion, AbiVersion } from '../constants.js';\nimport { getProtocolDetails } from './ct-version.js';\nimport Node from '../../../Node.js';\n\nexport default {\n  _getProtocolDetails(c: ConsensusProtocolVersion, tag: Tag): AbiVersion {\n    const kind =\n      Tag.ContractCallTx === tag || Tag.GaMetaTx === tag ? 'contract-call' : 'oracle-call';\n    return getProtocolDetails(c, kind).abiVersion;\n  },\n\n  serialize(\n    value: AbiVersion | undefined,\n    { tag }: { tag: Tag },\n    {\n      consensusProtocolVersion = ConsensusProtocolVersion.Ceres,\n    }: { consensusProtocolVersion?: ConsensusProtocolVersion },\n  ): Buffer {\n    const result = value ?? this._getProtocolDetails(consensusProtocolVersion, tag);\n\n    return Buffer.from([result]);\n  },\n\n  async prepare(\n    value: AbiVersion | undefined,\n    { tag }: { tag: Tag },\n    // TODO: { consensusProtocolVersion: ConsensusProtocolVersion } | { onNode: Node } | {}\n    options: { consensusProtocolVersion?: ConsensusProtocolVersion; onNode?: Node },\n  ): Promise<AbiVersion | undefined> {\n    if (value != null) return value;\n    if (options.consensusProtocolVersion != null) return undefined;\n    if (Object.keys(ConsensusProtocolVersion).length === 2) return undefined;\n    if (options.onNode != null) {\n      return this._getProtocolDetails(\n        (await options.onNode.getNodeInfo()).consensusProtocolVersion,\n        tag,\n      );\n    }\n    return undefined;\n  },\n\n  deserialize(buffer: Buffer): AbiVersion {\n    return buffer[0];\n  },\n};\n","import { ArgumentError, PrefixNotFoundError, TagNotFoundError } from '../../../utils/errors.js';\nimport { toBytes } from '../../../utils/bytes.js';\nimport { decode, encode, Encoded, Encoding } from '../../../utils/encoder.js';\nimport { isItemOfArray } from '../../../utils/other.js';\n\n/**\n * Map of prefix to ID tag constant\n * @see {@link https://github.com/aeternity/protocol/blob/master/serializations.md#the-id-type}\n * @see {@link https://github.com/aeternity/aeserialization/blob/eb68fe331bd476910394966b7f5ede7a74d37e35/src/aeser_id.erl#L97-L102}\n * @see {@link https://github.com/aeternity/aeserialization/blob/eb68fe331bd476910394966b7f5ede7a74d37e35/src/aeser_api_encoder.erl#L163-L168}\n */\nexport const idTagToEncoding = [\n  Encoding.AccountAddress,\n  Encoding.Name,\n  Encoding.Commitment,\n  Encoding.OracleAddress,\n  Encoding.ContractAddress,\n  Encoding.Channel,\n] as const;\n\nexport type AddressEncodings = (typeof idTagToEncoding)[number];\n\nexport default function genAddressField<Encoding extends AddressEncodings>(\n  ...encodings: Encoding[]\n): {\n  serialize: (value: Encoded.Generic<Encoding>) => Buffer;\n  deserialize: (value: Buffer) => Encoded.Generic<Encoding>;\n} {\n  return {\n    /**\n     * Utility function to create and _id type\n     * @param hashId - Encoded hash\n     * @returns Buffer Buffer with ID tag and decoded HASh\n     */\n    serialize(hashId) {\n      const enc = hashId.slice(0, 2);\n      if (!isItemOfArray(enc, idTagToEncoding)) throw new TagNotFoundError(enc);\n      if (!isItemOfArray(enc, encodings)) {\n        throw new ArgumentError('Address encoding', encodings.join(', '), enc);\n      }\n      const idTag = idTagToEncoding.indexOf(enc) + 1;\n      return Buffer.from([...toBytes(idTag), ...decode(hashId)]);\n    },\n\n    /**\n     * Utility function to read and _id type\n     * @param buf - Data\n     * @returns Encoded hash string with prefix\n     */\n    deserialize(buf) {\n      const idTag = Buffer.from(buf).readUIntBE(0, 1);\n      const enc = idTagToEncoding[idTag - 1];\n      if (enc == null) throw new PrefixNotFoundError(idTag);\n      if (!isItemOfArray(enc, encodings)) {\n        throw new ArgumentError('Address encoding', encodings.join(', '), enc);\n      }\n      return encode(buf.subarray(1), enc) as Encoded.Generic<Encoding>;\n    },\n  };\n}\n","export default function genArrayField<Input, Output, Binary>(itemHandler: {\n  serialize: (value: Input, params: unknown) => Binary;\n  deserialize: (value: Binary, params: unknown) => Output;\n}): {\n  serialize: (value: readonly Input[], params: unknown) => Binary[];\n  deserialize: (value: Binary[], params: unknown) => Output[];\n} {\n  return {\n    serialize(items, params) {\n      return items.map((item) => itemHandler.serialize(item, params));\n    },\n\n    deserialize(buffers, params) {\n      return buffers.map((buffer) => itemHandler.deserialize(buffer, params));\n    },\n  };\n}\n","import { readInt } from '../helpers.js';\nimport { Int } from '../constants.js';\nimport { ArgumentError } from '../../../utils/errors.js';\nimport { toBytes } from '../../../utils/bytes.js';\n\nexport default {\n  serialize(value: Int): Buffer {\n    if (Number(value) < 0) throw new ArgumentError('value', 'greater or equal to 0', value);\n    return toBytes(value, true);\n  },\n\n  deserialize(value: Buffer): string {\n    return readInt(value);\n  },\n};\n","import uInt from './u-int.js';\nimport { Int } from '../constants.js';\nimport { AE_AMOUNT_FORMATS, formatAmount } from '../../../utils/amount-formatter.js';\n\nexport default {\n  ...uInt,\n\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  serializeAettos(value: string | undefined, params: {}, options: {}): string {\n    return value ?? '0';\n  },\n\n  serialize(\n    value: Int | undefined,\n    params: {},\n    { denomination = AE_AMOUNT_FORMATS.AETTOS, ...options }: { denomination?: AE_AMOUNT_FORMATS },\n  ): Buffer {\n    return uInt.serialize(\n      this.serializeAettos(\n        value != null ? formatAmount(value, { denomination }) : value,\n        params,\n        options,\n      ),\n    );\n  },\n};\n","import { decode, encode, Encoded, Encoding } from '../../../utils/encoder.js';\nimport { ArgumentError } from '../../../utils/errors.js';\n\nexport default function genEncodedField<E extends Encoding, Optional extends boolean = false>(\n  encoding: E,\n  optional?: Optional,\n): {\n  serialize: Optional extends true\n    ? (value?: Encoded.Generic<E>) => Buffer\n    : (value: Encoded.Generic<E>) => Buffer;\n  deserialize: (value: Buffer) => Encoded.Generic<E>;\n} {\n  return {\n    serialize(encodedData?: Encoded.Generic<E>) {\n      if (encodedData == null) {\n        if (optional === true) return Buffer.from([]);\n        throw new ArgumentError('Encoded data', 'provided', encodedData);\n      }\n      return decode(encodedData);\n    },\n\n    deserialize(buffer) {\n      return encode(buffer, encoding);\n    },\n  };\n}\n","import { decode, encode, Encoded, Encoding } from '../../../utils/encoder.js';\nimport { EntryTag } from '../entry/constants.js';\nimport type { unpackEntry as unpackEntryType, packEntry as packEntryType } from '../entry/index.js';\n\nexport default function genEntryField<T extends EntryTag = EntryTag>(\n  tag?: T,\n): {\n  serialize: (\n    // TODO: replace with `TxParams & { tag: T }`,\n    //  but fix TS2502 value is referenced directly or indirectly in its own type annotation\n    value: any,\n    options: { packEntry: typeof packEntryType },\n  ) => Buffer;\n  deserialize: (\n    value: Buffer,\n    options: { unpackEntry: typeof unpackEntryType },\n    // TODO: replace with `TxUnpacked & { tag: T }`,\n    //  TS2577 Return type annotation circularly references itself\n  ) => any;\n} {\n  return {\n    serialize(txParams, { packEntry }) {\n      if (ArrayBuffer.isView(txParams)) return Buffer.from(txParams as any);\n      if (typeof txParams === 'string' && txParams.startsWith('tx_')) {\n        return decode(txParams as Encoded.Transaction);\n      }\n      return decode(packEntry({ ...txParams, ...(tag != null && { tag }) }));\n    },\n\n    deserialize(buf, { unpackEntry }) {\n      return unpackEntry(encode(buf, Encoding.Bytearray), tag);\n    },\n  };\n}\n","import { ArgumentError } from '../../../utils/errors.js';\nimport { isItemOfArray } from '../../../utils/other.js';\n\nexport default function genEnumerationField<Enum extends { [key: string]: number | string }>(\n  enm: Enum,\n): {\n  serialize: (value: Enum[keyof Enum]) => Buffer;\n  deserialize: (value: Buffer) => Enum[keyof Enum];\n} {\n  const values = Object.values(enm).filter((v) => typeof v === 'number');\n  return {\n    serialize(value) {\n      if (typeof value !== 'number') throw new ArgumentError('value', 'to be a number', value);\n      if (value > 0xff) throw new ArgumentError('value', 'to be less than 256', value);\n      if (!isItemOfArray(value, values)) {\n        throw new ArgumentError('value', 'to be a value of Enum', value);\n      }\n      return Buffer.from([value]);\n    },\n\n    deserialize(buffer) {\n      if (buffer.length !== 1) {\n        throw new ArgumentError('buffer', 'to have single element', buffer.length);\n      }\n      const value = buffer[0];\n      if (!isItemOfArray(value, values)) {\n        throw new ArgumentError('value', 'to be a value of Enum', value);\n      }\n      return value as Enum[keyof Enum];\n    },\n  };\n}\n","import BigNumber from 'bignumber.js';\nimport coinAmount from './coin-amount.js';\nimport { ArgumentError, IllegalArgumentError } from '../../../utils/errors.js';\nimport { Int, MIN_GAS_PRICE } from '../constants.js';\nimport Node from '../../../Node.js';\nimport { AE_AMOUNT_FORMATS, formatAmount } from '../../../utils/amount-formatter.js';\n\nconst gasPriceCache: WeakMap<Node, { time: number; gasPrice: bigint }> = new WeakMap();\n\nexport async function getCachedIncreasedGasPrice(node: Node): Promise<bigint> {\n  const cache = gasPriceCache.get(node);\n  if (cache != null && cache.time > Date.now() - 20 * 1000) {\n    return cache.gasPrice;\n  }\n\n  const { minGasPrice, utilization } = (await node.getRecentGasPrices())[0];\n  let gasPrice =\n    utilization < 70\n      ? 0n\n      : BigInt(new BigNumber(minGasPrice.toString()).times(1.01).integerValue().toFixed());\n\n  const maxSafeGasPrice = BigInt(MIN_GAS_PRICE) * 100000n; // max microblock fee is 600ae or 35usd\n  if (gasPrice > maxSafeGasPrice) {\n    console.warn(\n      `Estimated gas price ${gasPrice} exceeds the maximum safe value for unknown reason.` +\n        ` It will be limited to ${maxSafeGasPrice}.` +\n        ' To overcome this restriction provide `gasPrice`/`fee` in options.',\n    );\n    gasPrice = maxSafeGasPrice;\n  }\n\n  gasPriceCache.set(node, { gasPrice, time: Date.now() });\n  return gasPrice;\n}\n\n// TODO: use withFormatting after using a single type for coins representation\nexport default {\n  ...coinAmount,\n\n  async prepare(\n    value: Int | undefined,\n    params: {},\n    {\n      onNode,\n      denomination,\n    }: {\n      onNode?: Node;\n      /**\n       * @deprecated no replacement implemented yet\n       */\n      denomination?: AE_AMOUNT_FORMATS;\n    },\n  ): Promise<Int | undefined> {\n    if (value != null) return value;\n    if (onNode == null) {\n      throw new ArgumentError('onNode', 'provided (or provide `gasPrice` instead)', onNode);\n    }\n    const gasPrice = await getCachedIncreasedGasPrice(onNode);\n    if (gasPrice === 0n) return undefined;\n    return formatAmount(gasPrice, { targetDenomination: denomination });\n  },\n\n  serializeAettos(value: string | undefined = MIN_GAS_PRICE.toString()): string {\n    if (+value < MIN_GAS_PRICE) {\n      throw new IllegalArgumentError(\n        `Gas price ${value.toString()} must be bigger than ${MIN_GAS_PRICE}`,\n      );\n    }\n    return value;\n  },\n};\n","import BigNumber from 'bignumber.js';\nimport { ArgumentError, IllegalArgumentError } from '../../../utils/errors.js';\nimport { Int, MIN_GAS_PRICE, Tag } from '../constants.js';\nimport uInt from './u-int.js';\nimport coinAmount from './coin-amount.js';\nimport { getCachedIncreasedGasPrice } from './gas-price.js';\nimport { isKeyOfObject } from '../../../utils/other.js';\nimport { decode, Encoded } from '../../../utils/encoder.js';\nimport type { unpackTx as unpackTxType, buildTx as buildTxType } from '../index.js';\nimport Node from '../../../Node.js';\n\nconst BASE_GAS = 15000;\nconst GAS_PER_BYTE = 20;\nconst KEY_BLOCK_INTERVAL = 3;\n\n/**\n * Calculate the base gas\n * @see {@link https://github.com/aeternity/protocol/blob/master/consensus/README.md#gas}\n * @param txType - The transaction type\n * @returns The base gas\n * @example\n * ```js\n * TX_BASE_GAS(Tag.ChannelForceProgressTx) => 30 * 15000\n * ```\n */\nconst TX_BASE_GAS = (txType: Tag): number => {\n  const feeFactors = {\n    [Tag.ChannelForceProgressTx]: 30,\n    [Tag.ChannelOffChainTx]: 0,\n    [Tag.ContractCreateTx]: 5,\n    [Tag.ContractCallTx]: 12,\n    [Tag.GaAttachTx]: 5,\n    [Tag.GaMetaTx]: 5,\n    [Tag.PayingForTx]: 1 / 5,\n  } as const;\n  const factor = feeFactors[txType as keyof typeof feeFactors] ?? 1;\n  return factor * BASE_GAS;\n};\n\n/**\n * Calculate gas for other types of transactions\n * @see {@link https://github.com/aeternity/protocol/blob/master/consensus/README.md#gas}\n * @param txType - The transaction type\n * @param txSize - The transaction size\n * @returns parameters - The transaction parameters\n * @returns parameters.relativeTtl - The relative ttl\n * @returns parameters.innerTxSize - The size of the inner transaction\n * @returns The other gas\n * @example\n * ```js\n * TX_OTHER_GAS(Tag.OracleRespondTx, 10, { relativeTtl: 12, innerTxSize: 0 })\n *  => 10 * 20 + Math.ceil(32000 * 12 / Math.floor(60 * 24 * 365 / 3))\n * ```\n */\nconst TX_OTHER_GAS = (\n  txType: Tag,\n  txSize: number,\n  { relativeTtl, innerTxSize }: { relativeTtl: number; innerTxSize: number },\n): number => {\n  switch (txType) {\n    case Tag.OracleRegisterTx:\n    case Tag.OracleExtendTx:\n    case Tag.OracleQueryTx:\n    case Tag.OracleRespondTx:\n      return (\n        txSize * GAS_PER_BYTE +\n        Math.ceil((32000 * relativeTtl) / Math.floor((60 * 24 * 365) / KEY_BLOCK_INTERVAL))\n      );\n    case Tag.GaMetaTx:\n    case Tag.PayingForTx:\n      return (txSize - innerTxSize) * GAS_PER_BYTE;\n    default:\n      return txSize * GAS_PER_BYTE;\n  }\n};\n\nfunction getOracleRelativeTtl(params: any): number {\n  const ttlKeys = {\n    [Tag.OracleRegisterTx]: 'oracleTtlValue',\n    [Tag.OracleExtendTx]: 'oracleTtlValue',\n    [Tag.OracleQueryTx]: 'queryTtlValue',\n    [Tag.OracleRespondTx]: 'responseTtlValue',\n  } as const;\n\n  const { tag } = params;\n  if (!isKeyOfObject(tag, ttlKeys)) return 1;\n  return params[ttlKeys[tag]];\n}\n\n/**\n * Calculate gas based on tx type and params\n */\nexport function buildGas(\n  builtTx: Encoded.Transaction,\n  unpackTx: typeof unpackTxType,\n  buildTx: typeof buildTxType,\n): number {\n  const { length } = decode(builtTx);\n  const txObject = unpackTx(builtTx);\n\n  let innerTxSize = 0;\n  if (txObject.tag === Tag.GaMetaTx || txObject.tag === Tag.PayingForTx) {\n    innerTxSize = decode(buildTx(txObject.tx.encodedTx)).length;\n  }\n\n  return (\n    TX_BASE_GAS(txObject.tag) +\n    TX_OTHER_GAS(txObject.tag, length, {\n      relativeTtl: getOracleRelativeTtl(txObject),\n      innerTxSize,\n    })\n  );\n}\n\n/**\n * Calculate min fee\n * @category transaction builder\n * @param rebuildTx - Callback to get built transaction with specific fee\n */\nfunction calculateMinFee(\n  rebuildTx: (value: BigNumber) => Encoded.Transaction,\n  unpackTx: typeof unpackTxType,\n  buildTx: typeof buildTxType,\n): BigNumber {\n  let fee = new BigNumber(0);\n  let previousFee;\n  do {\n    previousFee = fee;\n    fee = new BigNumber(MIN_GAS_PRICE).times(buildGas(rebuildTx(fee), unpackTx, buildTx));\n  } while (!fee.eq(previousFee));\n  return fee;\n}\n\n// TODO: Get rid of this workaround. Transaction builder can't accept/return gas price instead of\n// fee because it may get a decimal gas price. So, it should accept the optional `gasPrice` even\n// if it is not a contract-related transaction. And use this `gasPrice` to calculate `fee`.\nconst gasPricePrefix = '_gas-price:';\n\nexport interface SerializeAettosParams {\n  rebuildTx: (params: any) => Encoded.Transaction;\n  unpackTx: typeof unpackTxType;\n  buildTx: typeof buildTxType;\n  _computingMinFee?: BigNumber;\n}\n\nexport default {\n  ...coinAmount,\n\n  async prepare(\n    value: Int | undefined,\n    params: {},\n    { onNode }: { onNode?: Node },\n  ): Promise<Int | undefined> {\n    if (value != null) return value;\n    if (onNode == null) {\n      throw new ArgumentError('onNode', 'provided (or provide `fee` instead)', onNode);\n    }\n    const gasPrice = await getCachedIncreasedGasPrice(onNode);\n    if (gasPrice === 0n) return undefined;\n    return gasPricePrefix + gasPrice;\n  },\n\n  serializeAettos(\n    _value: string | undefined,\n    { rebuildTx, unpackTx, buildTx, _computingMinFee }: SerializeAettosParams,\n    { _canIncreaseFee }: { _canIncreaseFee?: boolean },\n  ): string {\n    if (_computingMinFee != null) return _computingMinFee.toFixed();\n    const minFee = calculateMinFee(\n      (fee) => rebuildTx({ _computingMinFee: fee }),\n      unpackTx,\n      buildTx,\n    );\n    const value =\n      _value?.startsWith(gasPricePrefix) === true\n        ? minFee.dividedBy(MIN_GAS_PRICE).times(_value.replace(gasPricePrefix, ''))\n        : new BigNumber(_value ?? minFee);\n    if (minFee.gt(value)) {\n      if (_canIncreaseFee === true) return minFee.toFixed();\n      throw new IllegalArgumentError(`Fee ${value.toString()} must be bigger than ${minFee}`);\n    }\n    return value.toFixed();\n  },\n\n  serialize(\n    value: Parameters<typeof coinAmount.serialize>[0],\n    params: Parameters<typeof coinAmount.serialize>[1] & SerializeAettosParams,\n    options: { _canIncreaseFee?: boolean } & Parameters<typeof coinAmount.serialize>[2],\n  ): Buffer {\n    if (typeof value === 'string' && value.startsWith(gasPricePrefix)) {\n      return uInt.serialize(this.serializeAettos(value, params, options));\n    }\n    return coinAmount.serialize.call(this, value, params, options);\n  },\n};\n","import uInt from './u-int.js';\n\nexport default {\n  serialize(value: number): Buffer {\n    return uInt.serialize(value);\n  },\n\n  deserialize(value: Buffer): number {\n    return +uInt.deserialize(value);\n  },\n};\n","import { IllegalArgumentError } from '../../../utils/errors.js';\nimport { Tag, MAX_AUTH_FUN_GAS } from '../constants.js';\nimport shortUInt from './short-u-int.js';\nimport { buildGas } from './fee.js';\nimport type { unpackTx as unpackTxType, buildTx as buildTxType } from '../index.js';\n\nfunction calculateGasLimitMax(\n  gasMax: number,\n  rebuildTx: (value: number) => any,\n  unpackTx: typeof unpackTxType,\n  buildTx: typeof buildTxType,\n): number {\n  return gasMax - +buildGas(rebuildTx(gasMax), unpackTx, buildTx);\n}\n\nexport default {\n  ...shortUInt,\n\n  serialize(\n    _value: number | undefined,\n    {\n      tag,\n      rebuildTx,\n      unpackTx,\n      buildTx,\n      _computingGasLimit,\n    }: {\n      tag: Tag;\n      rebuildTx: (params: any) => any;\n      unpackTx: typeof unpackTxType;\n      buildTx: typeof buildTxType;\n      _computingGasLimit?: number;\n    },\n    { gasMax = 6e6 }: { gasMax?: number },\n  ): Buffer {\n    if (_computingGasLimit != null) return shortUInt.serialize(_computingGasLimit);\n\n    const gasLimitMax =\n      tag === Tag.GaMetaTx\n        ? MAX_AUTH_FUN_GAS\n        : calculateGasLimitMax(\n            gasMax,\n            (gasLimit) => rebuildTx({ _computingGasLimit: gasLimit, _canIncreaseFee: true }),\n            unpackTx,\n            buildTx,\n          );\n    const value = _value ?? gasLimitMax;\n    if (value > gasLimitMax) {\n      throw new IllegalArgumentError(`Gas limit ${value} must be less or equal to ${gasLimitMax}`);\n    }\n    return shortUInt.serialize(value);\n  },\n};\n","export default {\n  serialize(value: string): Buffer {\n    return Buffer.from(value);\n  },\n\n  deserialize(value: Buffer): string {\n    return value.toString();\n  },\n};\n","import field from './field.js';\nimport { AensName } from '../constants.js';\n\nexport default {\n  /**\n   * @param value - AENS name\n   */\n  serialize(value: AensName): Buffer {\n    return field.serialize(value);\n  },\n\n  /**\n   * @param value - AENS name\n   */\n  deserialize(value: Buffer): AensName {\n    return field.deserialize(value) as AensName;\n  },\n};\n","import BigNumber from 'bignumber.js';\nimport { getMinimumNameFee } from '../helpers.js';\nimport { InsufficientNameFeeError } from '../../../utils/errors.js';\nimport coinAmount from './coin-amount.js';\nimport { AensName, Int } from '../constants.js';\n\nexport default {\n  ...coinAmount,\n\n  serializeAettos(_value: string | undefined, txFields: { name: AensName }): string {\n    const minNameFee = getMinimumNameFee(txFields.name);\n    const value = new BigNumber(_value ?? minNameFee);\n    if (minNameFee.gt(value)) throw new InsufficientNameFeeError(value, minNameFee);\n    return value.toFixed();\n  },\n\n  /**\n   * @param value - AENS name fee\n   * @param txFields - Transaction fields\n   * @param txFields.name - AENS Name in transaction\n   */\n  serialize(\n    value: Int | undefined,\n    txFields: { name: AensName } & Parameters<(typeof coinAmount)['serialize']>[1],\n    parameters: Parameters<(typeof coinAmount)['serialize']>[2],\n  ): Buffer {\n    return coinAmount.serialize.call(this, value, txFields, parameters);\n  },\n};\n","import { AensName } from '../constants.js';\nimport { produceNameId, isName } from '../helpers.js';\nimport address from './address.js';\nimport { Encoded, Encoding } from '../../../utils/encoder.js';\n\nconst addressName = address(Encoding.Name);\n\nexport default {\n  ...addressName,\n\n  /**\n   * @param value - AENS name ID\n   */\n  serialize(value: AensName | Encoded.Name): Buffer {\n    return addressName.serialize(isName(value) ? produceNameId(value) : value);\n  },\n};\n","import { isAccountNotFoundError } from '../../../utils/other.js';\nimport shortUInt from './short-u-int.js';\nimport Node from '../../../Node.js';\nimport { ArgumentError } from '../../../utils/errors.js';\nimport { Enum1 as NextNonceStrategy } from '../../../apis/node/index.js';\nimport { Tag } from '../constants.js';\n\nexport default function genNonceField<SenderKey extends string>(\n  senderKey: SenderKey,\n): {\n  serialize: (value: number, params: { tag: Tag }) => Buffer;\n  // TODO: (value: number) => Promise<number> | (value: undefined, ...) => Promise<number>\n  prepare: (\n    value: number | undefined,\n    params: {},\n    // TODO: replace `string` with AddressEncodings\n    options: { [key in SenderKey]: string } & {\n      strategy?: NextNonceStrategy;\n      onNode?: Node;\n      _isInternalBuild?: boolean;\n    },\n  ) => Promise<number>;\n  deserialize: (value: Buffer) => number;\n  senderKey: string;\n} {\n  return {\n    ...shortUInt,\n\n    serialize(value: number, { tag }): Buffer {\n      if (Tag.GaAttachTx === tag && value !== 1) {\n        throw new ArgumentError('nonce', 'equal 1 if GaAttachTx', value);\n      }\n      return shortUInt.serialize(value);\n    },\n\n    async prepare(value, params, options) {\n      if (value != null) return value;\n      // TODO: uncomment the below line\n      // if (options._isInternalBuild === true) return 0;\n      const { onNode, strategy } = options;\n      const senderId = options[senderKey];\n      const requirement = 'provided (or provide `nonce` instead)';\n      if (onNode == null) throw new ArgumentError('onNode', requirement, onNode);\n      if (senderId == null) throw new ArgumentError('senderId', requirement, senderId);\n      return (\n        await onNode\n          .getAccountNextNonce(senderId.replace(/^ok_/, 'ak_'), { strategy })\n          .catch((error) => {\n            if (!isAccountNotFoundError(error)) throw error;\n            return { nextNonce: 1 };\n          })\n      ).nextNonce;\n    },\n\n    senderKey,\n  };\n}\n","import { NamePointer as NamePointerString } from '../../../apis/node/index.js';\nimport { toBytes } from '../../../utils/bytes.js';\nimport { Encoded, Encoding, decode, encode } from '../../../utils/encoder.js';\nimport { isEncoded } from '../../../utils/crypto.js';\nimport { IllegalArgumentError, DecodeError, ArgumentError } from '../../../utils/errors.js';\nimport address, { AddressEncodings, idTagToEncoding } from './address.js';\n\nconst ID_TAG = Buffer.from([1]);\nconst DATA_TAG = Buffer.from([2]);\nconst DATA_LENGTH_MAX = 1024;\nconst addressAny = address(...idTagToEncoding);\n\n// TODO: remove after fixing node types\ntype NamePointer = NamePointerString & {\n  id: Encoded.Generic<AddressEncodings>;\n};\ntype NamePointerRaw = NamePointerString & {\n  id: Encoded.Generic<AddressEncodings | Encoding.Bytearray>;\n};\n\nexport default <AllowRaw extends boolean>(\n  allowRaw: AllowRaw,\n): {\n  serialize: (pointers: Array<AllowRaw extends true ? NamePointerRaw : NamePointer>) => Buffer[][];\n  deserialize: (\n    pointers: Array<[key: Buffer, id: Buffer]>,\n  ) => Array<AllowRaw extends true ? NamePointerRaw : NamePointer>;\n} => ({\n  /**\n   * Helper function to build pointers for name update TX\n   * @param pointers - Array of pointers\n   * `([ { key: 'account_pubkey', id: 'ak_32klj5j23k23j5423l434l2j3423'} ])`\n   * @returns Serialized pointers array\n   */\n  serialize(pointers) {\n    if (pointers.length > 32) {\n      throw new IllegalArgumentError(\n        `Expected 32 pointers or less, got ${pointers.length} instead`,\n      );\n    }\n    return pointers.map(({ key, id }) => {\n      let payload;\n      if (isEncoded(id, ...idTagToEncoding)) {\n        payload = [...(allowRaw ? [ID_TAG] : []), addressAny.serialize(id)];\n      }\n      if (isEncoded(id, Encoding.Bytearray)) {\n        const data = decode(id);\n        if (data.length > DATA_LENGTH_MAX) {\n          throw new ArgumentError(\n            'Raw pointer',\n            `shorter than ${DATA_LENGTH_MAX + 1} bytes`,\n            `${data.length} bytes`,\n          );\n        }\n        payload = [DATA_TAG, data];\n      }\n      if (payload == null) throw new DecodeError(`Unknown AENS pointer value: ${id}`);\n      return [toBytes(key), Buffer.concat(payload)];\n    });\n  },\n\n  /**\n   * Helper function to read pointers from name update TX\n   * @param pointers - Array of pointers\n   * @returns Deserialize pointer array\n   */\n  deserialize(pointers) {\n    return pointers.map(([bKey, bId]) => {\n      if (!allowRaw) return { key: bKey.toString(), id: addressAny.deserialize(bId) };\n      const tag = bId.subarray(0, 1);\n      const payload = bId.subarray(1);\n      let id;\n      if (tag.equals(ID_TAG)) id = addressAny.deserialize(payload);\n      // TS can't figure out the real type depending on allowRaw\n      if (tag.equals(DATA_TAG)) id = encode(payload, Encoding.Bytearray) as Encoded.AccountAddress;\n      if (id == null) throw new DecodeError(`Unknown AENS pointer tag: ${tag}`);\n      return { key: bKey.toString(), id };\n    });\n  },\n});\n","import coinAmount from './coin-amount.js';\nimport { Int } from '../constants.js';\nimport Node from '../../../Node.js';\nimport { Encoded } from '../../../utils/encoder.js';\nimport { ArgumentError } from '../../../utils/errors.js';\n\n/**\n * Oracle query fee\n */\nexport default {\n  ...coinAmount,\n\n  async prepare(\n    value: Int | undefined,\n    params: {},\n    options: { oracleId?: Encoded.OracleAddress; onNode?: Node },\n  ) {\n    if (value != null) return value;\n    const { onNode, oracleId } = options;\n    const requirement = 'provided (or provide `queryFee` instead)';\n    if (onNode == null) throw new ArgumentError('onNode', requirement, onNode);\n    if (oracleId == null) throw new ArgumentError('oracleId', requirement, oracleId);\n    return (await onNode.getOracleByPubkey(oracleId)).queryFee.toString();\n  },\n};\n","export default {\n  serialize(buffer: Uint8Array): Buffer {\n    return Buffer.from(buffer);\n  },\n\n  deserialize(buffer: Buffer): Buffer {\n    return buffer;\n  },\n};\n","import { ArgumentError } from '../../../utils/errors.js';\nimport shortUInt from './short-u-int.js';\n\nexport default function genShortUIntConstField<\n  Value extends number,\n  Optional extends boolean = false,\n>(\n  constValue: Value,\n  optional?: Optional,\n): {\n  serialize: Optional extends true ? (value?: Value) => Buffer : (value: Value) => Buffer;\n  deserialize: (value: Buffer) => Value;\n  constValue: Value;\n  constValueOptional: boolean;\n} {\n  return {\n    serialize(value?: Value) {\n      if ((optional !== true || value != null) && value !== constValue) {\n        throw new ArgumentError('ShortUIntConst', constValue, value);\n      }\n      return shortUInt.serialize(constValue);\n    },\n\n    deserialize(buf) {\n      const value = shortUInt.deserialize(buf);\n      if (value !== constValue) throw new ArgumentError('ShortUIntConst', constValue, value);\n      return constValue;\n    },\n\n    constValue,\n\n    constValueOptional: optional === true,\n  };\n}\n","import { toBytes } from '../../../utils/bytes.js';\n\nexport default {\n  serialize(string: string): Buffer {\n    return toBytes(string);\n  },\n\n  deserialize(buffer: Buffer): string {\n    return buffer.toString();\n  },\n};\n","import { decode, encode, Encoded, Encoding } from '../../../utils/encoder.js';\nimport { Tag } from '../constants.js';\nimport type { unpackTx as unpackTxType, buildTx as buildTxType } from '../index.js';\n\nexport default function genTransactionField<T extends Tag = Tag>(\n  tag?: T,\n): {\n  serialize: (\n    // TODO: replace with `TxParams & { tag: T }`,\n    //  but fix TS2502 value is referenced directly or indirectly in its own type annotation\n    value: any,\n    options: { buildTx: typeof buildTxType },\n  ) => Buffer;\n  deserialize: (\n    value: Buffer,\n    options: { unpackTx: typeof unpackTxType },\n    // TODO: replace with `TxUnpacked & { tag: T }`,\n    //  TS2577 Return type annotation circularly references itself\n  ) => any;\n} {\n  return {\n    serialize(txParams, { buildTx }) {\n      if (ArrayBuffer.isView(txParams)) return Buffer.from(txParams as any);\n      if (typeof txParams === 'string' && txParams.startsWith('tx_')) {\n        return decode(txParams as Encoded.Transaction);\n      }\n      return decode(buildTx({ ...txParams, ...(tag != null && { tag }) }));\n    },\n\n    deserialize(buf, { unpackTx }) {\n      return unpackTx(encode(buf, Encoding.Transaction), tag);\n    },\n  };\n}\n","import shortUInt from './short-u-int.js';\nimport Node from '../../../Node.js';\nimport { ArgumentError } from '../../../utils/errors.js';\nimport { _getPollInterval, getHeight } from '../../../chain.js';\n\n// TODO: restore after the mainnet mining issue is solved, was used via `_isInternalBuild` flag\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst DEFAULT_INTERNAL_RELATIVE_TTL = 3;\n\n/**\n * Time to leave\n */\nexport default {\n  ...shortUInt,\n\n  serialize(value: number | undefined): Buffer {\n    return shortUInt.serialize(value ?? 0);\n  },\n\n  async prepare(\n    value: number | undefined,\n    params: {},\n    // TODO: { absoluteTtl: true } | { absoluteTtl: false, onNode: Node }\n    {\n      onNode,\n      absoluteTtl,\n      ...options\n    }: {\n      onNode?: Node;\n      absoluteTtl?: boolean;\n    } & Omit<Parameters<typeof _getPollInterval>[1], 'onNode'>,\n  ) {\n    if (absoluteTtl !== true && value !== 0 && value != null) {\n      if (onNode == null) throw new ArgumentError('onNode', 'provided', onNode);\n      value += await getHeight({ ...options, onNode, cached: true });\n    }\n    return value;\n  },\n};\n","export default function withDefault<Input, Output, Binary>(\n  defaultValue: Input,\n  field: {\n    serialize: (value: Input, params: unknown) => Binary;\n    deserialize: (value: Binary, params: unknown) => Output;\n  },\n): {\n  serialize: (value: Input | undefined, params: unknown) => Binary;\n  deserialize: (value: Binary, params: unknown) => Output;\n} {\n  return {\n    ...field,\n\n    serialize(value, params) {\n      return field.serialize(value ?? defaultValue, params);\n    },\n  };\n}\n","export default function withFormatting<Input, Output, Binary, Params, Options>(\n  format: (v: Input | undefined) => Input,\n  field: {\n    serialize: (value: Input, params: Params, options: Options) => Binary;\n    deserialize: (value: Binary) => Output;\n  },\n): {\n  serialize: (value: Input | undefined, params: Params, options: Options) => Binary;\n  deserialize: (value: Binary) => Output;\n} {\n  return {\n    ...field,\n\n    serialize(value, params, options) {\n      return field.serialize(format(value), params, options);\n    },\n  };\n}\n","/**\n * @category contract\n */\nexport enum CallReturnType {\n  Ok = 0,\n  Error = 1,\n  Revert = 2,\n}\n\n/**\n * @category entry builder\n */\nexport enum EntryTag {\n  Account = 10,\n  Oracle = 20,\n  // OracleQuery = 21,\n  Name = 30,\n  // NameCommitment = 31,\n  // NameAuction = 37,\n  Contract = 40,\n  ContractCall = 41,\n  ChannelOffChainUpdateTransfer = 570,\n  ChannelOffChainUpdateDeposit = 571,\n  ChannelOffChainUpdateWithdraw = 572,\n  ChannelOffChainUpdateCreateContract = 573,\n  ChannelOffChainUpdateCallContract = 574,\n  // ChannelOffChainUpdateMeta = 576,\n  Channel = 58,\n  TreesPoi = 60,\n  // TreesDb = 61,\n  StateTrees = 62,\n  Mtree = 63,\n  MtreeValue = 64,\n  ContractsMtree = 621,\n  CallsMtree = 622,\n  ChannelsMtree = 623,\n  NameserviceMtree = 624,\n  OraclesMtree = 625,\n  AccountsMtree = 626,\n  // CompilerSophia = 70,\n  GaMetaTxAuthData = 810,\n}\n","/**\n * Transaction Schema for TxBuilder\n */\n// # RLP version number\n// # https://github.com/aeternity/protocol/blob/master/serializations.md#binary-serialization\n\nimport { Tag } from './constants.js';\nimport SchemaTypes from './SchemaTypes.js';\nimport abiVersion from './field-types/abi-version.js';\nimport address, { idTagToEncoding } from './field-types/address.js';\nimport array from './field-types/array.js';\nimport coinAmount from './field-types/coin-amount.js';\nimport ctVersion from './field-types/ct-version.js';\nimport encoded from './field-types/encoded.js';\nimport entry from './field-types/entry.js';\nimport enumeration from './field-types/enumeration.js';\nimport fee from './field-types/fee.js';\nimport gasLimit from './field-types/gas-limit.js';\nimport gasPrice from './field-types/gas-price.js';\nimport name from './field-types/name.js';\nimport nameFee from './field-types/name-fee.js';\nimport nameId from './field-types/name-id.js';\nimport nonce from './field-types/nonce.js';\nimport pointers from './field-types/pointers.js';\nimport queryFee from './field-types/query-fee.js';\nimport raw from './field-types/raw.js';\nimport shortUInt from './field-types/short-u-int.js';\nimport shortUIntConst from './field-types/short-u-int-const.js';\nimport string from './field-types/string.js';\nimport transaction from './field-types/transaction.js';\nimport ttl from './field-types/ttl.js';\nimport uInt from './field-types/u-int.js';\nimport withDefault from './field-types/with-default.js';\nimport withFormatting from './field-types/with-formatting.js';\nimport { Encoded, Encoding } from '../../utils/encoder.js';\nimport { ArgumentError } from '../../utils/errors.js';\nimport { EntryTag } from './entry/constants.js';\nimport { EntParams, EntUnpacked } from './entry/schema.generated.js';\n\n/**\n * @category oracle\n */\nexport enum ORACLE_TTL_TYPES {\n  delta = 0,\n  block = 1,\n}\n\n// TODO: figure out how to omit overriding types of recursive fields\ninterface TransactionAny {\n  serialize: (value: TxParams | Uint8Array | Encoded.Transaction) => Buffer;\n  deserialize: (value: Buffer) => TxUnpacked;\n  recursiveType: true;\n}\n\nconst transactionAny = transaction() as unknown as TransactionAny;\n\ninterface TransactionSignedTx {\n  serialize: (\n    value: (TxParams & { tag: Tag.SignedTx }) | Uint8Array | Encoded.Transaction,\n  ) => Buffer;\n  deserialize: (value: Buffer) => TxUnpacked & { tag: Tag.SignedTx };\n  recursiveType: true;\n}\n\nconst transactionSignedTx = transaction(Tag.SignedTx) as unknown as TransactionSignedTx;\n\ninterface EntryTreesPoi {\n  serialize: (\n    value: (EntParams & { tag: EntryTag.TreesPoi }) | Uint8Array | Encoded.Transaction,\n  ) => Buffer;\n  deserialize: (value: Buffer) => EntUnpacked & { tag: EntryTag.TreesPoi };\n  recursiveType: true;\n}\n\nconst entryTreesPoi = entry(EntryTag.TreesPoi) as unknown as EntryTreesPoi;\n\nconst clientTtl = withDefault(60 * 60, shortUInt);\n// https://github.com/aeternity/protocol/blob/fd17982/AENS.md#update\n/**\n * Name ttl represented in number of blocks (Max value is 50000 blocks)\n */\nconst nameTtl = withFormatting((value) => {\n  const NAME_TTL = 180000;\n  value ??= NAME_TTL;\n  if (value >= 1 && value <= NAME_TTL) return value;\n  throw new ArgumentError('nameTtl', `a number between 1 and ${NAME_TTL} blocks`, value);\n}, shortUInt);\n\n/**\n * @see {@link https://github.com/aeternity/protocol/blob/c007deeac4a01e401238412801ac7084ac72d60e/serializations.md#accounts-version-1-basic-accounts}\n */\nexport const txSchema = [\n  {\n    tag: shortUIntConst(Tag.SignedTx),\n    version: shortUIntConst(1, true),\n    signatures: array(raw), // TODO: use sg_ (Encoding.Signature) instead\n    encodedTx: transactionAny,\n  },\n  {\n    tag: shortUIntConst(Tag.SpendTx),\n    version: shortUIntConst(1, true),\n    senderId: address(Encoding.AccountAddress),\n    // TODO: accept also an AENS name\n    recipientId: address(Encoding.AccountAddress, Encoding.ContractAddress, Encoding.Name),\n    amount: coinAmount,\n    fee,\n    ttl,\n    nonce: nonce('senderId'),\n    payload: encoded(Encoding.Bytearray, true),\n  },\n  {\n    tag: shortUIntConst(Tag.NamePreclaimTx),\n    version: shortUIntConst(1, true),\n    accountId: address(Encoding.AccountAddress),\n    nonce: nonce('accountId'),\n    commitmentId: address(Encoding.Commitment),\n    fee,\n    ttl,\n  },\n  {\n    tag: shortUIntConst(Tag.NameClaimTx),\n    version: shortUIntConst(2, true),\n    accountId: address(Encoding.AccountAddress),\n    nonce: nonce('accountId'),\n    name,\n    nameSalt: withDefault(0, uInt),\n    nameFee,\n    fee,\n    ttl,\n  },\n  {\n    tag: shortUIntConst(Tag.NameUpdateTx),\n    version: shortUIntConst(1, true),\n    accountId: address(Encoding.AccountAddress),\n    nonce: nonce('accountId'),\n    nameId,\n    nameTtl,\n    pointers: pointers(false),\n    clientTtl,\n    fee,\n    ttl,\n  },\n  {\n    tag: shortUIntConst(Tag.NameUpdateTx),\n    version: shortUIntConst(2),\n    accountId: address(Encoding.AccountAddress),\n    nonce: nonce('accountId'),\n    nameId,\n    nameTtl,\n    pointers: pointers(true),\n    clientTtl,\n    fee,\n    ttl,\n  },\n  {\n    tag: shortUIntConst(Tag.NameTransferTx),\n    version: shortUIntConst(1, true),\n    accountId: address(Encoding.AccountAddress),\n    nonce: nonce('accountId'),\n    nameId,\n    // TODO: accept also an AENS name\n    recipientId: address(Encoding.AccountAddress, Encoding.Name),\n    fee,\n    ttl,\n  },\n  {\n    tag: shortUIntConst(Tag.NameRevokeTx),\n    version: shortUIntConst(1, true),\n    accountId: address(Encoding.AccountAddress),\n    nonce: nonce('accountId'),\n    nameId,\n    fee,\n    ttl,\n  },\n  {\n    tag: shortUIntConst(Tag.ContractCreateTx),\n    version: shortUIntConst(1, true),\n    ownerId: address(Encoding.AccountAddress),\n    nonce: nonce('ownerId'),\n    code: encoded(Encoding.ContractBytearray),\n    ctVersion,\n    fee,\n    ttl,\n    deposit: withFormatting((value = 0) => {\n      if (+value === 0) return value;\n      throw new ArgumentError('deposit', 'equal 0 (because is not refundable)', value);\n    }, coinAmount),\n    amount: coinAmount,\n    gasLimit,\n    gasPrice,\n    callData: encoded(Encoding.ContractBytearray),\n  },\n  {\n    tag: shortUIntConst(Tag.ContractCallTx),\n    version: shortUIntConst(1, true),\n    callerId: address(Encoding.AccountAddress),\n    nonce: nonce('callerId'),\n    // TODO: accept also an AENS name\n    contractId: address(Encoding.ContractAddress, Encoding.Name),\n    abiVersion,\n    fee,\n    ttl,\n    amount: coinAmount,\n    gasLimit,\n    gasPrice,\n    callData: encoded(Encoding.ContractBytearray),\n  },\n  {\n    tag: shortUIntConst(Tag.OracleRegisterTx),\n    version: shortUIntConst(1, true),\n    accountId: address(Encoding.AccountAddress),\n    nonce: nonce('accountId'),\n    queryFormat: string,\n    responseFormat: string,\n    queryFee: coinAmount,\n    oracleTtlType: withDefault(ORACLE_TTL_TYPES.delta, enumeration(ORACLE_TTL_TYPES)),\n    oracleTtlValue: withDefault(500, shortUInt),\n    fee,\n    ttl,\n    abiVersion,\n  },\n  {\n    tag: shortUIntConst(Tag.OracleExtendTx),\n    version: shortUIntConst(1, true),\n    // TODO: accept also an AENS name\n    oracleId: address(Encoding.OracleAddress, Encoding.Name),\n    nonce: nonce('oracleId'),\n    oracleTtlType: withDefault(ORACLE_TTL_TYPES.delta, enumeration(ORACLE_TTL_TYPES)),\n    oracleTtlValue: withDefault(500, shortUInt),\n    fee,\n    ttl,\n  },\n  {\n    tag: shortUIntConst(Tag.OracleQueryTx),\n    version: shortUIntConst(1, true),\n    senderId: address(Encoding.AccountAddress),\n    nonce: nonce('senderId'),\n    // TODO: accept also an AENS name\n    oracleId: address(Encoding.OracleAddress, Encoding.Name),\n    query: string,\n    queryFee,\n    queryTtlType: withDefault(ORACLE_TTL_TYPES.delta, enumeration(ORACLE_TTL_TYPES)),\n    queryTtlValue: withDefault(10, shortUInt),\n    responseTtlType: withDefault(ORACLE_TTL_TYPES.delta, enumeration(ORACLE_TTL_TYPES)),\n    responseTtlValue: withDefault(10, shortUInt),\n    fee,\n    ttl,\n  },\n  {\n    tag: shortUIntConst(Tag.OracleRespondTx),\n    version: shortUIntConst(1, true),\n    oracleId: address(Encoding.OracleAddress),\n    nonce: nonce('oracleId'),\n    queryId: encoded(Encoding.OracleQueryId),\n    response: string,\n    responseTtlType: withDefault(ORACLE_TTL_TYPES.delta, enumeration(ORACLE_TTL_TYPES)),\n    responseTtlValue: withDefault(10, shortUInt),\n    fee,\n    ttl,\n  },\n  {\n    tag: shortUIntConst(Tag.ChannelCreateTx),\n    version: shortUIntConst(2, true),\n    initiator: address(Encoding.AccountAddress),\n    initiatorAmount: uInt,\n    responder: address(Encoding.AccountAddress),\n    responderAmount: uInt,\n    channelReserve: uInt,\n    lockPeriod: uInt,\n    ttl,\n    fee,\n    initiatorDelegateIds: array(address(...idTagToEncoding)),\n    responderDelegateIds: array(address(...idTagToEncoding)),\n    stateHash: encoded(Encoding.State),\n    nonce: nonce('initiator'),\n  },\n  {\n    tag: shortUIntConst(Tag.ChannelCloseMutualTx),\n    version: shortUIntConst(1, true),\n    channelId: address(Encoding.Channel),\n    fromId: address(Encoding.AccountAddress),\n    initiatorAmountFinal: uInt,\n    responderAmountFinal: uInt,\n    ttl,\n    fee,\n    nonce: nonce('fromId'),\n  },\n  {\n    tag: shortUIntConst(Tag.ChannelCloseSoloTx),\n    version: shortUIntConst(1, true),\n    channelId: address(Encoding.Channel),\n    fromId: address(Encoding.AccountAddress),\n    payload: encoded(Encoding.Transaction),\n    poi: entryTreesPoi,\n    ttl,\n    fee,\n    nonce: nonce('fromId'),\n  },\n  {\n    tag: shortUIntConst(Tag.ChannelSlashTx),\n    version: shortUIntConst(1, true),\n    channelId: address(Encoding.Channel),\n    fromId: address(Encoding.AccountAddress),\n    payload: encoded(Encoding.Transaction),\n    poi: entryTreesPoi,\n    ttl,\n    fee,\n    nonce: nonce('fromId'),\n  },\n  {\n    tag: shortUIntConst(Tag.ChannelDepositTx),\n    version: shortUIntConst(1, true),\n    channelId: address(Encoding.Channel),\n    fromId: address(Encoding.AccountAddress),\n    amount: uInt,\n    ttl,\n    fee,\n    stateHash: encoded(Encoding.State),\n    round: shortUInt,\n    nonce: nonce('fromId'),\n  },\n  {\n    tag: shortUIntConst(Tag.ChannelWithdrawTx),\n    version: shortUIntConst(1, true),\n    channelId: address(Encoding.Channel),\n    toId: address(Encoding.AccountAddress),\n    amount: uInt,\n    ttl,\n    fee,\n    stateHash: encoded(Encoding.State),\n    round: shortUInt,\n    nonce: nonce('fromId'),\n  },\n  {\n    tag: shortUIntConst(Tag.ChannelSettleTx),\n    version: shortUIntConst(1, true),\n    channelId: address(Encoding.Channel),\n    fromId: address(Encoding.AccountAddress),\n    initiatorAmountFinal: uInt,\n    responderAmountFinal: uInt,\n    ttl,\n    fee,\n    nonce: nonce('fromId'),\n  },\n  {\n    tag: shortUIntConst(Tag.ChannelForceProgressTx),\n    version: shortUIntConst(1, true),\n    channelId: address(Encoding.Channel),\n    fromId: address(Encoding.AccountAddress),\n    payload: encoded(Encoding.Transaction),\n    round: shortUInt,\n    update: encoded(Encoding.ContractBytearray),\n    stateHash: encoded(Encoding.State),\n    offChainTrees: encoded(Encoding.StateTrees),\n    ttl,\n    fee,\n    nonce: nonce('fromId'),\n  },\n  {\n    tag: shortUIntConst(Tag.ChannelOffChainTx),\n    version: shortUIntConst(2, true),\n    channelId: address(Encoding.Channel),\n    round: shortUInt,\n    stateHash: encoded(Encoding.State),\n  },\n  {\n    tag: shortUIntConst(Tag.ChannelSnapshotSoloTx),\n    version: shortUIntConst(1, true),\n    channelId: address(Encoding.Channel),\n    fromId: address(Encoding.AccountAddress),\n    payload: encoded(Encoding.Transaction),\n    ttl,\n    fee,\n    nonce: nonce('fromId'),\n  },\n  {\n    tag: shortUIntConst(Tag.GaAttachTx),\n    version: shortUIntConst(1, true),\n    ownerId: address(Encoding.AccountAddress),\n    nonce: nonce('ownerId'),\n    code: encoded(Encoding.ContractBytearray),\n    authFun: raw,\n    ctVersion,\n    fee,\n    ttl,\n    gasLimit,\n    gasPrice,\n    callData: encoded(Encoding.ContractBytearray),\n  },\n  {\n    tag: shortUIntConst(Tag.GaMetaTx),\n    version: shortUIntConst(2, true),\n    gaId: address(Encoding.AccountAddress),\n    authData: encoded(Encoding.ContractBytearray),\n    abiVersion,\n    fee,\n    gasLimit,\n    gasPrice,\n    tx: transactionSignedTx,\n  },\n  {\n    tag: shortUIntConst(Tag.PayingForTx),\n    version: shortUIntConst(1, true),\n    payerId: address(Encoding.AccountAddress),\n    nonce: nonce('payerId'),\n    fee,\n    tx: transactionSignedTx,\n  },\n] as const;\n\ntype TxSchema = SchemaTypes<typeof txSchema>;\nexport type TxParams = TxSchema['TxParams'];\nexport type TxParamsAsync = TxSchema['TxParamsAsync'];\nexport type TxUnpacked = TxSchema['TxUnpacked'];\n","import { decode as rlpDecode, encode as rlpEncode } from 'rlp';\nimport { Field, BinaryData } from './field-types/interface.js';\nimport {\n  ArgumentError,\n  DecodeError,\n  SchemaNotFoundError,\n  InternalError,\n} from '../../utils/errors.js';\nimport { Encoding, Encoded, encode, decode } from '../../utils/encoder.js';\n\ntype Schemas = ReadonlyArray<{\n  tag: { constValue: number } & Field;\n  version: { constValue: number; constValueOptional: boolean } & Field;\n}>;\n\nexport function getSchema(\n  schemas: Schemas,\n  Tag: { [key: number]: string },\n  tag: number,\n  version: number | undefined,\n): Array<[string, Field]> {\n  const subSchemas = schemas.filter((s) => s.tag.constValue === tag);\n  if (subSchemas.length === 0) throw new SchemaNotFoundError(`${Tag[tag]} (${tag})`, 0);\n  if (version == null) {\n    const defaultSchema = subSchemas.find((schema) => schema.version.constValueOptional);\n    if (defaultSchema == null)\n      throw new InternalError(`Can't find default schema of ${Tag[tag]} (${tag})`);\n    version = defaultSchema.version.constValue;\n  }\n  const schema = subSchemas.find((s) => s.version.constValue === version);\n  if (schema == null) throw new SchemaNotFoundError(`${Tag[tag]} (${tag})`, version);\n  return Object.entries(schema);\n}\n\nexport function packRecord<E extends Encoding>(\n  schemas: Schemas,\n  Tag: { [key: number]: string },\n  params: {\n    tag: number;\n    version?: number;\n    [k: string]: unknown;\n  },\n  extraParams: { [k: string]: unknown },\n  encoding: E,\n): Encoded.Generic<E> {\n  const schema = getSchema(schemas, Tag, params.tag, params.version);\n  const binary = schema.map(([key, field]) =>\n    field.serialize(params[key], { ...params, ...extraParams }, params),\n  );\n  return encode(rlpEncode(binary), encoding);\n}\n\nexport function unpackRecord(\n  schemas: Schemas,\n  Tag: { [key: number]: string },\n  encodedRecord: Encoded.Any,\n  expectedTag: number | undefined,\n  extraParams: { [k: string]: unknown },\n): unknown {\n  const binary = rlpDecode(decode(encodedRecord));\n  if (!ArrayBuffer.isView(binary[0]) || !ArrayBuffer.isView(binary[1])) {\n    throw new DecodeError(\"Can't parse tag or version in provided RLP\");\n  }\n  const tag = Buffer.from(binary[0]).readUintBE(0, binary[0].length);\n  const version = Buffer.from(binary[1]).readUintBE(0, binary[1].length);\n  const schema = getSchema(schemas, Tag, tag, version);\n  if (expectedTag != null && expectedTag !== tag) {\n    throw new DecodeError(`Expected ${Tag[expectedTag]} tag, got ${Tag[tag]} instead`);\n  }\n  if (binary.length !== schema.length) {\n    throw new ArgumentError('RLP length', schema.length, binary.length);\n  }\n  return Object.fromEntries(\n    schema.map(([name, field], index) => [\n      name,\n      field.deserialize(binary[index] as BinaryData, extraParams),\n    ]),\n  );\n}\n","export default {\n  serialize(value: boolean): Buffer {\n    return Buffer.from([value ? 1 : 0]);\n  },\n\n  deserialize(buffer: Buffer): boolean {\n    return buffer[0] === 1;\n  },\n};\n","import { EntryTag } from '../entry/constants.js';\nimport { encode, Encoding, Encoded, decode } from '../../../utils/encoder.js';\nimport type { unpackEntry as unpackEntryType, packEntry as packEntryType } from '../entry/index.js';\n\nexport default function genMapField<E extends Encoding, T extends EntryTag>(\n  encoding: E,\n  tag: T,\n): {\n  serialize: (\n    // TODO: replace with `TxParams & { tag: T }`,\n    //  but fix TS2502 value is referenced directly or indirectly in its own type annotation\n    value: Record<Encoded.Generic<E>, any>,\n    options: { packEntry: typeof packEntryType },\n  ) => Buffer;\n  deserialize: (\n    value: Buffer,\n    options: { unpackEntry: typeof unpackEntryType },\n    // TODO: replace with `TxUnpacked & { tag: T }`,\n    //  TS2577 Return type annotation circularly references itself\n  ) => Record<Encoded.Generic<E>, any>;\n  recursiveType: true;\n} {\n  return {\n    serialize(object, { packEntry }) {\n      return decode(\n        packEntry({\n          tag: EntryTag.Mtree,\n          values: Object.entries(object).map(\n            ([key, value]) =>\n              ({\n                tag: EntryTag.MtreeValue,\n                key: decode(key as Encoded.Generic<E>),\n                value: decode(packEntry({ ...(value as any), tag })),\n              }) as const,\n          ),\n        }),\n      );\n    },\n\n    deserialize(buffer, { unpackEntry }) {\n      const { values } = unpackEntry(encode(buffer, Encoding.Bytearray), EntryTag.Mtree);\n      return Object.fromEntries(\n        values\n          // TODO: remove after resolving https://github.com/aeternity/aeternity/issues/4066\n          .filter(({ key }) => encoding !== Encoding.ContractAddress || key.length === 32)\n          .map(({ key, value }) => [\n            encode(key, encoding),\n            unpackEntry(encode(value, Encoding.Bytearray), tag),\n          ]),\n      ) as Record<Encoded.Generic<E>, any>;\n    },\n\n    recursiveType: true,\n  };\n}\n","import { encode as rlpEncode, Input } from 'rlp';\nimport { EntryTag } from '../entry/constants.js';\nimport { hash } from '../../../utils/crypto.js';\nimport {\n  MerkleTreeHashMismatchError,\n  MissingNodeInTreeError,\n  UnknownPathNibbleError,\n  UnexpectedTsError,\n  UnknownNodeLengthError,\n  InternalError,\n} from '../../../utils/errors.js';\nimport { decode, encode, Encoded, Encoding } from '../../../utils/encoder.js';\nimport type { unpackEntry } from '../entry/index.js';\nimport type { EntUnpacked } from '../entry/schema.generated.js';\n\nenum NodeType {\n  Branch,\n  Extension,\n  Leaf,\n}\n\ntype MPTreeBinary = [Buffer, Array<[Buffer, Buffer[]]>];\n\nclass MPTree<E extends Encoding, T extends EntryTag> {\n  readonly #rootHash: string;\n\n  #isComplete = true;\n\n  get isComplete(): boolean {\n    return this.#isComplete;\n  }\n\n  readonly #nodes: { [key: string]: Buffer[] };\n\n  readonly #encoding: E;\n\n  readonly #tag: T;\n\n  readonly #unpackEntry: typeof unpackEntry;\n\n  static #nodeHash(node: Input): string {\n    return Buffer.from(hash(rlpEncode(node))).toString('hex');\n  }\n\n  /**\n   * Deserialize Merkle Patricia Tree\n   * @param binary - Binary\n   * @param tag - Tag to use to decode value\n   * @param unpEnt - Implementation of unpackEntry use to decode values\n   * @returns Merkle Patricia Tree\n   */\n  constructor(binary: MPTreeBinary, encoding: E, tag: T, unpEnt: typeof unpackEntry) {\n    this.#encoding = encoding;\n    this.#tag = tag;\n    this.#unpackEntry = unpEnt;\n    this.#rootHash = binary[0].toString('hex');\n    this.#nodes = Object.fromEntries(binary[1].map((node) => [node[0].toString('hex'), node[1]]));\n\n    if (this.#nodes[this.#rootHash] == null) {\n      if (Object.keys(this.#nodes).length !== 0) {\n        throw new MissingNodeInTreeError(\"Can't find a node by root hash\");\n      }\n      this.#isComplete = false;\n      return;\n    }\n    Object.entries(this.#nodes).forEach(([key, node]) => {\n      if (MPTree.#nodeHash(node) !== key) throw new MerkleTreeHashMismatchError();\n      const { type } = MPTree.#parseNode(node);\n      switch (type) {\n        case NodeType.Branch:\n          node\n            .slice(0, 16)\n            .filter((n) => n.length)\n            .forEach((n) => {\n              // TODO: enable after resolving https://github.com/aeternity/aeternity/issues/4066\n              // if (n.length !== 32) {\n              //   throw new ArgumentError('MPTree branch item length', 32, n.length);\n              // }\n              if (this.#nodes[n.toString('hex')] == null) this.#isComplete = false;\n            });\n          break;\n        case NodeType.Extension:\n          if (this.#nodes[node[1].toString('hex')] == null) {\n            throw new MissingNodeInTreeError(\"Can't find a node by hash in extension node\");\n          }\n          break;\n        case NodeType.Leaf:\n          break;\n        default:\n          throw new InternalError(`Unknown MPTree node type: ${type}`);\n      }\n    });\n  }\n\n  isEqual(tree: MPTree<E, T>): boolean {\n    return this.#rootHash === tree.#rootHash;\n  }\n\n  static #parseNode(node: Buffer[]): { type: NodeType; value?: Buffer; path?: string } {\n    switch (node.length) {\n      case 17:\n        return {\n          type: NodeType.Branch,\n          ...(node[16].length !== 0 && { value: node[16] }),\n        };\n      case 2: {\n        const nibble = node[0][0] >> 4; // eslint-disable-line no-bitwise\n        if (nibble > 3) throw new UnknownPathNibbleError(nibble);\n        const type = nibble <= 1 ? NodeType.Extension : NodeType.Leaf;\n        const slice = [0, 2].includes(nibble) ? 2 : 1;\n        return {\n          type,\n          ...(type === NodeType.Leaf && { value: node[1] }),\n          path: node[0].toString('hex').slice(slice),\n        };\n      }\n      default:\n        throw new UnknownNodeLengthError(node.length);\n    }\n  }\n\n  /**\n   * Serialize Merkle Patricia Tree\n   * @returns Binary\n   */\n  serialize(): MPTreeBinary {\n    return [\n      Buffer.from(this.#rootHash, 'hex'),\n      Object.entries(this.#nodes).map(([mptHash, value]) => [Buffer.from(mptHash, 'hex'), value]),\n    ];\n  }\n\n  /**\n   * Retrieve value from Merkle Patricia Tree\n   * @param _key - The key of the element to retrieve\n   * @returns Value associated to the specified key\n   */\n  #getRaw(_key: string): Buffer | undefined {\n    let searchFrom = this.#rootHash;\n    let key = _key;\n    while (true) {\n      // eslint-disable-line no-constant-condition\n      const node = this.#nodes[searchFrom];\n      if (node == null) {\n        if (!this.isComplete) return undefined;\n        throw new InternalError(\"Can't find node in complete tree\");\n      }\n      const { type, value, path } = MPTree.#parseNode(node);\n      switch (type) {\n        case NodeType.Branch:\n          if (key.length === 0) return value;\n          searchFrom = node[+`0x${key[0]}`].toString('hex');\n          key = key.substring(1);\n          break;\n        case NodeType.Extension:\n          if (key.substring(0, path?.length) !== path) return undefined;\n          searchFrom = node[1].toString('hex');\n          key = key.substring(path.length);\n          break;\n        case NodeType.Leaf:\n          if (path !== key) return undefined;\n          return value;\n        default:\n          throw new InternalError(`Unknown MPTree node type: ${type}`);\n      }\n    }\n  }\n\n  /**\n   * Retrieve value from Merkle Patricia Tree\n   * @param key - The key of the element to retrieve\n   * @returns Value associated to the specified key\n   */\n  get(key: Encoded.Generic<E>): (EntUnpacked & { tag: T }) | undefined {\n    const d = this.#getRaw(decode(key).toString('hex'));\n    if (d == null) return d;\n    return this.#unpackEntry(encode(d, Encoding.Bytearray), this.#tag);\n  }\n\n  #entriesRaw(): Array<[string, Buffer]> {\n    const entries: Array<[string, Buffer]> = [];\n    const rec = (searchFrom: string, key: string): void => {\n      const node = this.#nodes[searchFrom];\n      if (node == null) {\n        if (!this.isComplete) return;\n        throw new InternalError(\"Can't find node in complete tree\");\n      }\n      const { type, value, path } = MPTree.#parseNode(node);\n      switch (type) {\n        case NodeType.Branch:\n          node\n            .slice(0, 16)\n            .map((t, idx): [typeof t, number] => [t, idx])\n            .filter(([t]) => t.length)\n            .forEach(([t, idx]) => rec(t.toString('hex'), key + idx.toString(16)));\n          if (value != null) entries.push([key, value]);\n          break;\n        case NodeType.Extension:\n          rec(node[1].toString('hex'), key + path);\n          break;\n        case NodeType.Leaf:\n          if (value == null) throw new UnexpectedTsError();\n          entries.push([key + path, value]);\n          break;\n        default:\n          throw new InternalError(`Unknown MPTree node type: ${type}`);\n      }\n    };\n    rec(this.#rootHash, '');\n    return entries;\n  }\n\n  toObject(): Record<Encoded.Generic<E>, EntUnpacked & { tag: T }> {\n    return Object.fromEntries(\n      this.#entriesRaw()\n        // TODO: remove after resolving https://github.com/aeternity/aeternity/issues/4066\n        .filter(([k]) => this.#encoding !== Encoding.ContractAddress || k.length !== 66)\n        .map(([k, v]) => [\n          encode(Buffer.from(k, 'hex'), this.#encoding),\n          this.#unpackEntry(encode(v, Encoding.Bytearray), this.#tag),\n        ]),\n    ) as Record<Encoded.Generic<E>, EntUnpacked & { tag: T }>;\n  }\n}\n\nexport default function genMPTreeField<E extends Encoding, T extends EntryTag>(\n  encoding: E,\n  tag: T,\n): {\n  serialize: (value: MPTree<E, T>) => MPTreeBinary;\n  deserialize: (value: MPTreeBinary, o: { unpackEntry: typeof unpackEntry }) => MPTree<E, T>;\n} {\n  return {\n    serialize(value) {\n      return value.serialize();\n    },\n\n    deserialize(value, { unpackEntry }) {\n      return new MPTree(value, encoding, tag, unpackEntry);\n    },\n  };\n}\n","import { EntryTag } from '../entry/constants.js';\nimport { encode, Encoding, decode } from '../../../utils/encoder.js';\nimport type { unpackEntry as unpackEntryType, packEntry as packEntryType } from '../entry/index.js';\n\ntype TagWrapping =\n  | EntryTag.AccountsMtree\n  | EntryTag.CallsMtree\n  | EntryTag.ChannelsMtree\n  | EntryTag.ContractsMtree\n  | EntryTag.NameserviceMtree\n  | EntryTag.OraclesMtree;\n\nexport default function genWrappedField<T extends TagWrapping>(\n  tag: T,\n): {\n  serialize: (\n    // TODO: replace with `(EntParams & { tag: T })['payload']`,\n    //  but fix TS2502 value is referenced directly or indirectly in its own type annotation\n    value: any,\n    options: { packEntry: typeof packEntryType },\n  ) => Buffer;\n  deserialize: (\n    value: Buffer,\n    options: { unpackEntry: typeof unpackEntryType },\n    // TODO: replace with `(EntUnpacked & { tag: T })['payload']`,\n    //  TS2577 Return type annotation circularly references itself\n  ) => any;\n  recursiveType: true;\n} {\n  return {\n    serialize(payload, { packEntry }) {\n      return decode(packEntry({ tag, payload }));\n    },\n\n    deserialize(buffer, { unpackEntry }) {\n      return unpackEntry<TagWrapping>(encode(buffer, Encoding.Bytearray), tag).payload;\n    },\n\n    recursiveType: true,\n  };\n}\n","import SchemaTypes from '../SchemaTypes.js';\nimport abiVersion from '../field-types/abi-version.js';\nimport address, { idTagToEncoding } from '../field-types/address.js';\nimport array from '../field-types/array.js';\nimport boolean from '../field-types/boolean.js';\nimport coinAmount from '../field-types/coin-amount.js';\nimport ctVersion from '../field-types/ct-version.js';\nimport encoded from '../field-types/encoded.js';\nimport entry from '../field-types/entry.js';\nimport enumeration from '../field-types/enumeration.js';\nimport gasLimit from '../field-types/gas-limit.js';\nimport gasPrice from '../field-types/gas-price.js';\nimport map from '../field-types/map.js';\nimport mptree from '../field-types/mptree.js';\nimport pointers from '../field-types/pointers.js';\nimport raw from '../field-types/raw.js';\nimport shortUInt from '../field-types/short-u-int.js';\nimport shortUIntConst from '../field-types/short-u-int-const.js';\nimport string from '../field-types/string.js';\nimport uInt from '../field-types/u-int.js';\nimport wrapped from '../field-types/wrapped.js';\nimport { Encoded, Encoding } from '../../../utils/encoder.js';\nimport { EntryTag, CallReturnType } from './constants.js';\n\ninterface EntryMtreeValueArray {\n  serialize: (\n    value: Array<(EntParams & { tag: EntryTag.MtreeValue }) | Uint8Array | Encoded.Transaction>,\n  ) => Buffer[];\n  deserialize: (value: Buffer[]) => Array<EntUnpacked & { tag: EntryTag.MtreeValue }>;\n  recursiveType: true;\n}\n\nconst entryMtreeValueArray = array(entry(EntryTag.MtreeValue)) as unknown as EntryMtreeValueArray;\n\ninterface MapContracts {\n  serialize: (\n    value: Record<Encoded.ContractAddress, EntParams & { tag: EntryTag.Contract }>,\n  ) => Buffer;\n  deserialize: (\n    value: Buffer,\n  ) => Record<Encoded.ContractAddress, EntUnpacked & { tag: EntryTag.Contract }>;\n  recursiveType: true;\n}\n\nconst mapContracts = map(Encoding.ContractAddress, EntryTag.Contract) as unknown as MapContracts;\n\ninterface MapAccounts {\n  serialize: (\n    value: Record<Encoded.AccountAddress, EntParams & { tag: EntryTag.Account }>,\n  ) => Buffer;\n  deserialize: (\n    value: Buffer,\n  ) => Record<Encoded.AccountAddress, EntUnpacked & { tag: EntryTag.Account }>;\n  recursiveType: true;\n}\n\nconst mapAccounts = map(Encoding.AccountAddress, EntryTag.Account) as unknown as MapAccounts;\n\ninterface MapCalls {\n  serialize: (\n    value: Record<Encoded.Bytearray, EntParams & { tag: EntryTag.ContractCall }>,\n  ) => Buffer;\n  deserialize: (\n    value: Buffer,\n  ) => Record<Encoded.Bytearray, EntUnpacked & { tag: EntryTag.ContractCall }>;\n  recursiveType: true;\n}\n\nconst mapCalls = map(Encoding.Bytearray, EntryTag.ContractCall) as unknown as MapCalls;\n\ninterface MapChannels {\n  serialize: (value: Record<Encoded.Channel, EntParams & { tag: EntryTag.Channel }>) => Buffer;\n  deserialize: (value: Buffer) => Record<Encoded.Channel, EntUnpacked & { tag: EntryTag.Channel }>;\n  recursiveType: true;\n}\n\nconst mapChannels = map(Encoding.Channel, EntryTag.Channel) as unknown as MapChannels;\n\ninterface MapNames {\n  serialize: (value: Record<Encoded.Name, EntParams & { tag: EntryTag.Name }>) => Buffer;\n  deserialize: (value: Buffer) => Record<Encoded.Name, EntUnpacked & { tag: EntryTag.Name }>;\n  recursiveType: true;\n}\n\nconst mapNames = map(Encoding.Name, EntryTag.Name) as unknown as MapNames;\n\ninterface MapOracles {\n  serialize: (value: Record<Encoded.OracleAddress, EntParams & { tag: EntryTag.Oracle }>) => Buffer;\n  deserialize: (\n    value: Buffer,\n  ) => Record<Encoded.OracleAddress, EntUnpacked & { tag: EntryTag.Oracle }>;\n  recursiveType: true;\n}\n\nconst mapOracles = map(Encoding.OracleAddress, EntryTag.Oracle) as unknown as MapOracles;\n\n/**\n * @see {@link https://github.com/aeternity/protocol/blob/8a9d1d1206174627f6aaef86159dc9c643080653/contracts/fate.md#from-ceres-serialized-signature-data}\n */\nexport const schemas = [\n  {\n    tag: shortUIntConst(EntryTag.Account),\n    version: shortUIntConst(1),\n    nonce: shortUInt,\n    balance: uInt,\n  },\n  {\n    tag: shortUIntConst(EntryTag.Account),\n    version: shortUIntConst(2, true),\n    flags: uInt,\n    nonce: shortUInt,\n    balance: uInt,\n    gaContract: address(Encoding.ContractAddress, Encoding.Name),\n    gaAuthFun: encoded(Encoding.ContractBytearray),\n  },\n  {\n    tag: shortUIntConst(EntryTag.Name),\n    version: shortUIntConst(1, true),\n    accountId: address(Encoding.AccountAddress),\n    nameTtl: shortUInt,\n    status: raw,\n    /**\n     * a suggestion as to how long any clients should cache this information\n     */\n    clientTtl: shortUInt,\n    pointers,\n  },\n  {\n    tag: shortUIntConst(EntryTag.Contract),\n    version: shortUIntConst(1, true),\n    owner: address(Encoding.AccountAddress),\n    ctVersion,\n    code: encoded(Encoding.ContractBytearray),\n    log: encoded(Encoding.ContractBytearray),\n    active: boolean,\n    referers: array(address(Encoding.AccountAddress)),\n    deposit: coinAmount,\n  },\n  {\n    tag: shortUIntConst(EntryTag.ContractCall),\n    version: shortUIntConst(2, true),\n    callerId: address(Encoding.AccountAddress),\n    callerNonce: shortUInt,\n    height: shortUInt,\n    contractId: address(Encoding.ContractAddress),\n    // TODO: rename after resolving https://github.com/aeternity/protocol/issues/506\n    gasPrice: uInt,\n    gasUsed: shortUInt,\n    returnValue: encoded(Encoding.ContractBytearray),\n    returnType: enumeration(CallReturnType),\n    // TODO: add serialization for\n    //  <log> :: [ { <address> :: id, [ <topics> :: binary() }, <data> :: binary() } ]\n    log: array(raw),\n  },\n  {\n    tag: shortUIntConst(EntryTag.Oracle),\n    version: shortUIntConst(1, true),\n    accountId: address(Encoding.AccountAddress),\n    queryFormat: string,\n    responseFormat: string,\n    queryFee: coinAmount,\n    oracleTtlValue: shortUInt,\n    abiVersion,\n  },\n  {\n    tag: shortUIntConst(EntryTag.Channel),\n    version: shortUIntConst(3, true),\n    initiator: address(Encoding.AccountAddress),\n    responder: address(Encoding.AccountAddress),\n    channelAmount: uInt,\n    initiatorAmount: uInt,\n    responderAmount: uInt,\n    channelReserve: uInt,\n    initiatorDelegateIds: array(address(...idTagToEncoding)),\n    responderDelegateIds: array(address(...idTagToEncoding)),\n    stateHash: encoded(Encoding.State),\n    round: shortUInt,\n    soloRound: uInt,\n    lockPeriod: uInt,\n    lockedUntil: uInt,\n    initiatorAuth: encoded(Encoding.ContractBytearray),\n    responderAuth: encoded(Encoding.ContractBytearray),\n  },\n  {\n    tag: shortUIntConst(EntryTag.ChannelOffChainUpdateTransfer),\n    version: shortUIntConst(1, true),\n    from: address(Encoding.AccountAddress),\n    to: address(Encoding.AccountAddress),\n    amount: uInt,\n  },\n  {\n    tag: shortUIntConst(EntryTag.ChannelOffChainUpdateDeposit),\n    version: shortUIntConst(1, true),\n    from: address(Encoding.AccountAddress),\n    amount: uInt,\n  },\n  {\n    tag: shortUIntConst(EntryTag.ChannelOffChainUpdateWithdraw),\n    version: shortUIntConst(1, true),\n    from: address(Encoding.AccountAddress),\n    amount: uInt,\n  },\n  {\n    tag: shortUIntConst(EntryTag.ChannelOffChainUpdateCreateContract),\n    version: shortUIntConst(1, true),\n    owner: address(Encoding.AccountAddress),\n    ctVersion,\n    code: encoded(Encoding.ContractBytearray),\n    deposit: uInt,\n    callData: encoded(Encoding.ContractBytearray),\n  },\n  {\n    tag: shortUIntConst(EntryTag.ChannelOffChainUpdateCallContract),\n    version: shortUIntConst(1, true),\n    caller: address(Encoding.AccountAddress),\n    contract: address(Encoding.ContractAddress),\n    abiVersion,\n    amount: uInt,\n    callData: encoded(Encoding.ContractBytearray),\n    callStack: raw,\n    gasPrice,\n    gasLimit,\n  },\n  {\n    tag: shortUIntConst(EntryTag.TreesPoi),\n    version: shortUIntConst(1, true),\n    // TODO: inline an extra wrapping array after resolving https://github.com/aeternity/protocol/issues/505\n    accounts: array(mptree(Encoding.AccountAddress, EntryTag.Account)),\n    calls: array(mptree(Encoding.Bytearray, EntryTag.ContractCall)),\n    channels: array(mptree(Encoding.Channel, EntryTag.Channel)),\n    contracts: array(mptree(Encoding.ContractAddress, EntryTag.Contract)),\n    ns: array(mptree(Encoding.Name, EntryTag.Name)),\n    oracles: array(mptree(Encoding.OracleAddress, EntryTag.Oracle)),\n  },\n  {\n    tag: shortUIntConst(EntryTag.StateTrees),\n    version: shortUIntConst(0, true),\n    contracts: wrapped(EntryTag.ContractsMtree) as unknown as MapContracts,\n    calls: wrapped(EntryTag.CallsMtree) as unknown as MapCalls,\n    channels: wrapped(EntryTag.ChannelsMtree) as unknown as MapChannels,\n    ns: wrapped(EntryTag.NameserviceMtree) as unknown as MapNames,\n    oracles: wrapped(EntryTag.OraclesMtree) as unknown as MapOracles,\n    accounts: wrapped(EntryTag.AccountsMtree) as unknown as MapAccounts,\n  },\n  {\n    tag: shortUIntConst(EntryTag.Mtree),\n    version: shortUIntConst(1, true),\n    values: entryMtreeValueArray,\n  },\n  {\n    tag: shortUIntConst(EntryTag.MtreeValue),\n    version: shortUIntConst(1, true),\n    key: raw,\n    value: raw,\n  },\n  {\n    tag: shortUIntConst(EntryTag.ContractsMtree),\n    version: shortUIntConst(1, true),\n    payload: mapContracts,\n  },\n  {\n    tag: shortUIntConst(EntryTag.CallsMtree),\n    version: shortUIntConst(1, true),\n    payload: mapCalls,\n  },\n  {\n    tag: shortUIntConst(EntryTag.ChannelsMtree),\n    version: shortUIntConst(1, true),\n    payload: mapChannels,\n  },\n  {\n    tag: shortUIntConst(EntryTag.NameserviceMtree),\n    version: shortUIntConst(1, true),\n    payload: mapNames,\n  },\n  {\n    tag: shortUIntConst(EntryTag.OraclesMtree),\n    version: shortUIntConst(1, true),\n    payload: mapOracles,\n  },\n  {\n    tag: shortUIntConst(EntryTag.AccountsMtree),\n    version: shortUIntConst(1, true),\n    payload: mapAccounts,\n  },\n  {\n    tag: shortUIntConst(EntryTag.GaMetaTxAuthData),\n    version: shortUIntConst(1, true),\n    fee: coinAmount,\n    gasPrice,\n    txHash: encoded(Encoding.TxHash),\n  },\n] as const;\n\ntype Schemas = SchemaTypes<typeof schemas>;\nexport type EntParams = Schemas['TxParams'];\nexport type EntUnpacked = Schemas['TxUnpacked'];\n","import { Encoded, Encoding } from '../../../utils/encoder.js';\nimport { packRecord, unpackRecord } from '../common.js';\nimport { schemas } from './schema.js';\nimport { EntryTag } from './constants.js';\nimport { EntParams, EntUnpacked } from './schema.generated.js';\n\nconst encodingTag = [\n  [EntryTag.CallsMtree, Encoding.CallStateTree],\n  [EntryTag.StateTrees, Encoding.StateTrees],\n  [EntryTag.TreesPoi, Encoding.Poi],\n] as const;\n\nexport function packEntry(params: EntParams & { tag: EntryTag.CallsMtree }): Encoded.CallStateTree;\nexport function packEntry(params: EntParams & { tag: EntryTag.StateTrees }): Encoded.StateTrees;\nexport function packEntry(params: EntParams & { tag: EntryTag.TreesPoi }): Encoded.Poi;\n/**\n * Pack entry\n * @category entry builder\n * @param params - Params of entry\n * @returns Encoded entry\n */\nexport function packEntry(params: EntParams): Encoded.Any;\nexport function packEntry(params: EntParams): Encoded.Any {\n  const encoding = encodingTag.find(([tag]) => tag === params.tag)?.[1] ?? Encoding.Bytearray;\n  return packRecord(schemas, EntryTag, params, { packEntry }, encoding);\n}\n\nexport function unpackEntry(\n  encoded: Encoded.CallStateTree,\n): EntUnpacked & { tag: EntryTag.CallsMtree };\nexport function unpackEntry(\n  encoded: Encoded.StateTrees,\n): EntUnpacked & { tag: EntryTag.StateTrees };\nexport function unpackEntry(encoded: Encoded.Poi): EntUnpacked & { tag: EntryTag.TreesPoi };\n/**\n * Unpack entry\n * @category entry builder\n * @param encoded - Encoded entry\n * @param expectedTag - Expected entry type\n * @returns Params of entry\n */\nexport function unpackEntry<T extends EntryTag>(\n  encoded: Encoded.Any,\n  expectedTag?: T,\n): EntUnpacked & { tag: T };\nexport function unpackEntry(encoded: Encoded.Any, expectedTag?: EntryTag): EntUnpacked {\n  expectedTag ??= encodingTag.find(([, enc]) => encoded.startsWith(enc))?.[0];\n  return unpackRecord(schemas, EntryTag, encoded, expectedTag, { unpackEntry }) as any;\n}\n","import { decode, encode, Encoded, Encoding } from '../../utils/encoder.js';\nimport { hash } from '../../utils/crypto.js';\nimport { Field } from './field-types/interface.js';\nimport { txSchema } from './schema.js';\nimport { TxUnpacked, TxParams, TxParamsAsync } from './schema.generated.js';\nimport { Tag } from './constants.js';\nimport { buildContractId } from './helpers.js';\nimport { getSchema as getSchemaCommon, packRecord, unpackRecord } from './common.js';\nimport { ArgumentError } from '../../utils/errors.js';\nimport { packEntry, unpackEntry } from './entry/index.js';\n\n/**\n * JavaScript-based Transaction builder\n */\n\nexport function getSchema(tag: Tag, version?: number): Array<[string, Field]> {\n  return getSchemaCommon(txSchema, Tag, tag, version);\n}\n\ntype TxEncoding =\n  | Encoding.Transaction\n  | Encoding.Poi\n  | Encoding.StateTrees\n  | Encoding.CallStateTree;\n\n/**\n * Build transaction\n * @category transaction builder\n * @param params - Transaction params\n */\nexport function buildTx(params: TxParams): Encoded.Transaction {\n  return packRecord(\n    txSchema,\n    Tag,\n    params,\n    {\n      // eslint-disable-next-line @typescript-eslint/no-use-before-define\n      unpackTx,\n      buildTx,\n      rebuildTx: (overrideParams: any) => buildTx({ ...params, ...overrideParams }),\n      packEntry,\n    },\n    Encoding.Transaction,\n  );\n}\n\nexport type BuildTxOptions<TxType extends Tag, OmitFields extends string> = Omit<\n  TxParamsAsync & { tag: TxType },\n  'tag' | OmitFields\n>;\n\n// TODO: require onNode because it is the only reason this builder is async [breaking change]\n/**\n * Build transaction async (may request node for additional data)\n * @category transaction builder\n * @param params - Transaction params\n * @returns tx_-encoded transaction\n */\nexport async function buildTxAsync(params: TxParamsAsync): Promise<Encoded.Transaction> {\n  await Promise.all(\n    getSchema(params.tag, params.version).map(async ([key, field]) => {\n      if (field.prepare == null) return;\n      // @ts-expect-error the type of `params[key]` can't be determined accurately\n      params[key] = await field.prepare(params[key], params, params);\n    }),\n  );\n\n  // @ts-expect-error after preparation properties should be compatible with sync tx builder\n  return buildTx(params);\n}\n\n/**\n * Unpack transaction encoded as string\n * @category transaction builder\n * @param encodedTx - Encoded transaction\n * @param txType - Expected transaction type\n * @returns Transaction params\n */\nexport function unpackTx<TxType extends Tag>(\n  encodedTx: Encoded.Generic<TxEncoding>,\n  txType?: TxType,\n): TxUnpacked & { tag: TxType } {\n  return unpackRecord(txSchema, Tag, encodedTx, txType, { unpackTx, unpackEntry }) as any;\n}\n\n/**\n * Build a transaction hash\n * @category transaction builder\n * @param rawTx - base64 or rlp encoded transaction\n * @returns Transaction hash\n */\nexport function buildTxHash(rawTx: Encoded.Transaction | Uint8Array): Encoded.TxHash {\n  const data = typeof rawTx === 'string' && rawTx.startsWith('tx_') ? decode(rawTx) : rawTx;\n  return encode(hash(data), Encoding.TxHash);\n}\n\n/**\n * Build a contract public key by contractCreateTx, gaAttach or signedTx\n * @category contract\n * @param contractTx - Transaction\n * @returns Contract public key\n */\nexport function buildContractIdByContractTx(\n  contractTx: Encoded.Transaction,\n): Encoded.ContractAddress {\n  let params = unpackTx(contractTx);\n  if (Tag.SignedTx === params.tag) params = params.encodedTx;\n  if (Tag.ContractCreateTx !== params.tag && Tag.GaAttachTx !== params.tag) {\n    throw new ArgumentError('contractTx', 'a contractCreateTx or gaAttach', params.tag);\n  }\n  return buildContractId(params.ownerId, params.nonce);\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n/**\n * Encodes a string in base64 format.\n * @param value - the string to encode\n * @internal\n */\nexport function encodeString(value) {\n    return btoa(value);\n}\n/**\n * Encodes a byte array in base64 format.\n * @param value - the Uint8Aray to encode\n * @internal\n */\nexport function encodeByteArray(value) {\n    let str = \"\";\n    for (let i = 0; i < value.length; i++) {\n        str += String.fromCharCode(value[i]);\n    }\n    return btoa(str);\n}\n/**\n * Decodes a base64 string into a byte array.\n * @param value - the base64 string to decode\n * @internal\n */\nexport function decodeString(value) {\n    const byteString = atob(value);\n    const arr = new Uint8Array(byteString.length);\n    for (let i = 0; i < byteString.length; i++) {\n        arr[i] = byteString.charCodeAt(i);\n    }\n    return arr;\n}\n/**\n * Decodes a base64 string into a string.\n * @param value - the base64 string to decode\n * @internal\n */\nexport function decodeStringToString(value) {\n    return atob(value);\n}\n//# sourceMappingURL=base64-browser.mjs.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n/**\n * Default key used to access the XML attributes.\n */\nexport const XML_ATTRKEY = \"$\";\n/**\n * Default key used to access the XML value content.\n */\nexport const XML_CHARKEY = \"_\";\n//# sourceMappingURL=interfaces.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n/**\n * A type guard for a primitive response body.\n * @param value - Value to test\n *\n * @internal\n */\nexport function isPrimitiveBody(value, mapperTypeName) {\n    return (mapperTypeName !== \"Composite\" &&\n        mapperTypeName !== \"Dictionary\" &&\n        (typeof value === \"string\" ||\n            typeof value === \"number\" ||\n            typeof value === \"boolean\" ||\n            (mapperTypeName === null || mapperTypeName === void 0 ? void 0 : mapperTypeName.match(/^(Date|DateTime|DateTimeRfc1123|UnixTime|ByteArray|Base64Url)$/i)) !==\n                null ||\n            value === undefined ||\n            value === null));\n}\nconst validateISODuration = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n/**\n * Returns true if the given string is in ISO 8601 format.\n * @param value - The value to be validated for ISO 8601 duration format.\n * @internal\n */\nexport function isDuration(value) {\n    return validateISODuration.test(value);\n}\nconst validUuidRegex = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/i;\n/**\n * Returns true if the provided uuid is valid.\n *\n * @param uuid - The uuid that needs to be validated.\n *\n * @internal\n */\nexport function isValidUuid(uuid) {\n    return validUuidRegex.test(uuid);\n}\n/**\n * Maps the response as follows:\n * - wraps the response body if needed (typically if its type is primitive).\n * - returns null if the combination of the headers and the body is empty.\n * - otherwise, returns the combination of the headers and the body.\n *\n * @param responseObject - a representation of the parsed response\n * @returns the response that will be returned to the user which can be null and/or wrapped\n *\n * @internal\n */\nfunction handleNullableResponseAndWrappableBody(responseObject) {\n    const combinedHeadersAndBody = Object.assign(Object.assign({}, responseObject.headers), responseObject.body);\n    if (responseObject.hasNullableType &&\n        Object.getOwnPropertyNames(combinedHeadersAndBody).length === 0) {\n        return responseObject.shouldWrapBody ? { body: null } : null;\n    }\n    else {\n        return responseObject.shouldWrapBody\n            ? Object.assign(Object.assign({}, responseObject.headers), { body: responseObject.body }) : combinedHeadersAndBody;\n    }\n}\n/**\n * Take a `FullOperationResponse` and turn it into a flat\n * response object to hand back to the consumer.\n * @param fullResponse - The processed response from the operation request\n * @param responseSpec - The response map from the OperationSpec\n *\n * @internal\n */\nexport function flattenResponse(fullResponse, responseSpec) {\n    var _a, _b;\n    const parsedHeaders = fullResponse.parsedHeaders;\n    // head methods never have a body, but we return a boolean set to body property\n    // to indicate presence/absence of the resource\n    if (fullResponse.request.method === \"HEAD\") {\n        return Object.assign(Object.assign({}, parsedHeaders), { body: fullResponse.parsedBody });\n    }\n    const bodyMapper = responseSpec && responseSpec.bodyMapper;\n    const isNullable = Boolean(bodyMapper === null || bodyMapper === void 0 ? void 0 : bodyMapper.nullable);\n    const expectedBodyTypeName = bodyMapper === null || bodyMapper === void 0 ? void 0 : bodyMapper.type.name;\n    /** If the body is asked for, we look at the expected body type to handle it */\n    if (expectedBodyTypeName === \"Stream\") {\n        return Object.assign(Object.assign({}, parsedHeaders), { blobBody: fullResponse.blobBody, readableStreamBody: fullResponse.readableStreamBody });\n    }\n    const modelProperties = (expectedBodyTypeName === \"Composite\" &&\n        bodyMapper.type.modelProperties) ||\n        {};\n    const isPageableResponse = Object.keys(modelProperties).some((k) => modelProperties[k].serializedName === \"\");\n    if (expectedBodyTypeName === \"Sequence\" || isPageableResponse) {\n        const arrayResponse = (_a = fullResponse.parsedBody) !== null && _a !== void 0 ? _a : [];\n        for (const key of Object.keys(modelProperties)) {\n            if (modelProperties[key].serializedName) {\n                arrayResponse[key] = (_b = fullResponse.parsedBody) === null || _b === void 0 ? void 0 : _b[key];\n            }\n        }\n        if (parsedHeaders) {\n            for (const key of Object.keys(parsedHeaders)) {\n                arrayResponse[key] = parsedHeaders[key];\n            }\n        }\n        return isNullable &&\n            !fullResponse.parsedBody &&\n            !parsedHeaders &&\n            Object.getOwnPropertyNames(modelProperties).length === 0\n            ? null\n            : arrayResponse;\n    }\n    return handleNullableResponseAndWrappableBody({\n        body: fullResponse.parsedBody,\n        headers: parsedHeaders,\n        hasNullableType: isNullable,\n        shouldWrapBody: isPrimitiveBody(fullResponse.parsedBody, expectedBodyTypeName),\n    });\n}\n//# sourceMappingURL=utils.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport * as base64 from \"./base64.js\";\nimport { XML_ATTRKEY, XML_CHARKEY } from \"./interfaces.js\";\nimport { isDuration, isValidUuid } from \"./utils.js\";\nclass SerializerImpl {\n    constructor(modelMappers = {}, isXML = false) {\n        this.modelMappers = modelMappers;\n        this.isXML = isXML;\n    }\n    /**\n     * @deprecated Removing the constraints validation on client side.\n     */\n    validateConstraints(mapper, value, objectName) {\n        const failValidation = (constraintName, constraintValue) => {\n            throw new Error(`\"${objectName}\" with value \"${value}\" should satisfy the constraint \"${constraintName}\": ${constraintValue}.`);\n        };\n        if (mapper.constraints && value !== undefined && value !== null) {\n            const { ExclusiveMaximum, ExclusiveMinimum, InclusiveMaximum, InclusiveMinimum, MaxItems, MaxLength, MinItems, MinLength, MultipleOf, Pattern, UniqueItems, } = mapper.constraints;\n            if (ExclusiveMaximum !== undefined && value >= ExclusiveMaximum) {\n                failValidation(\"ExclusiveMaximum\", ExclusiveMaximum);\n            }\n            if (ExclusiveMinimum !== undefined && value <= ExclusiveMinimum) {\n                failValidation(\"ExclusiveMinimum\", ExclusiveMinimum);\n            }\n            if (InclusiveMaximum !== undefined && value > InclusiveMaximum) {\n                failValidation(\"InclusiveMaximum\", InclusiveMaximum);\n            }\n            if (InclusiveMinimum !== undefined && value < InclusiveMinimum) {\n                failValidation(\"InclusiveMinimum\", InclusiveMinimum);\n            }\n            if (MaxItems !== undefined && value.length > MaxItems) {\n                failValidation(\"MaxItems\", MaxItems);\n            }\n            if (MaxLength !== undefined && value.length > MaxLength) {\n                failValidation(\"MaxLength\", MaxLength);\n            }\n            if (MinItems !== undefined && value.length < MinItems) {\n                failValidation(\"MinItems\", MinItems);\n            }\n            if (MinLength !== undefined && value.length < MinLength) {\n                failValidation(\"MinLength\", MinLength);\n            }\n            if (MultipleOf !== undefined && value % MultipleOf !== 0) {\n                failValidation(\"MultipleOf\", MultipleOf);\n            }\n            if (Pattern) {\n                const pattern = typeof Pattern === \"string\" ? new RegExp(Pattern) : Pattern;\n                if (typeof value !== \"string\" || value.match(pattern) === null) {\n                    failValidation(\"Pattern\", Pattern);\n                }\n            }\n            if (UniqueItems &&\n                value.some((item, i, ar) => ar.indexOf(item) !== i)) {\n                failValidation(\"UniqueItems\", UniqueItems);\n            }\n        }\n    }\n    /**\n     * Serialize the given object based on its metadata defined in the mapper\n     *\n     * @param mapper - The mapper which defines the metadata of the serializable object\n     *\n     * @param object - A valid Javascript object to be serialized\n     *\n     * @param objectName - Name of the serialized object\n     *\n     * @param options - additional options to serialization\n     *\n     * @returns A valid serialized Javascript object\n     */\n    serialize(mapper, object, objectName, options = { xml: {} }) {\n        var _a, _b, _c;\n        const updatedOptions = {\n            xml: {\n                rootName: (_a = options.xml.rootName) !== null && _a !== void 0 ? _a : \"\",\n                includeRoot: (_b = options.xml.includeRoot) !== null && _b !== void 0 ? _b : false,\n                xmlCharKey: (_c = options.xml.xmlCharKey) !== null && _c !== void 0 ? _c : XML_CHARKEY,\n            },\n        };\n        let payload = {};\n        const mapperType = mapper.type.name;\n        if (!objectName) {\n            objectName = mapper.serializedName;\n        }\n        if (mapperType.match(/^Sequence$/i) !== null) {\n            payload = [];\n        }\n        if (mapper.isConstant) {\n            object = mapper.defaultValue;\n        }\n        // This table of allowed values should help explain\n        // the mapper.required and mapper.nullable properties.\n        // X means \"neither undefined or null are allowed\".\n        //           || required\n        //           || true      | false\n        //  nullable || ==========================\n        //      true || null      | undefined/null\n        //     false || X         | undefined\n        // undefined || X         | undefined/null\n        const { required, nullable } = mapper;\n        if (required && nullable && object === undefined) {\n            throw new Error(`${objectName} cannot be undefined.`);\n        }\n        if (required && !nullable && (object === undefined || object === null)) {\n            throw new Error(`${objectName} cannot be null or undefined.`);\n        }\n        if (!required && nullable === false && object === null) {\n            throw new Error(`${objectName} cannot be null.`);\n        }\n        if (object === undefined || object === null) {\n            payload = object;\n        }\n        else {\n            if (mapperType.match(/^any$/i) !== null) {\n                payload = object;\n            }\n            else if (mapperType.match(/^(Number|String|Boolean|Object|Stream|Uuid)$/i) !== null) {\n                payload = serializeBasicTypes(mapperType, objectName, object);\n            }\n            else if (mapperType.match(/^Enum$/i) !== null) {\n                const enumMapper = mapper;\n                payload = serializeEnumType(objectName, enumMapper.type.allowedValues, object);\n            }\n            else if (mapperType.match(/^(Date|DateTime|TimeSpan|DateTimeRfc1123|UnixTime)$/i) !== null) {\n                payload = serializeDateTypes(mapperType, object, objectName);\n            }\n            else if (mapperType.match(/^ByteArray$/i) !== null) {\n                payload = serializeByteArrayType(objectName, object);\n            }\n            else if (mapperType.match(/^Base64Url$/i) !== null) {\n                payload = serializeBase64UrlType(objectName, object);\n            }\n            else if (mapperType.match(/^Sequence$/i) !== null) {\n                payload = serializeSequenceType(this, mapper, object, objectName, Boolean(this.isXML), updatedOptions);\n            }\n            else if (mapperType.match(/^Dictionary$/i) !== null) {\n                payload = serializeDictionaryType(this, mapper, object, objectName, Boolean(this.isXML), updatedOptions);\n            }\n            else if (mapperType.match(/^Composite$/i) !== null) {\n                payload = serializeCompositeType(this, mapper, object, objectName, Boolean(this.isXML), updatedOptions);\n            }\n        }\n        return payload;\n    }\n    /**\n     * Deserialize the given object based on its metadata defined in the mapper\n     *\n     * @param mapper - The mapper which defines the metadata of the serializable object\n     *\n     * @param responseBody - A valid Javascript entity to be deserialized\n     *\n     * @param objectName - Name of the deserialized object\n     *\n     * @param options - Controls behavior of XML parser and builder.\n     *\n     * @returns A valid deserialized Javascript object\n     */\n    deserialize(mapper, responseBody, objectName, options = { xml: {} }) {\n        var _a, _b, _c, _d;\n        const updatedOptions = {\n            xml: {\n                rootName: (_a = options.xml.rootName) !== null && _a !== void 0 ? _a : \"\",\n                includeRoot: (_b = options.xml.includeRoot) !== null && _b !== void 0 ? _b : false,\n                xmlCharKey: (_c = options.xml.xmlCharKey) !== null && _c !== void 0 ? _c : XML_CHARKEY,\n            },\n            ignoreUnknownProperties: (_d = options.ignoreUnknownProperties) !== null && _d !== void 0 ? _d : false,\n        };\n        if (responseBody === undefined || responseBody === null) {\n            if (this.isXML && mapper.type.name === \"Sequence\" && !mapper.xmlIsWrapped) {\n                // Edge case for empty XML non-wrapped lists. xml2js can't distinguish\n                // between the list being empty versus being missing,\n                // so let's do the more user-friendly thing and return an empty list.\n                responseBody = [];\n            }\n            // specifically check for undefined as default value can be a falsey value `0, \"\", false, null`\n            if (mapper.defaultValue !== undefined) {\n                responseBody = mapper.defaultValue;\n            }\n            return responseBody;\n        }\n        let payload;\n        const mapperType = mapper.type.name;\n        if (!objectName) {\n            objectName = mapper.serializedName;\n        }\n        if (mapperType.match(/^Composite$/i) !== null) {\n            payload = deserializeCompositeType(this, mapper, responseBody, objectName, updatedOptions);\n        }\n        else {\n            if (this.isXML) {\n                const xmlCharKey = updatedOptions.xml.xmlCharKey;\n                /**\n                 * If the mapper specifies this as a non-composite type value but the responseBody contains\n                 * both header (\"$\" i.e., XML_ATTRKEY) and body (\"#\" i.e., XML_CHARKEY) properties,\n                 * then just reduce the responseBody value to the body (\"#\" i.e., XML_CHARKEY) property.\n                 */\n                if (responseBody[XML_ATTRKEY] !== undefined && responseBody[xmlCharKey] !== undefined) {\n                    responseBody = responseBody[xmlCharKey];\n                }\n            }\n            if (mapperType.match(/^Number$/i) !== null) {\n                payload = parseFloat(responseBody);\n                if (isNaN(payload)) {\n                    payload = responseBody;\n                }\n            }\n            else if (mapperType.match(/^Boolean$/i) !== null) {\n                if (responseBody === \"true\") {\n                    payload = true;\n                }\n                else if (responseBody === \"false\") {\n                    payload = false;\n                }\n                else {\n                    payload = responseBody;\n                }\n            }\n            else if (mapperType.match(/^(String|Enum|Object|Stream|Uuid|TimeSpan|any)$/i) !== null) {\n                payload = responseBody;\n            }\n            else if (mapperType.match(/^(Date|DateTime|DateTimeRfc1123)$/i) !== null) {\n                payload = new Date(responseBody);\n            }\n            else if (mapperType.match(/^UnixTime$/i) !== null) {\n                payload = unixTimeToDate(responseBody);\n            }\n            else if (mapperType.match(/^ByteArray$/i) !== null) {\n                payload = base64.decodeString(responseBody);\n            }\n            else if (mapperType.match(/^Base64Url$/i) !== null) {\n                payload = base64UrlToByteArray(responseBody);\n            }\n            else if (mapperType.match(/^Sequence$/i) !== null) {\n                payload = deserializeSequenceType(this, mapper, responseBody, objectName, updatedOptions);\n            }\n            else if (mapperType.match(/^Dictionary$/i) !== null) {\n                payload = deserializeDictionaryType(this, mapper, responseBody, objectName, updatedOptions);\n            }\n        }\n        if (mapper.isConstant) {\n            payload = mapper.defaultValue;\n        }\n        return payload;\n    }\n}\n/**\n * Method that creates and returns a Serializer.\n * @param modelMappers - Known models to map\n * @param isXML - If XML should be supported\n */\nexport function createSerializer(modelMappers = {}, isXML = false) {\n    return new SerializerImpl(modelMappers, isXML);\n}\nfunction trimEnd(str, ch) {\n    let len = str.length;\n    while (len - 1 >= 0 && str[len - 1] === ch) {\n        --len;\n    }\n    return str.substr(0, len);\n}\nfunction bufferToBase64Url(buffer) {\n    if (!buffer) {\n        return undefined;\n    }\n    if (!(buffer instanceof Uint8Array)) {\n        throw new Error(`Please provide an input of type Uint8Array for converting to Base64Url.`);\n    }\n    // Uint8Array to Base64.\n    const str = base64.encodeByteArray(buffer);\n    // Base64 to Base64Url.\n    return trimEnd(str, \"=\").replace(/\\+/g, \"-\").replace(/\\//g, \"_\");\n}\nfunction base64UrlToByteArray(str) {\n    if (!str) {\n        return undefined;\n    }\n    if (str && typeof str.valueOf() !== \"string\") {\n        throw new Error(\"Please provide an input of type string for converting to Uint8Array\");\n    }\n    // Base64Url to Base64.\n    str = str.replace(/-/g, \"+\").replace(/_/g, \"/\");\n    // Base64 to Uint8Array.\n    return base64.decodeString(str);\n}\nfunction splitSerializeName(prop) {\n    const classes = [];\n    let partialclass = \"\";\n    if (prop) {\n        const subwords = prop.split(\".\");\n        for (const item of subwords) {\n            if (item.charAt(item.length - 1) === \"\\\\\") {\n                partialclass += item.substr(0, item.length - 1) + \".\";\n            }\n            else {\n                partialclass += item;\n                classes.push(partialclass);\n                partialclass = \"\";\n            }\n        }\n    }\n    return classes;\n}\nfunction dateToUnixTime(d) {\n    if (!d) {\n        return undefined;\n    }\n    if (typeof d.valueOf() === \"string\") {\n        d = new Date(d);\n    }\n    return Math.floor(d.getTime() / 1000);\n}\nfunction unixTimeToDate(n) {\n    if (!n) {\n        return undefined;\n    }\n    return new Date(n * 1000);\n}\nfunction serializeBasicTypes(typeName, objectName, value) {\n    if (value !== null && value !== undefined) {\n        if (typeName.match(/^Number$/i) !== null) {\n            if (typeof value !== \"number\") {\n                throw new Error(`${objectName} with value ${value} must be of type number.`);\n            }\n        }\n        else if (typeName.match(/^String$/i) !== null) {\n            if (typeof value.valueOf() !== \"string\") {\n                throw new Error(`${objectName} with value \"${value}\" must be of type string.`);\n            }\n        }\n        else if (typeName.match(/^Uuid$/i) !== null) {\n            if (!(typeof value.valueOf() === \"string\" && isValidUuid(value))) {\n                throw new Error(`${objectName} with value \"${value}\" must be of type string and a valid uuid.`);\n            }\n        }\n        else if (typeName.match(/^Boolean$/i) !== null) {\n            if (typeof value !== \"boolean\") {\n                throw new Error(`${objectName} with value ${value} must be of type boolean.`);\n            }\n        }\n        else if (typeName.match(/^Stream$/i) !== null) {\n            const objectType = typeof value;\n            if (objectType !== \"string\" &&\n                typeof value.pipe !== \"function\" && // NodeJS.ReadableStream\n                typeof value.tee !== \"function\" && // browser ReadableStream\n                !(value instanceof ArrayBuffer) &&\n                !ArrayBuffer.isView(value) &&\n                // File objects count as a type of Blob, so we want to use instanceof explicitly\n                !((typeof Blob === \"function\" || typeof Blob === \"object\") && value instanceof Blob) &&\n                objectType !== \"function\") {\n                throw new Error(`${objectName} must be a string, Blob, ArrayBuffer, ArrayBufferView, ReadableStream, or () => ReadableStream.`);\n            }\n        }\n    }\n    return value;\n}\nfunction serializeEnumType(objectName, allowedValues, value) {\n    if (!allowedValues) {\n        throw new Error(`Please provide a set of allowedValues to validate ${objectName} as an Enum Type.`);\n    }\n    const isPresent = allowedValues.some((item) => {\n        if (typeof item.valueOf() === \"string\") {\n            return item.toLowerCase() === value.toLowerCase();\n        }\n        return item === value;\n    });\n    if (!isPresent) {\n        throw new Error(`${value} is not a valid value for ${objectName}. The valid values are: ${JSON.stringify(allowedValues)}.`);\n    }\n    return value;\n}\nfunction serializeByteArrayType(objectName, value) {\n    if (value !== undefined && value !== null) {\n        if (!(value instanceof Uint8Array)) {\n            throw new Error(`${objectName} must be of type Uint8Array.`);\n        }\n        value = base64.encodeByteArray(value);\n    }\n    return value;\n}\nfunction serializeBase64UrlType(objectName, value) {\n    if (value !== undefined && value !== null) {\n        if (!(value instanceof Uint8Array)) {\n            throw new Error(`${objectName} must be of type Uint8Array.`);\n        }\n        value = bufferToBase64Url(value);\n    }\n    return value;\n}\nfunction serializeDateTypes(typeName, value, objectName) {\n    if (value !== undefined && value !== null) {\n        if (typeName.match(/^Date$/i) !== null) {\n            if (!(value instanceof Date ||\n                (typeof value.valueOf() === \"string\" && !isNaN(Date.parse(value))))) {\n                throw new Error(`${objectName} must be an instanceof Date or a string in ISO8601 format.`);\n            }\n            value =\n                value instanceof Date\n                    ? value.toISOString().substring(0, 10)\n                    : new Date(value).toISOString().substring(0, 10);\n        }\n        else if (typeName.match(/^DateTime$/i) !== null) {\n            if (!(value instanceof Date ||\n                (typeof value.valueOf() === \"string\" && !isNaN(Date.parse(value))))) {\n                throw new Error(`${objectName} must be an instanceof Date or a string in ISO8601 format.`);\n            }\n            value = value instanceof Date ? value.toISOString() : new Date(value).toISOString();\n        }\n        else if (typeName.match(/^DateTimeRfc1123$/i) !== null) {\n            if (!(value instanceof Date ||\n                (typeof value.valueOf() === \"string\" && !isNaN(Date.parse(value))))) {\n                throw new Error(`${objectName} must be an instanceof Date or a string in RFC-1123 format.`);\n            }\n            value = value instanceof Date ? value.toUTCString() : new Date(value).toUTCString();\n        }\n        else if (typeName.match(/^UnixTime$/i) !== null) {\n            if (!(value instanceof Date ||\n                (typeof value.valueOf() === \"string\" && !isNaN(Date.parse(value))))) {\n                throw new Error(`${objectName} must be an instanceof Date or a string in RFC-1123/ISO8601 format ` +\n                    `for it to be serialized in UnixTime/Epoch format.`);\n            }\n            value = dateToUnixTime(value);\n        }\n        else if (typeName.match(/^TimeSpan$/i) !== null) {\n            if (!isDuration(value)) {\n                throw new Error(`${objectName} must be a string in ISO 8601 format. Instead was \"${value}\".`);\n            }\n        }\n    }\n    return value;\n}\nfunction serializeSequenceType(serializer, mapper, object, objectName, isXml, options) {\n    var _a;\n    if (!Array.isArray(object)) {\n        throw new Error(`${objectName} must be of type Array.`);\n    }\n    let elementType = mapper.type.element;\n    if (!elementType || typeof elementType !== \"object\") {\n        throw new Error(`element\" metadata for an Array must be defined in the ` +\n            `mapper and it must of type \"object\" in ${objectName}.`);\n    }\n    // Quirk: Composite mappers referenced by `element` might\n    // not have *all* properties declared (like uberParent),\n    // so let's try to look up the full definition by name.\n    if (elementType.type.name === \"Composite\" && elementType.type.className) {\n        elementType = (_a = serializer.modelMappers[elementType.type.className]) !== null && _a !== void 0 ? _a : elementType;\n    }\n    const tempArray = [];\n    for (let i = 0; i < object.length; i++) {\n        const serializedValue = serializer.serialize(elementType, object[i], objectName, options);\n        if (isXml && elementType.xmlNamespace) {\n            const xmlnsKey = elementType.xmlNamespacePrefix\n                ? `xmlns:${elementType.xmlNamespacePrefix}`\n                : \"xmlns\";\n            if (elementType.type.name === \"Composite\") {\n                tempArray[i] = Object.assign({}, serializedValue);\n                tempArray[i][XML_ATTRKEY] = { [xmlnsKey]: elementType.xmlNamespace };\n            }\n            else {\n                tempArray[i] = {};\n                tempArray[i][options.xml.xmlCharKey] = serializedValue;\n                tempArray[i][XML_ATTRKEY] = { [xmlnsKey]: elementType.xmlNamespace };\n            }\n        }\n        else {\n            tempArray[i] = serializedValue;\n        }\n    }\n    return tempArray;\n}\nfunction serializeDictionaryType(serializer, mapper, object, objectName, isXml, options) {\n    if (typeof object !== \"object\") {\n        throw new Error(`${objectName} must be of type object.`);\n    }\n    const valueType = mapper.type.value;\n    if (!valueType || typeof valueType !== \"object\") {\n        throw new Error(`\"value\" metadata for a Dictionary must be defined in the ` +\n            `mapper and it must of type \"object\" in ${objectName}.`);\n    }\n    const tempDictionary = {};\n    for (const key of Object.keys(object)) {\n        const serializedValue = serializer.serialize(valueType, object[key], objectName, options);\n        // If the element needs an XML namespace we need to add it within the $ property\n        tempDictionary[key] = getXmlObjectValue(valueType, serializedValue, isXml, options);\n    }\n    // Add the namespace to the root element if needed\n    if (isXml && mapper.xmlNamespace) {\n        const xmlnsKey = mapper.xmlNamespacePrefix ? `xmlns:${mapper.xmlNamespacePrefix}` : \"xmlns\";\n        const result = tempDictionary;\n        result[XML_ATTRKEY] = { [xmlnsKey]: mapper.xmlNamespace };\n        return result;\n    }\n    return tempDictionary;\n}\n/**\n * Resolves the additionalProperties property from a referenced mapper\n * @param serializer - the serializer containing the entire set of mappers\n * @param mapper - the composite mapper to resolve\n * @param objectName - name of the object being serialized\n */\nfunction resolveAdditionalProperties(serializer, mapper, objectName) {\n    const additionalProperties = mapper.type.additionalProperties;\n    if (!additionalProperties && mapper.type.className) {\n        const modelMapper = resolveReferencedMapper(serializer, mapper, objectName);\n        return modelMapper === null || modelMapper === void 0 ? void 0 : modelMapper.type.additionalProperties;\n    }\n    return additionalProperties;\n}\n/**\n * Finds the mapper referenced by className\n * @param serializer - the serializer containing the entire set of mappers\n * @param mapper - the composite mapper to resolve\n * @param objectName - name of the object being serialized\n */\nfunction resolveReferencedMapper(serializer, mapper, objectName) {\n    const className = mapper.type.className;\n    if (!className) {\n        throw new Error(`Class name for model \"${objectName}\" is not provided in the mapper \"${JSON.stringify(mapper, undefined, 2)}\".`);\n    }\n    return serializer.modelMappers[className];\n}\n/**\n * Resolves a composite mapper's modelProperties.\n * @param serializer - the serializer containing the entire set of mappers\n * @param mapper - the composite mapper to resolve\n */\nfunction resolveModelProperties(serializer, mapper, objectName) {\n    let modelProps = mapper.type.modelProperties;\n    if (!modelProps) {\n        const modelMapper = resolveReferencedMapper(serializer, mapper, objectName);\n        if (!modelMapper) {\n            throw new Error(`mapper() cannot be null or undefined for model \"${mapper.type.className}\".`);\n        }\n        modelProps = modelMapper === null || modelMapper === void 0 ? void 0 : modelMapper.type.modelProperties;\n        if (!modelProps) {\n            throw new Error(`modelProperties cannot be null or undefined in the ` +\n                `mapper \"${JSON.stringify(modelMapper)}\" of type \"${mapper.type.className}\" for object \"${objectName}\".`);\n        }\n    }\n    return modelProps;\n}\nfunction serializeCompositeType(serializer, mapper, object, objectName, isXml, options) {\n    if (getPolymorphicDiscriminatorRecursively(serializer, mapper)) {\n        mapper = getPolymorphicMapper(serializer, mapper, object, \"clientName\");\n    }\n    if (object !== undefined && object !== null) {\n        const payload = {};\n        const modelProps = resolveModelProperties(serializer, mapper, objectName);\n        for (const key of Object.keys(modelProps)) {\n            const propertyMapper = modelProps[key];\n            if (propertyMapper.readOnly) {\n                continue;\n            }\n            let propName;\n            let parentObject = payload;\n            if (serializer.isXML) {\n                if (propertyMapper.xmlIsWrapped) {\n                    propName = propertyMapper.xmlName;\n                }\n                else {\n                    propName = propertyMapper.xmlElementName || propertyMapper.xmlName;\n                }\n            }\n            else {\n                const paths = splitSerializeName(propertyMapper.serializedName);\n                propName = paths.pop();\n                for (const pathName of paths) {\n                    const childObject = parentObject[pathName];\n                    if ((childObject === undefined || childObject === null) &&\n                        ((object[key] !== undefined && object[key] !== null) ||\n                            propertyMapper.defaultValue !== undefined)) {\n                        parentObject[pathName] = {};\n                    }\n                    parentObject = parentObject[pathName];\n                }\n            }\n            if (parentObject !== undefined && parentObject !== null) {\n                if (isXml && mapper.xmlNamespace) {\n                    const xmlnsKey = mapper.xmlNamespacePrefix\n                        ? `xmlns:${mapper.xmlNamespacePrefix}`\n                        : \"xmlns\";\n                    parentObject[XML_ATTRKEY] = Object.assign(Object.assign({}, parentObject[XML_ATTRKEY]), { [xmlnsKey]: mapper.xmlNamespace });\n                }\n                const propertyObjectName = propertyMapper.serializedName !== \"\"\n                    ? objectName + \".\" + propertyMapper.serializedName\n                    : objectName;\n                let toSerialize = object[key];\n                const polymorphicDiscriminator = getPolymorphicDiscriminatorRecursively(serializer, mapper);\n                if (polymorphicDiscriminator &&\n                    polymorphicDiscriminator.clientName === key &&\n                    (toSerialize === undefined || toSerialize === null)) {\n                    toSerialize = mapper.serializedName;\n                }\n                const serializedValue = serializer.serialize(propertyMapper, toSerialize, propertyObjectName, options);\n                if (serializedValue !== undefined && propName !== undefined && propName !== null) {\n                    const value = getXmlObjectValue(propertyMapper, serializedValue, isXml, options);\n                    if (isXml && propertyMapper.xmlIsAttribute) {\n                        // XML_ATTRKEY, i.e., $ is the key attributes are kept under in xml2js.\n                        // This keeps things simple while preventing name collision\n                        // with names in user documents.\n                        parentObject[XML_ATTRKEY] = parentObject[XML_ATTRKEY] || {};\n                        parentObject[XML_ATTRKEY][propName] = serializedValue;\n                    }\n                    else if (isXml && propertyMapper.xmlIsWrapped) {\n                        parentObject[propName] = { [propertyMapper.xmlElementName]: value };\n                    }\n                    else {\n                        parentObject[propName] = value;\n                    }\n                }\n            }\n        }\n        const additionalPropertiesMapper = resolveAdditionalProperties(serializer, mapper, objectName);\n        if (additionalPropertiesMapper) {\n            const propNames = Object.keys(modelProps);\n            for (const clientPropName in object) {\n                const isAdditionalProperty = propNames.every((pn) => pn !== clientPropName);\n                if (isAdditionalProperty) {\n                    payload[clientPropName] = serializer.serialize(additionalPropertiesMapper, object[clientPropName], objectName + '[\"' + clientPropName + '\"]', options);\n                }\n            }\n        }\n        return payload;\n    }\n    return object;\n}\nfunction getXmlObjectValue(propertyMapper, serializedValue, isXml, options) {\n    if (!isXml || !propertyMapper.xmlNamespace) {\n        return serializedValue;\n    }\n    const xmlnsKey = propertyMapper.xmlNamespacePrefix\n        ? `xmlns:${propertyMapper.xmlNamespacePrefix}`\n        : \"xmlns\";\n    const xmlNamespace = { [xmlnsKey]: propertyMapper.xmlNamespace };\n    if ([\"Composite\"].includes(propertyMapper.type.name)) {\n        if (serializedValue[XML_ATTRKEY]) {\n            return serializedValue;\n        }\n        else {\n            const result = Object.assign({}, serializedValue);\n            result[XML_ATTRKEY] = xmlNamespace;\n            return result;\n        }\n    }\n    const result = {};\n    result[options.xml.xmlCharKey] = serializedValue;\n    result[XML_ATTRKEY] = xmlNamespace;\n    return result;\n}\nfunction isSpecialXmlProperty(propertyName, options) {\n    return [XML_ATTRKEY, options.xml.xmlCharKey].includes(propertyName);\n}\nfunction deserializeCompositeType(serializer, mapper, responseBody, objectName, options) {\n    var _a, _b;\n    const xmlCharKey = (_a = options.xml.xmlCharKey) !== null && _a !== void 0 ? _a : XML_CHARKEY;\n    if (getPolymorphicDiscriminatorRecursively(serializer, mapper)) {\n        mapper = getPolymorphicMapper(serializer, mapper, responseBody, \"serializedName\");\n    }\n    const modelProps = resolveModelProperties(serializer, mapper, objectName);\n    let instance = {};\n    const handledPropertyNames = [];\n    for (const key of Object.keys(modelProps)) {\n        const propertyMapper = modelProps[key];\n        const paths = splitSerializeName(modelProps[key].serializedName);\n        handledPropertyNames.push(paths[0]);\n        const { serializedName, xmlName, xmlElementName } = propertyMapper;\n        let propertyObjectName = objectName;\n        if (serializedName !== \"\" && serializedName !== undefined) {\n            propertyObjectName = objectName + \".\" + serializedName;\n        }\n        const headerCollectionPrefix = propertyMapper.headerCollectionPrefix;\n        if (headerCollectionPrefix) {\n            const dictionary = {};\n            for (const headerKey of Object.keys(responseBody)) {\n                if (headerKey.startsWith(headerCollectionPrefix)) {\n                    dictionary[headerKey.substring(headerCollectionPrefix.length)] = serializer.deserialize(propertyMapper.type.value, responseBody[headerKey], propertyObjectName, options);\n                }\n                handledPropertyNames.push(headerKey);\n            }\n            instance[key] = dictionary;\n        }\n        else if (serializer.isXML) {\n            if (propertyMapper.xmlIsAttribute && responseBody[XML_ATTRKEY]) {\n                instance[key] = serializer.deserialize(propertyMapper, responseBody[XML_ATTRKEY][xmlName], propertyObjectName, options);\n            }\n            else if (propertyMapper.xmlIsMsText) {\n                if (responseBody[xmlCharKey] !== undefined) {\n                    instance[key] = responseBody[xmlCharKey];\n                }\n                else if (typeof responseBody === \"string\") {\n                    // The special case where xml parser parses \"<Name>content</Name>\" into JSON of\n                    //   `{ name: \"content\"}` instead of `{ name: { \"_\": \"content\" }}`\n                    instance[key] = responseBody;\n                }\n            }\n            else {\n                const propertyName = xmlElementName || xmlName || serializedName;\n                if (propertyMapper.xmlIsWrapped) {\n                    /* a list of <xmlElementName> wrapped by <xmlName>\n                      For the xml example below\n                        <Cors>\n                          <CorsRule>...</CorsRule>\n                          <CorsRule>...</CorsRule>\n                        </Cors>\n                      the responseBody has\n                        {\n                          Cors: {\n                            CorsRule: [{...}, {...}]\n                          }\n                        }\n                      xmlName is \"Cors\" and xmlElementName is\"CorsRule\".\n                    */\n                    const wrapped = responseBody[xmlName];\n                    const elementList = (_b = wrapped === null || wrapped === void 0 ? void 0 : wrapped[xmlElementName]) !== null && _b !== void 0 ? _b : [];\n                    instance[key] = serializer.deserialize(propertyMapper, elementList, propertyObjectName, options);\n                    handledPropertyNames.push(xmlName);\n                }\n                else {\n                    const property = responseBody[propertyName];\n                    instance[key] = serializer.deserialize(propertyMapper, property, propertyObjectName, options);\n                    handledPropertyNames.push(propertyName);\n                }\n            }\n        }\n        else {\n            // deserialize the property if it is present in the provided responseBody instance\n            let propertyInstance;\n            let res = responseBody;\n            // traversing the object step by step.\n            let steps = 0;\n            for (const item of paths) {\n                if (!res)\n                    break;\n                steps++;\n                res = res[item];\n            }\n            // only accept null when reaching the last position of object otherwise it would be undefined\n            if (res === null && steps < paths.length) {\n                res = undefined;\n            }\n            propertyInstance = res;\n            const polymorphicDiscriminator = mapper.type.polymorphicDiscriminator;\n            // checking that the model property name (key)(ex: \"fishtype\") and the\n            // clientName of the polymorphicDiscriminator {metadata} (ex: \"fishtype\")\n            // instead of the serializedName of the polymorphicDiscriminator (ex: \"fish.type\")\n            // is a better approach. The generator is not consistent with escaping '\\.' in the\n            // serializedName of the property (ex: \"fish\\.type\") that is marked as polymorphic discriminator\n            // and the serializedName of the metadata polymorphicDiscriminator (ex: \"fish.type\"). However,\n            // the clientName transformation of the polymorphicDiscriminator (ex: \"fishtype\") and\n            // the transformation of model property name (ex: \"fishtype\") is done consistently.\n            // Hence, it is a safer bet to rely on the clientName of the polymorphicDiscriminator.\n            if (polymorphicDiscriminator &&\n                key === polymorphicDiscriminator.clientName &&\n                (propertyInstance === undefined || propertyInstance === null)) {\n                propertyInstance = mapper.serializedName;\n            }\n            let serializedValue;\n            // paging\n            if (Array.isArray(responseBody[key]) && modelProps[key].serializedName === \"\") {\n                propertyInstance = responseBody[key];\n                const arrayInstance = serializer.deserialize(propertyMapper, propertyInstance, propertyObjectName, options);\n                // Copy over any properties that have already been added into the instance, where they do\n                // not exist on the newly de-serialized array\n                for (const [k, v] of Object.entries(instance)) {\n                    if (!Object.prototype.hasOwnProperty.call(arrayInstance, k)) {\n                        arrayInstance[k] = v;\n                    }\n                }\n                instance = arrayInstance;\n            }\n            else if (propertyInstance !== undefined || propertyMapper.defaultValue !== undefined) {\n                serializedValue = serializer.deserialize(propertyMapper, propertyInstance, propertyObjectName, options);\n                instance[key] = serializedValue;\n            }\n        }\n    }\n    const additionalPropertiesMapper = mapper.type.additionalProperties;\n    if (additionalPropertiesMapper) {\n        const isAdditionalProperty = (responsePropName) => {\n            for (const clientPropName in modelProps) {\n                const paths = splitSerializeName(modelProps[clientPropName].serializedName);\n                if (paths[0] === responsePropName) {\n                    return false;\n                }\n            }\n            return true;\n        };\n        for (const responsePropName in responseBody) {\n            if (isAdditionalProperty(responsePropName)) {\n                instance[responsePropName] = serializer.deserialize(additionalPropertiesMapper, responseBody[responsePropName], objectName + '[\"' + responsePropName + '\"]', options);\n            }\n        }\n    }\n    else if (responseBody && !options.ignoreUnknownProperties) {\n        for (const key of Object.keys(responseBody)) {\n            if (instance[key] === undefined &&\n                !handledPropertyNames.includes(key) &&\n                !isSpecialXmlProperty(key, options)) {\n                instance[key] = responseBody[key];\n            }\n        }\n    }\n    return instance;\n}\nfunction deserializeDictionaryType(serializer, mapper, responseBody, objectName, options) {\n    /* jshint validthis: true */\n    const value = mapper.type.value;\n    if (!value || typeof value !== \"object\") {\n        throw new Error(`\"value\" metadata for a Dictionary must be defined in the ` +\n            `mapper and it must of type \"object\" in ${objectName}`);\n    }\n    if (responseBody) {\n        const tempDictionary = {};\n        for (const key of Object.keys(responseBody)) {\n            tempDictionary[key] = serializer.deserialize(value, responseBody[key], objectName, options);\n        }\n        return tempDictionary;\n    }\n    return responseBody;\n}\nfunction deserializeSequenceType(serializer, mapper, responseBody, objectName, options) {\n    var _a;\n    let element = mapper.type.element;\n    if (!element || typeof element !== \"object\") {\n        throw new Error(`element\" metadata for an Array must be defined in the ` +\n            `mapper and it must of type \"object\" in ${objectName}`);\n    }\n    if (responseBody) {\n        if (!Array.isArray(responseBody)) {\n            // xml2js will interpret a single element array as just the element, so force it to be an array\n            responseBody = [responseBody];\n        }\n        // Quirk: Composite mappers referenced by `element` might\n        // not have *all* properties declared (like uberParent),\n        // so let's try to look up the full definition by name.\n        if (element.type.name === \"Composite\" && element.type.className) {\n            element = (_a = serializer.modelMappers[element.type.className]) !== null && _a !== void 0 ? _a : element;\n        }\n        const tempArray = [];\n        for (let i = 0; i < responseBody.length; i++) {\n            tempArray[i] = serializer.deserialize(element, responseBody[i], `${objectName}[${i}]`, options);\n        }\n        return tempArray;\n    }\n    return responseBody;\n}\nfunction getIndexDiscriminator(discriminators, discriminatorValue, typeName) {\n    const typeNamesToCheck = [typeName];\n    while (typeNamesToCheck.length) {\n        const currentName = typeNamesToCheck.shift();\n        const indexDiscriminator = discriminatorValue === currentName\n            ? discriminatorValue\n            : currentName + \".\" + discriminatorValue;\n        if (Object.prototype.hasOwnProperty.call(discriminators, indexDiscriminator)) {\n            return discriminators[indexDiscriminator];\n        }\n        else {\n            for (const [name, mapper] of Object.entries(discriminators)) {\n                if (name.startsWith(currentName + \".\") &&\n                    mapper.type.uberParent === currentName &&\n                    mapper.type.className) {\n                    typeNamesToCheck.push(mapper.type.className);\n                }\n            }\n        }\n    }\n    return undefined;\n}\nfunction getPolymorphicMapper(serializer, mapper, object, polymorphicPropertyName) {\n    var _a;\n    const polymorphicDiscriminator = getPolymorphicDiscriminatorRecursively(serializer, mapper);\n    if (polymorphicDiscriminator) {\n        let discriminatorName = polymorphicDiscriminator[polymorphicPropertyName];\n        if (discriminatorName) {\n            // The serializedName might have \\\\, which we just want to ignore\n            if (polymorphicPropertyName === \"serializedName\") {\n                discriminatorName = discriminatorName.replace(/\\\\/gi, \"\");\n            }\n            const discriminatorValue = object[discriminatorName];\n            const typeName = (_a = mapper.type.uberParent) !== null && _a !== void 0 ? _a : mapper.type.className;\n            if (typeof discriminatorValue === \"string\" && typeName) {\n                const polymorphicMapper = getIndexDiscriminator(serializer.modelMappers.discriminators, discriminatorValue, typeName);\n                if (polymorphicMapper) {\n                    mapper = polymorphicMapper;\n                }\n            }\n        }\n    }\n    return mapper;\n}\nfunction getPolymorphicDiscriminatorRecursively(serializer, mapper) {\n    return (mapper.type.polymorphicDiscriminator ||\n        getPolymorphicDiscriminatorSafely(serializer, mapper.type.uberParent) ||\n        getPolymorphicDiscriminatorSafely(serializer, mapper.type.className));\n}\nfunction getPolymorphicDiscriminatorSafely(serializer, typeName) {\n    return (typeName &&\n        serializer.modelMappers[typeName] &&\n        serializer.modelMappers[typeName].type.polymorphicDiscriminator);\n}\n/**\n * Known types of Mappers\n */\nexport const MapperTypeNames = {\n    Base64Url: \"Base64Url\",\n    Boolean: \"Boolean\",\n    ByteArray: \"ByteArray\",\n    Composite: \"Composite\",\n    Date: \"Date\",\n    DateTime: \"DateTime\",\n    DateTimeRfc1123: \"DateTimeRfc1123\",\n    Dictionary: \"Dictionary\",\n    Enum: \"Enum\",\n    Number: \"Number\",\n    Object: \"Object\",\n    Sequence: \"Sequence\",\n    String: \"String\",\n    Stream: \"Stream\",\n    TimeSpan: \"TimeSpan\",\n    UnixTime: \"UnixTime\",\n};\n//# sourceMappingURL=serializer.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n/**\n * Browser-only implementation of the module's state. The browser esm variant will not load the commonjs state, so we do not need to share state between the two.\n */\nexport const state = {\n    operationRequestMap: new WeakMap(),\n};\n//# sourceMappingURL=state-browser.mjs.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { state } from \"./state.js\";\n/**\n * @internal\n * Retrieves the value to use for a given operation argument\n * @param operationArguments - The arguments passed from the generated client\n * @param parameter - The parameter description\n * @param fallbackObject - If something isn't found in the arguments bag, look here.\n *  Generally used to look at the service client properties.\n */\nexport function getOperationArgumentValueFromParameter(operationArguments, parameter, fallbackObject) {\n    let parameterPath = parameter.parameterPath;\n    const parameterMapper = parameter.mapper;\n    let value;\n    if (typeof parameterPath === \"string\") {\n        parameterPath = [parameterPath];\n    }\n    if (Array.isArray(parameterPath)) {\n        if (parameterPath.length > 0) {\n            if (parameterMapper.isConstant) {\n                value = parameterMapper.defaultValue;\n            }\n            else {\n                let propertySearchResult = getPropertyFromParameterPath(operationArguments, parameterPath);\n                if (!propertySearchResult.propertyFound && fallbackObject) {\n                    propertySearchResult = getPropertyFromParameterPath(fallbackObject, parameterPath);\n                }\n                let useDefaultValue = false;\n                if (!propertySearchResult.propertyFound) {\n                    useDefaultValue =\n                        parameterMapper.required ||\n                            (parameterPath[0] === \"options\" && parameterPath.length === 2);\n                }\n                value = useDefaultValue ? parameterMapper.defaultValue : propertySearchResult.propertyValue;\n            }\n        }\n    }\n    else {\n        if (parameterMapper.required) {\n            value = {};\n        }\n        for (const propertyName in parameterPath) {\n            const propertyMapper = parameterMapper.type.modelProperties[propertyName];\n            const propertyPath = parameterPath[propertyName];\n            const propertyValue = getOperationArgumentValueFromParameter(operationArguments, {\n                parameterPath: propertyPath,\n                mapper: propertyMapper,\n            }, fallbackObject);\n            if (propertyValue !== undefined) {\n                if (!value) {\n                    value = {};\n                }\n                value[propertyName] = propertyValue;\n            }\n        }\n    }\n    return value;\n}\nfunction getPropertyFromParameterPath(parent, parameterPath) {\n    const result = { propertyFound: false };\n    let i = 0;\n    for (; i < parameterPath.length; ++i) {\n        const parameterPathPart = parameterPath[i];\n        // Make sure to check inherited properties too, so don't use hasOwnProperty().\n        if (parent && parameterPathPart in parent) {\n            parent = parent[parameterPathPart];\n        }\n        else {\n            break;\n        }\n    }\n    if (i === parameterPath.length) {\n        result.propertyValue = parent;\n        result.propertyFound = true;\n    }\n    return result;\n}\nconst originalRequestSymbol = Symbol.for(\"@azure/core-client original request\");\nfunction hasOriginalRequest(request) {\n    return originalRequestSymbol in request;\n}\nexport function getOperationRequestInfo(request) {\n    if (hasOriginalRequest(request)) {\n        return getOperationRequestInfo(request[originalRequestSymbol]);\n    }\n    let info = state.operationRequestMap.get(request);\n    if (!info) {\n        info = {};\n        state.operationRequestMap.set(request, info);\n    }\n    return info;\n}\n//# sourceMappingURL=operationHelpers.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { XML_CHARKEY } from \"./interfaces.js\";\nimport { RestError } from \"@azure/core-rest-pipeline\";\nimport { MapperTypeNames } from \"./serializer.js\";\nimport { getOperationRequestInfo } from \"./operationHelpers.js\";\nconst defaultJsonContentTypes = [\"application/json\", \"text/json\"];\nconst defaultXmlContentTypes = [\"application/xml\", \"application/atom+xml\"];\n/**\n * The programmatic identifier of the deserializationPolicy.\n */\nexport const deserializationPolicyName = \"deserializationPolicy\";\n/**\n * This policy handles parsing out responses according to OperationSpecs on the request.\n */\nexport function deserializationPolicy(options = {}) {\n    var _a, _b, _c, _d, _e, _f, _g;\n    const jsonContentTypes = (_b = (_a = options.expectedContentTypes) === null || _a === void 0 ? void 0 : _a.json) !== null && _b !== void 0 ? _b : defaultJsonContentTypes;\n    const xmlContentTypes = (_d = (_c = options.expectedContentTypes) === null || _c === void 0 ? void 0 : _c.xml) !== null && _d !== void 0 ? _d : defaultXmlContentTypes;\n    const parseXML = options.parseXML;\n    const serializerOptions = options.serializerOptions;\n    const updatedOptions = {\n        xml: {\n            rootName: (_e = serializerOptions === null || serializerOptions === void 0 ? void 0 : serializerOptions.xml.rootName) !== null && _e !== void 0 ? _e : \"\",\n            includeRoot: (_f = serializerOptions === null || serializerOptions === void 0 ? void 0 : serializerOptions.xml.includeRoot) !== null && _f !== void 0 ? _f : false,\n            xmlCharKey: (_g = serializerOptions === null || serializerOptions === void 0 ? void 0 : serializerOptions.xml.xmlCharKey) !== null && _g !== void 0 ? _g : XML_CHARKEY,\n        },\n    };\n    return {\n        name: deserializationPolicyName,\n        async sendRequest(request, next) {\n            const response = await next(request);\n            return deserializeResponseBody(jsonContentTypes, xmlContentTypes, response, updatedOptions, parseXML);\n        },\n    };\n}\nfunction getOperationResponseMap(parsedResponse) {\n    let result;\n    const request = parsedResponse.request;\n    const operationInfo = getOperationRequestInfo(request);\n    const operationSpec = operationInfo === null || operationInfo === void 0 ? void 0 : operationInfo.operationSpec;\n    if (operationSpec) {\n        if (!(operationInfo === null || operationInfo === void 0 ? void 0 : operationInfo.operationResponseGetter)) {\n            result = operationSpec.responses[parsedResponse.status];\n        }\n        else {\n            result = operationInfo === null || operationInfo === void 0 ? void 0 : operationInfo.operationResponseGetter(operationSpec, parsedResponse);\n        }\n    }\n    return result;\n}\nfunction shouldDeserializeResponse(parsedResponse) {\n    const request = parsedResponse.request;\n    const operationInfo = getOperationRequestInfo(request);\n    const shouldDeserialize = operationInfo === null || operationInfo === void 0 ? void 0 : operationInfo.shouldDeserialize;\n    let result;\n    if (shouldDeserialize === undefined) {\n        result = true;\n    }\n    else if (typeof shouldDeserialize === \"boolean\") {\n        result = shouldDeserialize;\n    }\n    else {\n        result = shouldDeserialize(parsedResponse);\n    }\n    return result;\n}\nasync function deserializeResponseBody(jsonContentTypes, xmlContentTypes, response, options, parseXML) {\n    const parsedResponse = await parse(jsonContentTypes, xmlContentTypes, response, options, parseXML);\n    if (!shouldDeserializeResponse(parsedResponse)) {\n        return parsedResponse;\n    }\n    const operationInfo = getOperationRequestInfo(parsedResponse.request);\n    const operationSpec = operationInfo === null || operationInfo === void 0 ? void 0 : operationInfo.operationSpec;\n    if (!operationSpec || !operationSpec.responses) {\n        return parsedResponse;\n    }\n    const responseSpec = getOperationResponseMap(parsedResponse);\n    const { error, shouldReturnResponse } = handleErrorResponse(parsedResponse, operationSpec, responseSpec, options);\n    if (error) {\n        throw error;\n    }\n    else if (shouldReturnResponse) {\n        return parsedResponse;\n    }\n    // An operation response spec does exist for current status code, so\n    // use it to deserialize the response.\n    if (responseSpec) {\n        if (responseSpec.bodyMapper) {\n            let valueToDeserialize = parsedResponse.parsedBody;\n            if (operationSpec.isXML && responseSpec.bodyMapper.type.name === MapperTypeNames.Sequence) {\n                valueToDeserialize =\n                    typeof valueToDeserialize === \"object\"\n                        ? valueToDeserialize[responseSpec.bodyMapper.xmlElementName]\n                        : [];\n            }\n            try {\n                parsedResponse.parsedBody = operationSpec.serializer.deserialize(responseSpec.bodyMapper, valueToDeserialize, \"operationRes.parsedBody\", options);\n            }\n            catch (deserializeError) {\n                const restError = new RestError(`Error ${deserializeError} occurred in deserializing the responseBody - ${parsedResponse.bodyAsText}`, {\n                    statusCode: parsedResponse.status,\n                    request: parsedResponse.request,\n                    response: parsedResponse,\n                });\n                throw restError;\n            }\n        }\n        else if (operationSpec.httpMethod === \"HEAD\") {\n            // head methods never have a body, but we return a boolean to indicate presence/absence of the resource\n            parsedResponse.parsedBody = response.status >= 200 && response.status < 300;\n        }\n        if (responseSpec.headersMapper) {\n            parsedResponse.parsedHeaders = operationSpec.serializer.deserialize(responseSpec.headersMapper, parsedResponse.headers.toJSON(), \"operationRes.parsedHeaders\", { xml: {}, ignoreUnknownProperties: true });\n        }\n    }\n    return parsedResponse;\n}\nfunction isOperationSpecEmpty(operationSpec) {\n    const expectedStatusCodes = Object.keys(operationSpec.responses);\n    return (expectedStatusCodes.length === 0 ||\n        (expectedStatusCodes.length === 1 && expectedStatusCodes[0] === \"default\"));\n}\nfunction handleErrorResponse(parsedResponse, operationSpec, responseSpec, options) {\n    var _a, _b, _c, _d, _e;\n    const isSuccessByStatus = 200 <= parsedResponse.status && parsedResponse.status < 300;\n    const isExpectedStatusCode = isOperationSpecEmpty(operationSpec)\n        ? isSuccessByStatus\n        : !!responseSpec;\n    if (isExpectedStatusCode) {\n        if (responseSpec) {\n            if (!responseSpec.isError) {\n                return { error: null, shouldReturnResponse: false };\n            }\n        }\n        else {\n            return { error: null, shouldReturnResponse: false };\n        }\n    }\n    const errorResponseSpec = responseSpec !== null && responseSpec !== void 0 ? responseSpec : operationSpec.responses.default;\n    const initialErrorMessage = ((_a = parsedResponse.request.streamResponseStatusCodes) === null || _a === void 0 ? void 0 : _a.has(parsedResponse.status))\n        ? `Unexpected status code: ${parsedResponse.status}`\n        : parsedResponse.bodyAsText;\n    const error = new RestError(initialErrorMessage, {\n        statusCode: parsedResponse.status,\n        request: parsedResponse.request,\n        response: parsedResponse,\n    });\n    // If the item failed but there's no error spec or default spec to deserialize the error,\n    // and the parsed body doesn't look like an error object,\n    // we should fail so we just throw the parsed response\n    if (!errorResponseSpec &&\n        !(((_c = (_b = parsedResponse.parsedBody) === null || _b === void 0 ? void 0 : _b.error) === null || _c === void 0 ? void 0 : _c.code) && ((_e = (_d = parsedResponse.parsedBody) === null || _d === void 0 ? void 0 : _d.error) === null || _e === void 0 ? void 0 : _e.message))) {\n        throw error;\n    }\n    const defaultBodyMapper = errorResponseSpec === null || errorResponseSpec === void 0 ? void 0 : errorResponseSpec.bodyMapper;\n    const defaultHeadersMapper = errorResponseSpec === null || errorResponseSpec === void 0 ? void 0 : errorResponseSpec.headersMapper;\n    try {\n        // If error response has a body, try to deserialize it using default body mapper.\n        // Then try to extract error code & message from it\n        if (parsedResponse.parsedBody) {\n            const parsedBody = parsedResponse.parsedBody;\n            let deserializedError;\n            if (defaultBodyMapper) {\n                let valueToDeserialize = parsedBody;\n                if (operationSpec.isXML && defaultBodyMapper.type.name === MapperTypeNames.Sequence) {\n                    valueToDeserialize = [];\n                    const elementName = defaultBodyMapper.xmlElementName;\n                    if (typeof parsedBody === \"object\" && elementName) {\n                        valueToDeserialize = parsedBody[elementName];\n                    }\n                }\n                deserializedError = operationSpec.serializer.deserialize(defaultBodyMapper, valueToDeserialize, \"error.response.parsedBody\", options);\n            }\n            const internalError = parsedBody.error || deserializedError || parsedBody;\n            error.code = internalError.code;\n            if (internalError.message) {\n                error.message = internalError.message;\n            }\n            if (defaultBodyMapper) {\n                error.response.parsedBody = deserializedError;\n            }\n        }\n        // If error response has headers, try to deserialize it using default header mapper\n        if (parsedResponse.headers && defaultHeadersMapper) {\n            error.response.parsedHeaders =\n                operationSpec.serializer.deserialize(defaultHeadersMapper, parsedResponse.headers.toJSON(), \"operationRes.parsedHeaders\");\n        }\n    }\n    catch (defaultError) {\n        error.message = `Error \"${defaultError.message}\" occurred in deserializing the responseBody - \"${parsedResponse.bodyAsText}\" for the default response.`;\n    }\n    return { error, shouldReturnResponse: false };\n}\nasync function parse(jsonContentTypes, xmlContentTypes, operationResponse, opts, parseXML) {\n    var _a;\n    if (!((_a = operationResponse.request.streamResponseStatusCodes) === null || _a === void 0 ? void 0 : _a.has(operationResponse.status)) &&\n        operationResponse.bodyAsText) {\n        const text = operationResponse.bodyAsText;\n        const contentType = operationResponse.headers.get(\"Content-Type\") || \"\";\n        const contentComponents = !contentType\n            ? []\n            : contentType.split(\";\").map((component) => component.toLowerCase());\n        try {\n            if (contentComponents.length === 0 ||\n                contentComponents.some((component) => jsonContentTypes.indexOf(component) !== -1)) {\n                operationResponse.parsedBody = JSON.parse(text);\n                return operationResponse;\n            }\n            else if (contentComponents.some((component) => xmlContentTypes.indexOf(component) !== -1)) {\n                if (!parseXML) {\n                    throw new Error(\"Parsing XML not supported.\");\n                }\n                const body = await parseXML(text, opts.xml);\n                operationResponse.parsedBody = body;\n                return operationResponse;\n            }\n        }\n        catch (err) {\n            const msg = `Error \"${err}\" occurred while parsing the response body - ${operationResponse.bodyAsText}.`;\n            const errCode = err.code || RestError.PARSE_ERROR;\n            const e = new RestError(msg, {\n                code: errCode,\n                statusCode: operationResponse.status,\n                request: operationResponse.request,\n                response: operationResponse,\n            });\n            throw e;\n        }\n    }\n    return operationResponse;\n}\n//# sourceMappingURL=deserializationPolicy.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { MapperTypeNames } from \"./serializer.js\";\n/**\n * Gets the list of status codes for streaming responses.\n * @internal\n */\nexport function getStreamingResponseStatusCodes(operationSpec) {\n    const result = new Set();\n    for (const statusCode in operationSpec.responses) {\n        const operationResponse = operationSpec.responses[statusCode];\n        if (operationResponse.bodyMapper &&\n            operationResponse.bodyMapper.type.name === MapperTypeNames.Stream) {\n            result.add(Number(statusCode));\n        }\n    }\n    return result;\n}\n/**\n * Get the path to this parameter's value as a dotted string (a.b.c).\n * @param parameter - The parameter to get the path string for.\n * @returns The path to this parameter's value as a dotted string.\n * @internal\n */\nexport function getPathStringFromParameter(parameter) {\n    const { parameterPath, mapper } = parameter;\n    let result;\n    if (typeof parameterPath === \"string\") {\n        result = parameterPath;\n    }\n    else if (Array.isArray(parameterPath)) {\n        result = parameterPath.join(\".\");\n    }\n    else {\n        result = mapper.serializedName;\n    }\n    return result;\n}\n//# sourceMappingURL=interfaceHelpers.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { deserializationPolicy } from \"./deserializationPolicy.js\";\nimport { bearerTokenAuthenticationPolicy, createPipelineFromOptions, } from \"@azure/core-rest-pipeline\";\nimport { serializationPolicy } from \"./serializationPolicy.js\";\n/**\n * Creates a new Pipeline for use with a Service Client.\n * Adds in deserializationPolicy by default.\n * Also adds in bearerTokenAuthenticationPolicy if passed a TokenCredential.\n * @param options - Options to customize the created pipeline.\n */\nexport function createClientPipeline(options = {}) {\n    const pipeline = createPipelineFromOptions(options !== null && options !== void 0 ? options : {});\n    if (options.credentialOptions) {\n        pipeline.addPolicy(bearerTokenAuthenticationPolicy({\n            credential: options.credentialOptions.credential,\n            scopes: options.credentialOptions.credentialScopes,\n        }));\n    }\n    pipeline.addPolicy(serializationPolicy(options.serializationOptions), { phase: \"Serialize\" });\n    pipeline.addPolicy(deserializationPolicy(options.deserializationOptions), {\n        phase: \"Deserialize\",\n    });\n    return pipeline;\n}\n//# sourceMappingURL=pipeline.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { XML_ATTRKEY, XML_CHARKEY } from \"./interfaces.js\";\nimport { getOperationArgumentValueFromParameter, getOperationRequestInfo, } from \"./operationHelpers.js\";\nimport { MapperTypeNames } from \"./serializer.js\";\nimport { getPathStringFromParameter } from \"./interfaceHelpers.js\";\n/**\n * The programmatic identifier of the serializationPolicy.\n */\nexport const serializationPolicyName = \"serializationPolicy\";\n/**\n * This policy handles assembling the request body and headers using\n * an OperationSpec and OperationArguments on the request.\n */\nexport function serializationPolicy(options = {}) {\n    const stringifyXML = options.stringifyXML;\n    return {\n        name: serializationPolicyName,\n        async sendRequest(request, next) {\n            const operationInfo = getOperationRequestInfo(request);\n            const operationSpec = operationInfo === null || operationInfo === void 0 ? void 0 : operationInfo.operationSpec;\n            const operationArguments = operationInfo === null || operationInfo === void 0 ? void 0 : operationInfo.operationArguments;\n            if (operationSpec && operationArguments) {\n                serializeHeaders(request, operationArguments, operationSpec);\n                serializeRequestBody(request, operationArguments, operationSpec, stringifyXML);\n            }\n            return next(request);\n        },\n    };\n}\n/**\n * @internal\n */\nexport function serializeHeaders(request, operationArguments, operationSpec) {\n    var _a, _b;\n    if (operationSpec.headerParameters) {\n        for (const headerParameter of operationSpec.headerParameters) {\n            let headerValue = getOperationArgumentValueFromParameter(operationArguments, headerParameter);\n            if ((headerValue !== null && headerValue !== undefined) || headerParameter.mapper.required) {\n                headerValue = operationSpec.serializer.serialize(headerParameter.mapper, headerValue, getPathStringFromParameter(headerParameter));\n                const headerCollectionPrefix = headerParameter.mapper\n                    .headerCollectionPrefix;\n                if (headerCollectionPrefix) {\n                    for (const key of Object.keys(headerValue)) {\n                        request.headers.set(headerCollectionPrefix + key, headerValue[key]);\n                    }\n                }\n                else {\n                    request.headers.set(headerParameter.mapper.serializedName || getPathStringFromParameter(headerParameter), headerValue);\n                }\n            }\n        }\n    }\n    const customHeaders = (_b = (_a = operationArguments.options) === null || _a === void 0 ? void 0 : _a.requestOptions) === null || _b === void 0 ? void 0 : _b.customHeaders;\n    if (customHeaders) {\n        for (const customHeaderName of Object.keys(customHeaders)) {\n            request.headers.set(customHeaderName, customHeaders[customHeaderName]);\n        }\n    }\n}\n/**\n * @internal\n */\nexport function serializeRequestBody(request, operationArguments, operationSpec, stringifyXML = function () {\n    throw new Error(\"XML serialization unsupported!\");\n}) {\n    var _a, _b, _c, _d, _e;\n    const serializerOptions = (_a = operationArguments.options) === null || _a === void 0 ? void 0 : _a.serializerOptions;\n    const updatedOptions = {\n        xml: {\n            rootName: (_b = serializerOptions === null || serializerOptions === void 0 ? void 0 : serializerOptions.xml.rootName) !== null && _b !== void 0 ? _b : \"\",\n            includeRoot: (_c = serializerOptions === null || serializerOptions === void 0 ? void 0 : serializerOptions.xml.includeRoot) !== null && _c !== void 0 ? _c : false,\n            xmlCharKey: (_d = serializerOptions === null || serializerOptions === void 0 ? void 0 : serializerOptions.xml.xmlCharKey) !== null && _d !== void 0 ? _d : XML_CHARKEY,\n        },\n    };\n    const xmlCharKey = updatedOptions.xml.xmlCharKey;\n    if (operationSpec.requestBody && operationSpec.requestBody.mapper) {\n        request.body = getOperationArgumentValueFromParameter(operationArguments, operationSpec.requestBody);\n        const bodyMapper = operationSpec.requestBody.mapper;\n        const { required, serializedName, xmlName, xmlElementName, xmlNamespace, xmlNamespacePrefix, nullable, } = bodyMapper;\n        const typeName = bodyMapper.type.name;\n        try {\n            if ((request.body !== undefined && request.body !== null) ||\n                (nullable && request.body === null) ||\n                required) {\n                const requestBodyParameterPathString = getPathStringFromParameter(operationSpec.requestBody);\n                request.body = operationSpec.serializer.serialize(bodyMapper, request.body, requestBodyParameterPathString, updatedOptions);\n                const isStream = typeName === MapperTypeNames.Stream;\n                if (operationSpec.isXML) {\n                    const xmlnsKey = xmlNamespacePrefix ? `xmlns:${xmlNamespacePrefix}` : \"xmlns\";\n                    const value = getXmlValueWithNamespace(xmlNamespace, xmlnsKey, typeName, request.body, updatedOptions);\n                    if (typeName === MapperTypeNames.Sequence) {\n                        request.body = stringifyXML(prepareXMLRootList(value, xmlElementName || xmlName || serializedName, xmlnsKey, xmlNamespace), { rootName: xmlName || serializedName, xmlCharKey });\n                    }\n                    else if (!isStream) {\n                        request.body = stringifyXML(value, {\n                            rootName: xmlName || serializedName,\n                            xmlCharKey,\n                        });\n                    }\n                }\n                else if (typeName === MapperTypeNames.String &&\n                    (((_e = operationSpec.contentType) === null || _e === void 0 ? void 0 : _e.match(\"text/plain\")) || operationSpec.mediaType === \"text\")) {\n                    // the String serializer has validated that request body is a string\n                    // so just send the string.\n                    return;\n                }\n                else if (!isStream) {\n                    request.body = JSON.stringify(request.body);\n                }\n            }\n        }\n        catch (error) {\n            throw new Error(`Error \"${error.message}\" occurred in serializing the payload - ${JSON.stringify(serializedName, undefined, \"  \")}.`);\n        }\n    }\n    else if (operationSpec.formDataParameters && operationSpec.formDataParameters.length > 0) {\n        request.formData = {};\n        for (const formDataParameter of operationSpec.formDataParameters) {\n            const formDataParameterValue = getOperationArgumentValueFromParameter(operationArguments, formDataParameter);\n            if (formDataParameterValue !== undefined && formDataParameterValue !== null) {\n                const formDataParameterPropertyName = formDataParameter.mapper.serializedName || getPathStringFromParameter(formDataParameter);\n                request.formData[formDataParameterPropertyName] = operationSpec.serializer.serialize(formDataParameter.mapper, formDataParameterValue, getPathStringFromParameter(formDataParameter), updatedOptions);\n            }\n        }\n    }\n}\n/**\n * Adds an xml namespace to the xml serialized object if needed, otherwise it just returns the value itself\n */\nfunction getXmlValueWithNamespace(xmlNamespace, xmlnsKey, typeName, serializedValue, options) {\n    // Composite and Sequence schemas already got their root namespace set during serialization\n    // We just need to add xmlns to the other schema types\n    if (xmlNamespace && ![\"Composite\", \"Sequence\", \"Dictionary\"].includes(typeName)) {\n        const result = {};\n        result[options.xml.xmlCharKey] = serializedValue;\n        result[XML_ATTRKEY] = { [xmlnsKey]: xmlNamespace };\n        return result;\n    }\n    return serializedValue;\n}\nfunction prepareXMLRootList(obj, elementName, xmlNamespaceKey, xmlNamespace) {\n    if (!Array.isArray(obj)) {\n        obj = [obj];\n    }\n    if (!xmlNamespaceKey || !xmlNamespace) {\n        return { [elementName]: obj };\n    }\n    const result = { [elementName]: obj };\n    result[XML_ATTRKEY] = { [xmlNamespaceKey]: xmlNamespace };\n    return result;\n}\n//# sourceMappingURL=serializationPolicy.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { createDefaultHttpClient } from \"@azure/core-rest-pipeline\";\nlet cachedHttpClient;\nexport function getCachedDefaultHttpClient() {\n    if (!cachedHttpClient) {\n        cachedHttpClient = createDefaultHttpClient();\n    }\n    return cachedHttpClient;\n}\n//# sourceMappingURL=httpClientCache.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { getOperationArgumentValueFromParameter } from \"./operationHelpers.js\";\nimport { getPathStringFromParameter } from \"./interfaceHelpers.js\";\nconst CollectionFormatToDelimiterMap = {\n    CSV: \",\",\n    SSV: \" \",\n    Multi: \"Multi\",\n    TSV: \"\\t\",\n    Pipes: \"|\",\n};\nexport function getRequestUrl(baseUri, operationSpec, operationArguments, fallbackObject) {\n    const urlReplacements = calculateUrlReplacements(operationSpec, operationArguments, fallbackObject);\n    let isAbsolutePath = false;\n    let requestUrl = replaceAll(baseUri, urlReplacements);\n    if (operationSpec.path) {\n        let path = replaceAll(operationSpec.path, urlReplacements);\n        // QUIRK: sometimes we get a path component like /{nextLink}\n        // which may be a fully formed URL with a leading /. In that case, we should\n        // remove the leading /\n        if (operationSpec.path === \"/{nextLink}\" && path.startsWith(\"/\")) {\n            path = path.substring(1);\n        }\n        // QUIRK: sometimes we get a path component like {nextLink}\n        // which may be a fully formed URL. In that case, we should\n        // ignore the baseUri.\n        if (isAbsoluteUrl(path)) {\n            requestUrl = path;\n            isAbsolutePath = true;\n        }\n        else {\n            requestUrl = appendPath(requestUrl, path);\n        }\n    }\n    const { queryParams, sequenceParams } = calculateQueryParameters(operationSpec, operationArguments, fallbackObject);\n    /**\n     * Notice that this call sets the `noOverwrite` parameter to true if the `requestUrl`\n     * is an absolute path. This ensures that existing query parameter values in `requestUrl`\n     * do not get overwritten. On the other hand when `requestUrl` is not absolute path, it\n     * is still being built so there is nothing to overwrite.\n     */\n    requestUrl = appendQueryParams(requestUrl, queryParams, sequenceParams, isAbsolutePath);\n    return requestUrl;\n}\nfunction replaceAll(input, replacements) {\n    let result = input;\n    for (const [searchValue, replaceValue] of replacements) {\n        result = result.split(searchValue).join(replaceValue);\n    }\n    return result;\n}\nfunction calculateUrlReplacements(operationSpec, operationArguments, fallbackObject) {\n    var _a;\n    const result = new Map();\n    if ((_a = operationSpec.urlParameters) === null || _a === void 0 ? void 0 : _a.length) {\n        for (const urlParameter of operationSpec.urlParameters) {\n            let urlParameterValue = getOperationArgumentValueFromParameter(operationArguments, urlParameter, fallbackObject);\n            const parameterPathString = getPathStringFromParameter(urlParameter);\n            urlParameterValue = operationSpec.serializer.serialize(urlParameter.mapper, urlParameterValue, parameterPathString);\n            if (!urlParameter.skipEncoding) {\n                urlParameterValue = encodeURIComponent(urlParameterValue);\n            }\n            result.set(`{${urlParameter.mapper.serializedName || parameterPathString}}`, urlParameterValue);\n        }\n    }\n    return result;\n}\nfunction isAbsoluteUrl(url) {\n    return url.includes(\"://\");\n}\nfunction appendPath(url, pathToAppend) {\n    if (!pathToAppend) {\n        return url;\n    }\n    const parsedUrl = new URL(url);\n    let newPath = parsedUrl.pathname;\n    if (!newPath.endsWith(\"/\")) {\n        newPath = `${newPath}/`;\n    }\n    if (pathToAppend.startsWith(\"/\")) {\n        pathToAppend = pathToAppend.substring(1);\n    }\n    const searchStart = pathToAppend.indexOf(\"?\");\n    if (searchStart !== -1) {\n        const path = pathToAppend.substring(0, searchStart);\n        const search = pathToAppend.substring(searchStart + 1);\n        newPath = newPath + path;\n        if (search) {\n            parsedUrl.search = parsedUrl.search ? `${parsedUrl.search}&${search}` : search;\n        }\n    }\n    else {\n        newPath = newPath + pathToAppend;\n    }\n    parsedUrl.pathname = newPath;\n    return parsedUrl.toString();\n}\nfunction calculateQueryParameters(operationSpec, operationArguments, fallbackObject) {\n    var _a;\n    const result = new Map();\n    const sequenceParams = new Set();\n    if ((_a = operationSpec.queryParameters) === null || _a === void 0 ? void 0 : _a.length) {\n        for (const queryParameter of operationSpec.queryParameters) {\n            if (queryParameter.mapper.type.name === \"Sequence\" && queryParameter.mapper.serializedName) {\n                sequenceParams.add(queryParameter.mapper.serializedName);\n            }\n            let queryParameterValue = getOperationArgumentValueFromParameter(operationArguments, queryParameter, fallbackObject);\n            if ((queryParameterValue !== undefined && queryParameterValue !== null) ||\n                queryParameter.mapper.required) {\n                queryParameterValue = operationSpec.serializer.serialize(queryParameter.mapper, queryParameterValue, getPathStringFromParameter(queryParameter));\n                const delimiter = queryParameter.collectionFormat\n                    ? CollectionFormatToDelimiterMap[queryParameter.collectionFormat]\n                    : \"\";\n                if (Array.isArray(queryParameterValue)) {\n                    // replace null and undefined\n                    queryParameterValue = queryParameterValue.map((item) => {\n                        if (item === null || item === undefined) {\n                            return \"\";\n                        }\n                        return item;\n                    });\n                }\n                if (queryParameter.collectionFormat === \"Multi\" && queryParameterValue.length === 0) {\n                    continue;\n                }\n                else if (Array.isArray(queryParameterValue) &&\n                    (queryParameter.collectionFormat === \"SSV\" || queryParameter.collectionFormat === \"TSV\")) {\n                    queryParameterValue = queryParameterValue.join(delimiter);\n                }\n                if (!queryParameter.skipEncoding) {\n                    if (Array.isArray(queryParameterValue)) {\n                        queryParameterValue = queryParameterValue.map((item) => {\n                            return encodeURIComponent(item);\n                        });\n                    }\n                    else {\n                        queryParameterValue = encodeURIComponent(queryParameterValue);\n                    }\n                }\n                // Join pipes and CSV *after* encoding, or the server will be upset.\n                if (Array.isArray(queryParameterValue) &&\n                    (queryParameter.collectionFormat === \"CSV\" || queryParameter.collectionFormat === \"Pipes\")) {\n                    queryParameterValue = queryParameterValue.join(delimiter);\n                }\n                result.set(queryParameter.mapper.serializedName || getPathStringFromParameter(queryParameter), queryParameterValue);\n            }\n        }\n    }\n    return {\n        queryParams: result,\n        sequenceParams,\n    };\n}\nfunction simpleParseQueryParams(queryString) {\n    const result = new Map();\n    if (!queryString || queryString[0] !== \"?\") {\n        return result;\n    }\n    // remove the leading ?\n    queryString = queryString.slice(1);\n    const pairs = queryString.split(\"&\");\n    for (const pair of pairs) {\n        const [name, value] = pair.split(\"=\", 2);\n        const existingValue = result.get(name);\n        if (existingValue) {\n            if (Array.isArray(existingValue)) {\n                existingValue.push(value);\n            }\n            else {\n                result.set(name, [existingValue, value]);\n            }\n        }\n        else {\n            result.set(name, value);\n        }\n    }\n    return result;\n}\n/** @internal */\nexport function appendQueryParams(url, queryParams, sequenceParams, noOverwrite = false) {\n    if (queryParams.size === 0) {\n        return url;\n    }\n    const parsedUrl = new URL(url);\n    // QUIRK: parsedUrl.searchParams will have their name/value pairs decoded, which\n    // can change their meaning to the server, such as in the case of a SAS signature.\n    // To avoid accidentally un-encoding a query param, we parse the key/values ourselves\n    const combinedParams = simpleParseQueryParams(parsedUrl.search);\n    for (const [name, value] of queryParams) {\n        const existingValue = combinedParams.get(name);\n        if (Array.isArray(existingValue)) {\n            if (Array.isArray(value)) {\n                existingValue.push(...value);\n                const valueSet = new Set(existingValue);\n                combinedParams.set(name, Array.from(valueSet));\n            }\n            else {\n                existingValue.push(value);\n            }\n        }\n        else if (existingValue) {\n            if (Array.isArray(value)) {\n                value.unshift(existingValue);\n            }\n            else if (sequenceParams.has(name)) {\n                combinedParams.set(name, [existingValue, value]);\n            }\n            if (!noOverwrite) {\n                combinedParams.set(name, value);\n            }\n        }\n        else {\n            combinedParams.set(name, value);\n        }\n    }\n    const searchPieces = [];\n    for (const [name, value] of combinedParams) {\n        if (typeof value === \"string\") {\n            searchPieces.push(`${name}=${value}`);\n        }\n        else if (Array.isArray(value)) {\n            // QUIRK: If we get an array of values, include multiple key/value pairs\n            for (const subValue of value) {\n                searchPieces.push(`${name}=${subValue}`);\n            }\n        }\n        else {\n            searchPieces.push(`${name}=${value}`);\n        }\n    }\n    // QUIRK: we have to set search manually as searchParams will encode comma when it shouldn't.\n    parsedUrl.search = searchPieces.length ? `?${searchPieces.join(\"&\")}` : \"\";\n    return parsedUrl.toString();\n}\n//# sourceMappingURL=urlHelpers.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { createClientLogger } from \"@azure/logger\";\nexport const logger = createClientLogger(\"core-client\");\n//# sourceMappingURL=log.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { createPipelineRequest } from \"@azure/core-rest-pipeline\";\nimport { createClientPipeline } from \"./pipeline.js\";\nimport { flattenResponse } from \"./utils.js\";\nimport { getCachedDefaultHttpClient } from \"./httpClientCache.js\";\nimport { getOperationRequestInfo } from \"./operationHelpers.js\";\nimport { getRequestUrl } from \"./urlHelpers.js\";\nimport { getStreamingResponseStatusCodes } from \"./interfaceHelpers.js\";\nimport { logger } from \"./log.js\";\n/**\n * Initializes a new instance of the ServiceClient.\n */\nexport class ServiceClient {\n    /**\n     * The ServiceClient constructor\n     * @param options - The service client options that govern the behavior of the client.\n     */\n    constructor(options = {}) {\n        var _a, _b;\n        this._requestContentType = options.requestContentType;\n        this._endpoint = (_a = options.endpoint) !== null && _a !== void 0 ? _a : options.baseUri;\n        if (options.baseUri) {\n            logger.warning(\"The baseUri option for SDK Clients has been deprecated, please use endpoint instead.\");\n        }\n        this._allowInsecureConnection = options.allowInsecureConnection;\n        this._httpClient = options.httpClient || getCachedDefaultHttpClient();\n        this.pipeline = options.pipeline || createDefaultPipeline(options);\n        if ((_b = options.additionalPolicies) === null || _b === void 0 ? void 0 : _b.length) {\n            for (const { policy, position } of options.additionalPolicies) {\n                // Sign happens after Retry and is commonly needed to occur\n                // before policies that intercept post-retry.\n                const afterPhase = position === \"perRetry\" ? \"Sign\" : undefined;\n                this.pipeline.addPolicy(policy, {\n                    afterPhase,\n                });\n            }\n        }\n    }\n    /**\n     * Send the provided httpRequest.\n     */\n    async sendRequest(request) {\n        return this.pipeline.sendRequest(this._httpClient, request);\n    }\n    /**\n     * Send an HTTP request that is populated using the provided OperationSpec.\n     * @typeParam T - The typed result of the request, based on the OperationSpec.\n     * @param operationArguments - The arguments that the HTTP request's templated values will be populated from.\n     * @param operationSpec - The OperationSpec to use to populate the httpRequest.\n     */\n    async sendOperationRequest(operationArguments, operationSpec) {\n        const endpoint = operationSpec.baseUrl || this._endpoint;\n        if (!endpoint) {\n            throw new Error(\"If operationSpec.baseUrl is not specified, then the ServiceClient must have a endpoint string property that contains the base URL to use.\");\n        }\n        // Templatized URLs sometimes reference properties on the ServiceClient child class,\n        // so we have to pass `this` below in order to search these properties if they're\n        // not part of OperationArguments\n        const url = getRequestUrl(endpoint, operationSpec, operationArguments, this);\n        const request = createPipelineRequest({\n            url,\n        });\n        request.method = operationSpec.httpMethod;\n        const operationInfo = getOperationRequestInfo(request);\n        operationInfo.operationSpec = operationSpec;\n        operationInfo.operationArguments = operationArguments;\n        const contentType = operationSpec.contentType || this._requestContentType;\n        if (contentType && operationSpec.requestBody) {\n            request.headers.set(\"Content-Type\", contentType);\n        }\n        const options = operationArguments.options;\n        if (options) {\n            const requestOptions = options.requestOptions;\n            if (requestOptions) {\n                if (requestOptions.timeout) {\n                    request.timeout = requestOptions.timeout;\n                }\n                if (requestOptions.onUploadProgress) {\n                    request.onUploadProgress = requestOptions.onUploadProgress;\n                }\n                if (requestOptions.onDownloadProgress) {\n                    request.onDownloadProgress = requestOptions.onDownloadProgress;\n                }\n                if (requestOptions.shouldDeserialize !== undefined) {\n                    operationInfo.shouldDeserialize = requestOptions.shouldDeserialize;\n                }\n                if (requestOptions.allowInsecureConnection) {\n                    request.allowInsecureConnection = true;\n                }\n            }\n            if (options.abortSignal) {\n                request.abortSignal = options.abortSignal;\n            }\n            if (options.tracingOptions) {\n                request.tracingOptions = options.tracingOptions;\n            }\n        }\n        if (this._allowInsecureConnection) {\n            request.allowInsecureConnection = true;\n        }\n        if (request.streamResponseStatusCodes === undefined) {\n            request.streamResponseStatusCodes = getStreamingResponseStatusCodes(operationSpec);\n        }\n        try {\n            const rawResponse = await this.sendRequest(request);\n            const flatResponse = flattenResponse(rawResponse, operationSpec.responses[rawResponse.status]);\n            if (options === null || options === void 0 ? void 0 : options.onResponse) {\n                options.onResponse(rawResponse, flatResponse);\n            }\n            return flatResponse;\n        }\n        catch (error) {\n            if (typeof error === \"object\" && (error === null || error === void 0 ? void 0 : error.response)) {\n                const rawResponse = error.response;\n                const flatResponse = flattenResponse(rawResponse, operationSpec.responses[error.statusCode] || operationSpec.responses[\"default\"]);\n                error.details = flatResponse;\n                if (options === null || options === void 0 ? void 0 : options.onResponse) {\n                    options.onResponse(rawResponse, flatResponse, error);\n                }\n            }\n            throw error;\n        }\n    }\n}\nfunction createDefaultPipeline(options) {\n    const credentialScopes = getCredentialScopes(options);\n    const credentialOptions = options.credential && credentialScopes\n        ? { credentialScopes, credential: options.credential }\n        : undefined;\n    return createClientPipeline(Object.assign(Object.assign({}, options), { credentialOptions }));\n}\nfunction getCredentialScopes(options) {\n    if (options.credentialScopes) {\n        return options.credentialScopes;\n    }\n    if (options.endpoint) {\n        return `${options.endpoint}/.default`;\n    }\n    if (options.baseUri) {\n        return `${options.baseUri}/.default`;\n    }\n    if (options.credential && !options.credentialScopes) {\n        throw new Error(`When using credentials, the ServiceClientOptions must contain either a endpoint or a credentialScopes. Unable to create a bearerTokenAuthenticationPolicy`);\n    }\n    return undefined;\n}\n//# sourceMappingURL=serviceClient.js.map","function verCmp(a: string, b: string): number {\n  const getComponents = (v: string): number[] =>\n    v\n      .split(/[-+]/)[0]\n      .split('.')\n      .map((i) => +i);\n\n  const aComponents = getComponents(a);\n  const bComponents = getComponents(b);\n\n  const base = Math.max(...aComponents, ...bComponents) + 1;\n  const componentsToNumber = (components: number[]): number =>\n    components.reverse().reduce((acc, n, idx) => acc + n * base ** idx, 0);\n\n  return componentsToNumber(aComponents) - componentsToNumber(bComponents);\n}\n\nexport default function semverSatisfies(\n  version: string,\n  geVersion: string,\n  ltVersion?: string,\n): boolean {\n  return verCmp(version, geVersion) >= 0 && (ltVersion == null || verCmp(version, ltVersion) < 0);\n}\n","import { RestError, PipelineResponse, PipelinePolicy } from '@azure/core-rest-pipeline';\nimport {\n  AdditionalPolicyConfig,\n  FullOperationResponse,\n  OperationOptions,\n  createSerializer as createSerializerOrig,\n} from '@azure/core-client';\nimport { pause } from './other.js';\nimport semverSatisfies from './semver-satisfies.js';\nimport { InternalError, UnexpectedTsError, UnsupportedVersionError } from './errors.js';\n\nconst bigIntPrefix = '_sdk-big-int-';\n\nexport const createSerializer = (\n  ...args: Parameters<typeof createSerializerOrig>\n): ReturnType<typeof createSerializerOrig> => {\n  const serializer = createSerializerOrig(...args);\n  const { serialize, deserialize } = serializer;\n  return Object.assign(serializer, {\n    serialize(\n      ...[mapper, object, objectName, options]: Parameters<typeof serialize>\n    ): ReturnType<typeof serialize> {\n      // @ts-expect-error we are extending autorest with BigInt support\n      if (mapper.type.name !== 'BigInt' || object == null) {\n        return serialize.call(this, mapper, object, objectName, options);\n      }\n      if (typeof object !== 'bigint') {\n        objectName ??= mapper.serializedName;\n        throw new Error(`${objectName} with value ${object} must be of type bigint.`);\n      }\n      return object.toString();\n    },\n\n    deserialize(\n      ...[mapper, responseBody, objectName, options]: Parameters<typeof deserialize>\n    ): ReturnType<typeof deserialize> {\n      // @ts-expect-error we are extending autorest with BigInt support\n      if (mapper.type.name !== 'BigInt' || responseBody == null) {\n        if (typeof responseBody === 'string' && responseBody.startsWith(bigIntPrefix)) {\n          console.warn(`AeSdk internal error: BigInt value ${responseBody} handled incorrectly`);\n          responseBody = +responseBody.replace(bigIntPrefix, '');\n        }\n        const result = deserialize.call(this, mapper, responseBody, objectName, options);\n        // TODO: remove after fixing https://github.com/aeternity/ae_mdw/issues/1891\n        // and https://github.com/aeternity/aeternity/issues/4386\n        if (result instanceof Date) return new Date(+result / 1000);\n        return result;\n      }\n      if (typeof responseBody === 'number' && responseBody > Number.MAX_SAFE_INTEGER) {\n        throw new InternalError(`Number ${responseBody} is not accurate to be converted to BigInt`);\n      }\n      return BigInt(responseBody.toString().replace(bigIntPrefix, ''));\n    },\n  });\n};\n\nconst safeLength = Number.MAX_SAFE_INTEGER.toString().length;\nconst bigIntPropertyRe = new RegExp(String.raw`(\"\\w+\":\\s*)(\\d{${safeLength},})(\\s*[,}])`, 'm');\nconst bigIntArrayItemRe = new RegExp(String.raw`([[,]\\s*)(\\d{${safeLength},})\\b`, 'm');\nexport const parseBigIntPolicy: PipelinePolicy = {\n  name: 'parse-big-int',\n  async sendRequest(request, next) {\n    const response = await next(request);\n    if (response.bodyAsText == null) return response;\n    // TODO: replace with https://caniuse.com/mdn-javascript_builtins_json_parse_reviver_parameter_context_argument when it gets support in FF and Safari\n    response.bodyAsText = response.bodyAsText.replaceAll(\n      new RegExp(bigIntPropertyRe, 'g'),\n      (matched) => {\n        const match = matched.match(bigIntPropertyRe);\n        if (match == null) throw new UnexpectedTsError();\n        const [, name, value, end] = match;\n        return [\n          name,\n          +value > Number.MAX_SAFE_INTEGER ? `\"${bigIntPrefix}${value}\"` : value,\n          end,\n        ].join('');\n      },\n    );\n    // FIXME: may break strings inside json\n    response.bodyAsText = response.bodyAsText.replaceAll(\n      new RegExp(bigIntArrayItemRe, 'g'),\n      (matched) => {\n        const match = matched.match(bigIntArrayItemRe);\n        if (match == null) throw new UnexpectedTsError();\n        const [, prefix, value] = match;\n        return `${prefix}\"${bigIntPrefix}${value}\"`;\n      },\n    );\n    return response;\n  },\n};\n\nexport const genRequestQueuesPolicy = (): AdditionalPolicyConfig => {\n  const requestQueues = new Map<string, Promise<unknown>>();\n\n  return {\n    policy: {\n      name: 'request-queues',\n      async sendRequest(request, next) {\n        const key = request.headers.get('__queue');\n        request.headers.delete('__queue');\n        const getResponse = async (): Promise<PipelineResponse> => next(request);\n        if (key == null) return getResponse();\n        const req = (requestQueues.get(key) ?? Promise.resolve()).then(getResponse);\n        requestQueues.set(\n          key,\n          req.catch(() => {}),\n        );\n        return req;\n      },\n    },\n    position: 'perCall',\n  };\n};\n\nexport const genCombineGetRequestsPolicy = (): AdditionalPolicyConfig => {\n  const pendingGetRequests = new Map<string, Promise<PipelineResponse>>();\n\n  return {\n    policy: {\n      name: 'combine-get-requests',\n      async sendRequest(request, next) {\n        if (request.method !== 'GET') return next(request);\n        const key = JSON.stringify([request.url, request.body]);\n        const response = pendingGetRequests.get(key) ?? next(request);\n        pendingGetRequests.set(key, response);\n        try {\n          return await response;\n        } finally {\n          pendingGetRequests.delete(key);\n        }\n      },\n    },\n    position: 'perCall',\n  };\n};\n\nexport const genAggressiveCacheGetResponsesPolicy = (): AdditionalPolicyConfig => {\n  const getRequests = new Map<string, Promise<PipelineResponse>>();\n\n  return {\n    policy: {\n      name: 'aggressive-cache-get-responses',\n      async sendRequest(request, next) {\n        if (request.method !== 'GET') return next(request);\n        const key = JSON.stringify([request.url, request.body]);\n        const response = getRequests.get(key) ?? next(request);\n        getRequests.set(key, response);\n        return response;\n      },\n    },\n    position: 'perCall',\n  };\n};\n\nexport const genErrorFormatterPolicy = (\n  getMessage: (b: any) => string,\n): AdditionalPolicyConfig => ({\n  policy: {\n    name: 'error-formatter',\n    async sendRequest(request, next) {\n      try {\n        return await next(request);\n      } catch (error) {\n        if (\n          !(error instanceof RestError) ||\n          error.request == null ||\n          error.message.startsWith('Error ')\n        )\n          throw error;\n        const prefix = `${new URL(error.request.url).pathname.slice(1)} error`;\n\n        if (error.response?.bodyAsText == null) {\n          if (error.message === '') error.message = `${prefix}: ${error.code}`;\n          throw error;\n        }\n\n        const body = (error.response as FullOperationResponse).parsedBody;\n        error.message = prefix;\n        const message = body == null ? ` ${error.response.status} status code` : getMessage(body);\n        if (message !== '') error.message += `:${message}`;\n        throw error;\n      }\n    },\n  },\n  position: 'perCall',\n});\n\nexport const genVersionCheckPolicy = (\n  name: string,\n  versionCb: (options: OperationOptions) => Promise<string>,\n  geVersion: string,\n  ltVersion: string,\n  ignoreVersion: boolean,\n): AdditionalPolicyConfig => ({\n  policy: {\n    name: 'version-check',\n    async sendRequest(request, next) {\n      if (request.headers.has('__version-check')) {\n        request.headers.delete('__version-check');\n        return next(request);\n      }\n      const options = { requestOptions: { customHeaders: { '__version-check': 'true' } } };\n      const args = [await versionCb(options), geVersion, ltVersion] as const;\n      if (!semverSatisfies(...args)) {\n        const error = new UnsupportedVersionError(name, ...args);\n        if (ignoreVersion) console.warn(error.message);\n        else throw error;\n      }\n      return next(request);\n    },\n  },\n  position: 'perCall',\n});\n\nexport const genRetryOnFailurePolicy = (\n  retryCount: number,\n  retryOverallDelay: number,\n): AdditionalPolicyConfig => ({\n  policy: {\n    name: 'retry-on-failure',\n    async sendRequest(request, next) {\n      if (request.headers.get('__no-retry') != null) {\n        request.headers.delete('__no-retry');\n        return next(request);\n      }\n\n      const retryCode = request.headers.get('__retry-code') ?? NaN;\n      request.headers.delete('__retry-code');\n      const statusesToNotRetry = [200, 400, 403, 410, 500].filter((c) => c !== +retryCode);\n\n      const intervals = new Array(retryCount)\n        .fill(0)\n        .map((_, idx) => ((idx + 1) / retryCount) ** 2);\n      const intervalSum = intervals.reduce((a, b) => a + b, 0);\n      const intervalsInMs = intervals.map((e) => Math.floor((e / intervalSum) * retryOverallDelay));\n\n      let error = new RestError('Not expected to be thrown');\n      for (let attempt = 0; attempt <= retryCount; attempt += 1) {\n        if (attempt !== 0) {\n          await pause(intervalsInMs[attempt - 1]);\n          const urlParsed = new URL(request.url);\n          urlParsed.searchParams.set('__sdk-retry', attempt.toString());\n          request.url = urlParsed.toString();\n        }\n        try {\n          return await next(request);\n        } catch (e) {\n          if (!(e instanceof RestError)) throw e;\n          if (statusesToNotRetry.includes(e.response?.status ?? 0)) throw e;\n          error = e;\n        }\n      }\n      throw error;\n    },\n  },\n  position: 'perCall',\n});\n","import * as coreClient from \"@azure/core-client\";\n\nexport const Account: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"Account\",\n    modelProperties: {\n      id: {\n        serializedName: \"id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      balance: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"balance\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      nonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"nonce\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      payable: {\n        serializedName: \"payable\",\n        type: {\n          name: \"Boolean\",\n        },\n      },\n      kind: {\n        serializedName: \"kind\",\n        type: {\n          name: \"Enum\",\n          allowedValues: [\"basic\", \"generalized\"],\n        },\n      },\n      contractId: {\n        serializedName: \"contract_id\",\n        type: {\n          name: \"String\",\n        },\n      },\n      authFun: {\n        serializedName: \"auth_fun\",\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const ErrorModel: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"ErrorModel\",\n    modelProperties: {\n      reason: {\n        serializedName: \"reason\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      errorCode: {\n        serializedName: \"error_code\",\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const NextNonceResponse: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"NextNonceResponse\",\n    modelProperties: {\n      nextNonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"next_nonce\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const SignedTxs: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"SignedTxs\",\n    modelProperties: {\n      transactions: {\n        serializedName: \"transactions\",\n        required: true,\n        type: {\n          name: \"Sequence\",\n          element: {\n            type: {\n              name: \"Composite\",\n              className: \"SignedTx\",\n            },\n          },\n        },\n      },\n    },\n  },\n};\n\nexport const SignedTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"SignedTx\",\n    modelProperties: {\n      tx: {\n        serializedName: \"tx\",\n        type: {\n          name: \"Composite\",\n          className: \"Tx\",\n        },\n      },\n      blockHeight: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: -1,\n        },\n        serializedName: \"block_height\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      blockHash: {\n        serializedName: \"block_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      hash: {\n        serializedName: \"hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      encodedTx: {\n        serializedName: \"encoded_tx\",\n        type: {\n          name: \"String\",\n        },\n      },\n      signatures: {\n        serializedName: \"signatures\",\n        required: true,\n        type: {\n          name: \"Sequence\",\n          element: {\n            type: {\n              name: \"String\",\n            },\n          },\n        },\n      },\n    },\n  },\n};\n\nexport const Tx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"Tx\",\n    modelProperties: {\n      recipientId: {\n        serializedName: \"recipient_id\",\n        type: {\n          name: \"String\",\n        },\n      },\n      amount: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"amount\",\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      fee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      ttl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"ttl\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      senderId: {\n        serializedName: \"sender_id\",\n        type: {\n          name: \"String\",\n        },\n      },\n      nonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"nonce\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      payload: {\n        serializedName: \"payload\",\n        type: {\n          name: \"String\",\n        },\n      },\n      initiatorId: {\n        serializedName: \"initiator_id\",\n        type: {\n          name: \"String\",\n        },\n      },\n      initiatorAmount: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"initiator_amount\",\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      responderId: {\n        serializedName: \"responder_id\",\n        type: {\n          name: \"String\",\n        },\n      },\n      responderAmount: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"responder_amount\",\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      channelReserve: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"channel_reserve\",\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      lockPeriod: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"lock_period\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      stateHash: {\n        serializedName: \"state_hash\",\n        type: {\n          name: \"String\",\n        },\n      },\n      delegateIds: {\n        serializedName: \"delegate_ids\",\n        type: {\n          name: \"Composite\",\n          className: \"Delegates\",\n        },\n      },\n      channelId: {\n        serializedName: \"channel_id\",\n        type: {\n          name: \"String\",\n        },\n      },\n      fromId: {\n        serializedName: \"from_id\",\n        type: {\n          name: \"String\",\n        },\n      },\n      round: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"round\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      toId: {\n        serializedName: \"to_id\",\n        type: {\n          name: \"String\",\n        },\n      },\n      update: {\n        serializedName: \"update\",\n        type: {\n          name: \"Composite\",\n          className: \"OffChainUpdate\",\n        },\n      },\n      offchainTrees: {\n        serializedName: \"offchain_trees\",\n        type: {\n          name: \"String\",\n        },\n      },\n      initiatorAmountFinal: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"initiator_amount_final\",\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      responderAmountFinal: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"responder_amount_final\",\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      poi: {\n        serializedName: \"poi\",\n        type: {\n          name: \"String\",\n        },\n      },\n      initiatorDelegateIds: {\n        serializedName: \"initiator_delegate_ids\",\n        type: {\n          name: \"Sequence\",\n          element: {\n            type: {\n              name: \"String\",\n            },\n          },\n        },\n      },\n      responderDelegateIds: {\n        serializedName: \"responder_delegate_ids\",\n        type: {\n          name: \"Sequence\",\n          element: {\n            type: {\n              name: \"String\",\n            },\n          },\n        },\n      },\n      queryFormat: {\n        serializedName: \"query_format\",\n        type: {\n          name: \"String\",\n        },\n      },\n      responseFormat: {\n        serializedName: \"response_format\",\n        type: {\n          name: \"String\",\n        },\n      },\n      queryFee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"query_fee\",\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      oracleTtl: {\n        serializedName: \"oracle_ttl\",\n        type: {\n          name: \"Composite\",\n          className: \"RelativeTTL\",\n        },\n      },\n      accountId: {\n        serializedName: \"account_id\",\n        type: {\n          name: \"String\",\n        },\n      },\n      abiVersion: {\n        constraints: {\n          InclusiveMaximum: 65535,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"abi_version\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      oracleId: {\n        serializedName: \"oracle_id\",\n        type: {\n          name: \"String\",\n        },\n      },\n      query: {\n        serializedName: \"query\",\n        type: {\n          name: \"String\",\n        },\n      },\n      queryTtl: {\n        serializedName: \"query_ttl\",\n        type: {\n          name: \"Composite\",\n          className: \"Ttl\",\n        },\n      },\n      responseTtl: {\n        serializedName: \"response_ttl\",\n        type: {\n          name: \"Composite\",\n          className: \"RelativeTTL\",\n        },\n      },\n      queryId: {\n        serializedName: \"query_id\",\n        type: {\n          name: \"String\",\n        },\n      },\n      response: {\n        serializedName: \"response\",\n        type: {\n          name: \"String\",\n        },\n      },\n      commitmentId: {\n        serializedName: \"commitment_id\",\n        type: {\n          name: \"String\",\n        },\n      },\n      name: {\n        serializedName: \"name\",\n        type: {\n          name: \"String\",\n        },\n      },\n      nameSalt: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"name_salt\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      nameFee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"name_fee\",\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      nameId: {\n        serializedName: \"name_id\",\n        type: {\n          name: \"String\",\n        },\n      },\n      nameTtl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"name_ttl\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      pointers: {\n        serializedName: \"pointers\",\n        type: {\n          name: \"Sequence\",\n          element: {\n            type: {\n              name: \"Composite\",\n              className: \"NamePointer\",\n            },\n          },\n        },\n      },\n      clientTtl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"client_ttl\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      ownerId: {\n        serializedName: \"owner_id\",\n        type: {\n          name: \"String\",\n        },\n      },\n      code: {\n        serializedName: \"code\",\n        type: {\n          name: \"String\",\n        },\n      },\n      vmVersion: {\n        constraints: {\n          InclusiveMaximum: 65535,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"vm_version\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      deposit: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"deposit\",\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      gas: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"gas\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      gasPrice: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"gas_price\",\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      callData: {\n        serializedName: \"call_data\",\n        type: {\n          name: \"String\",\n        },\n      },\n      callerId: {\n        serializedName: \"caller_id\",\n        type: {\n          name: \"String\",\n        },\n      },\n      contractId: {\n        serializedName: \"contract_id\",\n        type: {\n          name: \"String\",\n        },\n      },\n      authFun: {\n        constraints: {\n          Pattern: new RegExp(\"^(0x|0X)?[a-fA-F0-9]+$\"),\n        },\n        serializedName: \"auth_fun\",\n        type: {\n          name: \"String\",\n        },\n      },\n      gaId: {\n        serializedName: \"ga_id\",\n        type: {\n          name: \"String\",\n        },\n      },\n      authData: {\n        serializedName: \"auth_data\",\n        type: {\n          name: \"String\",\n        },\n      },\n      tx: {\n        serializedName: \"tx\",\n        type: {\n          name: \"Composite\",\n          className: \"SignedTx\",\n        },\n      },\n      payerId: {\n        serializedName: \"payer_id\",\n        type: {\n          name: \"String\",\n        },\n      },\n      version: {\n        constraints: {\n          InclusiveMaximum: 4294967295,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"version\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      type: {\n        serializedName: \"type\",\n        required: true,\n        type: {\n          name: \"Enum\",\n          allowedValues: [\n            \"SpendTx\",\n            \"ChannelCreateTx\",\n            \"ChannelDepositTx\",\n            \"ChannelWithdrawTx\",\n            \"ChannelForceProgressTx\",\n            \"ChannelCloseMutualTx\",\n            \"ChannelCloseSoloTx\",\n            \"ChannelSlashTx\",\n            \"ChannelSettleTx\",\n            \"ChannelSnapshotSoloTx\",\n            \"ChannelSetDelegatesTx\",\n            \"OracleRegisterTx\",\n            \"OracleExtendTx\",\n            \"OracleQueryTx\",\n            \"OracleRespondTx\",\n            \"NamePreclaimTx\",\n            \"NameClaimTx\",\n            \"NameUpdateTx\",\n            \"NameTransferTx\",\n            \"NameRevokeTx\",\n            \"ContractCreateTx\",\n            \"ContractCallTx\",\n            \"GAAttachTx\",\n            \"GAMetaTx\",\n            \"PayingForTx\",\n          ],\n        },\n      },\n    },\n  },\n};\n\nexport const Delegates: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"Delegates\",\n    modelProperties: {\n      initiator: {\n        serializedName: \"initiator\",\n        type: {\n          name: \"Sequence\",\n          element: {\n            type: {\n              name: \"String\",\n            },\n          },\n        },\n      },\n      responder: {\n        serializedName: \"responder\",\n        type: {\n          name: \"Sequence\",\n          element: {\n            type: {\n              name: \"String\",\n            },\n          },\n        },\n      },\n    },\n  },\n};\n\nexport const OffChainUpdate: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"OffChainUpdate\",\n    uberParent: \"OffChainUpdate\",\n    polymorphicDiscriminator: {\n      serializedName: \"op\",\n      clientName: \"op\",\n    },\n    modelProperties: {\n      op: {\n        serializedName: \"op\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const RelativeTTL: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"RelativeTTL\",\n    modelProperties: {\n      type: {\n        defaultValue: \"delta\",\n        isConstant: true,\n        serializedName: \"type\",\n        type: {\n          name: \"String\",\n        },\n      },\n      value: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"value\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const Ttl: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"Ttl\",\n    modelProperties: {\n      type: {\n        serializedName: \"type\",\n        required: true,\n        type: {\n          name: \"Enum\",\n          allowedValues: [\"delta\", \"block\"],\n        },\n      },\n      value: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"value\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const NamePointer: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"NamePointer\",\n    modelProperties: {\n      key: {\n        serializedName: \"key\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      encodedKey: {\n        serializedName: \"encoded_key\",\n        type: {\n          name: \"String\",\n        },\n      },\n      id: {\n        serializedName: \"id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const AuctionEntry: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"AuctionEntry\",\n    modelProperties: {\n      id: {\n        serializedName: \"id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      startedAt: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"started_at\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      endsAt: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"ends_at\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      highestBidder: {\n        serializedName: \"highest_bidder\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      highestBid: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"highest_bid\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n    },\n  },\n};\n\nexport const Channel: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"Channel\",\n    modelProperties: {\n      id: {\n        serializedName: \"id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      initiatorId: {\n        serializedName: \"initiator_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      responderId: {\n        serializedName: \"responder_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      channelAmount: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"channel_amount\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      initiatorAmount: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"initiator_amount\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      responderAmount: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"responder_amount\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      channelReserve: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"channel_reserve\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      delegateIds: {\n        serializedName: \"delegate_ids\",\n        type: {\n          name: \"Composite\",\n          className: \"Delegates\",\n        },\n      },\n      stateHash: {\n        serializedName: \"state_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      round: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"round\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      soloRound: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"solo_round\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      lockPeriod: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"lock_period\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      lockedUntil: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"locked_until\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const ContractObject: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"ContractObject\",\n    modelProperties: {\n      id: {\n        serializedName: \"id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      ownerId: {\n        serializedName: \"owner_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      vmVersion: {\n        constraints: {\n          InclusiveMaximum: 65535,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"vm_version\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      abiVersion: {\n        constraints: {\n          InclusiveMaximum: 65535,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"abi_version\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      active: {\n        serializedName: \"active\",\n        required: true,\n        type: {\n          name: \"Boolean\",\n        },\n      },\n      referrerIds: {\n        serializedName: \"referrer_ids\",\n        required: true,\n        type: {\n          name: \"Sequence\",\n          element: {\n            type: {\n              name: \"String\",\n            },\n          },\n        },\n      },\n      deposit: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"deposit\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n    },\n  },\n};\n\nexport const ByteCode: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"ByteCode\",\n    modelProperties: {\n      bytecode: {\n        serializedName: \"bytecode\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const PoI: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"PoI\",\n    modelProperties: {\n      poi: {\n        serializedName: \"poi\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const Currency: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"Currency\",\n    modelProperties: {\n      name: {\n        serializedName: \"name\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      symbol: {\n        serializedName: \"symbol\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      subunit: {\n        serializedName: \"subunit\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      subunitsPerUnit: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"subunits_per_unit\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      fiatConverstionUrl: {\n        serializedName: \"fiat_converstion_url\",\n        type: {\n          name: \"String\",\n        },\n      },\n      fiatConversionUrl: {\n        serializedName: \"fiat_conversion_url\",\n        type: {\n          name: \"String\",\n        },\n      },\n      logo: {\n        serializedName: \"logo\",\n        type: {\n          name: \"Composite\",\n          className: \"Image\",\n        },\n      },\n      primaryColour: {\n        serializedName: \"primary_colour\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      secondaryColour: {\n        serializedName: \"secondary_colour\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      networkName: {\n        serializedName: \"network_name\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const Image: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"Image\",\n    modelProperties: {\n      type: {\n        serializedName: \"type\",\n        type: {\n          name: \"String\",\n        },\n      },\n      data: {\n        serializedName: \"data\",\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const DryRunInput: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"DryRunInput\",\n    modelProperties: {\n      top: {\n        serializedName: \"top\",\n        type: {\n          name: \"String\",\n        },\n      },\n      accounts: {\n        serializedName: \"accounts\",\n        type: {\n          name: \"Sequence\",\n          element: {\n            type: {\n              name: \"Composite\",\n              className: \"DryRunAccount\",\n            },\n          },\n        },\n      },\n      txs: {\n        serializedName: \"txs\",\n        required: true,\n        type: {\n          name: \"Sequence\",\n          element: {\n            type: {\n              name: \"Composite\",\n              className: \"DryRunInputItem\",\n            },\n          },\n        },\n      },\n      txEvents: {\n        defaultValue: false,\n        serializedName: \"tx_events\",\n        type: {\n          name: \"Boolean\",\n        },\n      },\n    },\n  },\n};\n\nexport const DryRunAccount: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"DryRunAccount\",\n    modelProperties: {\n      pubKey: {\n        serializedName: \"pub_key\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      amount: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"amount\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n    },\n  },\n};\n\nexport const DryRunInputItem: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"DryRunInputItem\",\n    modelProperties: {\n      tx: {\n        serializedName: \"tx\",\n        type: {\n          name: \"String\",\n        },\n      },\n      txHash: {\n        serializedName: \"tx_hash\",\n        type: {\n          name: \"String\",\n        },\n      },\n      callReq: {\n        serializedName: \"call_req\",\n        type: {\n          name: \"Composite\",\n          className: \"DryRunCallReq\",\n        },\n      },\n    },\n  },\n};\n\nexport const DryRunCallReq: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"DryRunCallReq\",\n    modelProperties: {\n      calldata: {\n        serializedName: \"calldata\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      contract: {\n        serializedName: \"contract\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      amount: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"amount\",\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      gas: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"gas\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      caller: {\n        serializedName: \"caller\",\n        type: {\n          name: \"String\",\n        },\n      },\n      nonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"nonce\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      abiVersion: {\n        constraints: {\n          InclusiveMaximum: 65535,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"abi_version\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      context: {\n        serializedName: \"context\",\n        type: {\n          name: \"Composite\",\n          className: \"DryRunCallContext\",\n        },\n      },\n    },\n  },\n};\n\nexport const DryRunCallContext: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"DryRunCallContext\",\n    modelProperties: {\n      tx: {\n        serializedName: \"tx\",\n        type: {\n          name: \"String\",\n        },\n      },\n      txHash: {\n        serializedName: \"tx_hash\",\n        type: {\n          name: \"String\",\n        },\n      },\n      stateful: {\n        serializedName: \"stateful\",\n        type: {\n          name: \"Boolean\",\n        },\n      },\n    },\n  },\n};\n\nexport const DryRunResults: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"DryRunResults\",\n    modelProperties: {\n      results: {\n        serializedName: \"results\",\n        required: true,\n        type: {\n          name: \"Sequence\",\n          element: {\n            type: {\n              name: \"Composite\",\n              className: \"DryRunResult\",\n            },\n          },\n        },\n      },\n      txEvents: {\n        serializedName: \"tx_events\",\n        type: {\n          name: \"Sequence\",\n          element: {\n            type: {\n              name: \"Dictionary\",\n              value: { type: { name: \"any\" } },\n            },\n          },\n        },\n      },\n    },\n  },\n};\n\nexport const DryRunResult: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"DryRunResult\",\n    modelProperties: {\n      type: {\n        serializedName: \"type\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      result: {\n        serializedName: \"result\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      reason: {\n        serializedName: \"reason\",\n        type: {\n          name: \"String\",\n        },\n      },\n      callObj: {\n        serializedName: \"call_obj\",\n        type: {\n          name: \"Composite\",\n          className: \"ContractCallObject\",\n        },\n      },\n    },\n  },\n};\n\nexport const ContractCallObject: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"ContractCallObject\",\n    modelProperties: {\n      callerId: {\n        serializedName: \"caller_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      callerNonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"caller_nonce\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      height: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"height\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      contractId: {\n        serializedName: \"contract_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      gasPrice: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"gas_price\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      gasUsed: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"gas_used\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      log: {\n        serializedName: \"log\",\n        required: true,\n        type: {\n          name: \"Sequence\",\n          element: {\n            type: {\n              name: \"Composite\",\n              className: \"Event\",\n            },\n          },\n        },\n      },\n      returnValue: {\n        serializedName: \"return_value\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      returnType: {\n        serializedName: \"return_type\",\n        required: true,\n        type: {\n          name: \"Enum\",\n          allowedValues: [\"ok\", \"error\", \"revert\"],\n        },\n      },\n    },\n  },\n};\n\nexport const Event: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"Event\",\n    modelProperties: {\n      address: {\n        serializedName: \"address\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      topics: {\n        serializedName: \"topics\",\n        required: true,\n        type: {\n          name: \"Sequence\",\n          element: {\n            constraints: {\n              InclusiveMinimum: 0,\n            },\n            type: {\n              // @ts-expect-error we are extending autorest with BigInt support\n              name: \"BigInt\",\n            },\n          },\n        },\n      },\n      data: {\n        serializedName: \"data\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const Generation: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"Generation\",\n    modelProperties: {\n      keyBlock: {\n        serializedName: \"key_block\",\n        type: {\n          name: \"Composite\",\n          className: \"KeyBlock\",\n        },\n      },\n      microBlocks: {\n        serializedName: \"micro_blocks\",\n        required: true,\n        type: {\n          name: \"Sequence\",\n          element: {\n            type: {\n              name: \"String\",\n            },\n          },\n        },\n      },\n    },\n  },\n};\n\nexport const KeyBlock: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"KeyBlock\",\n    modelProperties: {\n      hash: {\n        serializedName: \"hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      height: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"height\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      prevHash: {\n        serializedName: \"prev_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      prevKeyHash: {\n        serializedName: \"prev_key_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      stateHash: {\n        serializedName: \"state_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      miner: {\n        serializedName: \"miner\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      beneficiary: {\n        serializedName: \"beneficiary\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      flags: {\n        serializedName: \"flags\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      target: {\n        constraints: {\n          InclusiveMaximum: 4294967295,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"target\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      pow: {\n        constraints: {\n          MinItems: 42,\n          MaxItems: 42,\n        },\n        serializedName: \"pow\",\n        type: {\n          name: \"Sequence\",\n          element: {\n            constraints: {\n              InclusiveMaximum: 4294967295,\n              InclusiveMinimum: 0,\n            },\n            type: {\n              name: \"Number\",\n            },\n          },\n        },\n      },\n      nonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"nonce\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      time: {\n        serializedName: \"time\",\n        required: true,\n        type: {\n          name: \"UnixTime\",\n        },\n      },\n      version: {\n        constraints: {\n          InclusiveMaximum: 4294967295,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"version\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      info: {\n        serializedName: \"info\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const Header: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"Header\",\n    modelProperties: {\n      hash: {\n        serializedName: \"hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      height: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"height\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      prevHash: {\n        serializedName: \"prev_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      prevKeyHash: {\n        serializedName: \"prev_key_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      stateHash: {\n        serializedName: \"state_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      miner: {\n        serializedName: \"miner\",\n        type: {\n          name: \"String\",\n        },\n      },\n      beneficiary: {\n        serializedName: \"beneficiary\",\n        type: {\n          name: \"String\",\n        },\n      },\n      flags: {\n        serializedName: \"flags\",\n        type: {\n          name: \"String\",\n        },\n      },\n      target: {\n        constraints: {\n          InclusiveMaximum: 4294967295,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"target\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      pow: {\n        constraints: {\n          MinItems: 42,\n          MaxItems: 42,\n        },\n        serializedName: \"pow\",\n        type: {\n          name: \"Sequence\",\n          element: {\n            constraints: {\n              InclusiveMaximum: 4294967295,\n              InclusiveMinimum: 0,\n            },\n            type: {\n              name: \"Number\",\n            },\n          },\n        },\n      },\n      nonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"nonce\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      time: {\n        serializedName: \"time\",\n        required: true,\n        type: {\n          name: \"UnixTime\",\n        },\n      },\n      version: {\n        constraints: {\n          InclusiveMaximum: 4294967295,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"version\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      info: {\n        serializedName: \"info\",\n        type: {\n          name: \"String\",\n        },\n      },\n      pofHash: {\n        serializedName: \"pof_hash\",\n        type: {\n          name: \"String\",\n        },\n      },\n      txsHash: {\n        serializedName: \"txs_hash\",\n        type: {\n          name: \"String\",\n        },\n      },\n      signature: {\n        serializedName: \"signature\",\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const PinningTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"PinningTx\",\n    modelProperties: {\n      epoch: {\n        serializedName: \"epoch\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      height: {\n        serializedName: \"height\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      blockHash: {\n        serializedName: \"block_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      parentPayload: {\n        serializedName: \"parent_payload\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      lastLeader: {\n        serializedName: \"last_leader\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      parentType: {\n        serializedName: \"parent_type\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      parentNetworkId: {\n        serializedName: \"parent_network_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const HCContractPubkeys: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"HCContractPubkeys\",\n    modelProperties: {\n      staking: {\n        serializedName: \"staking\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      election: {\n        serializedName: \"election\",\n        type: {\n          name: \"String\",\n        },\n      },\n      rewards: {\n        serializedName: \"rewards\",\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const HashResponse: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"HashResponse\",\n    modelProperties: {\n      hash: {\n        serializedName: \"hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const HeightResponse: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"HeightResponse\",\n    modelProperties: {\n      height: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"height\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const MicroBlockHeader: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"MicroBlockHeader\",\n    modelProperties: {\n      hash: {\n        serializedName: \"hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      height: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"height\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      pofHash: {\n        serializedName: \"pof_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      prevHash: {\n        serializedName: \"prev_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      prevKeyHash: {\n        serializedName: \"prev_key_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      stateHash: {\n        serializedName: \"state_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      txsHash: {\n        serializedName: \"txs_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      signature: {\n        serializedName: \"signature\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      time: {\n        serializedName: \"time\",\n        required: true,\n        type: {\n          name: \"UnixTime\",\n        },\n      },\n      version: {\n        constraints: {\n          InclusiveMaximum: 4294967295,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"version\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const CountResponse: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"CountResponse\",\n    modelProperties: {\n      count: {\n        constraints: {\n          InclusiveMaximum: 4294967295,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"count\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const NameEntry: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"NameEntry\",\n    modelProperties: {\n      id: {\n        serializedName: \"id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      owner: {\n        serializedName: \"owner\",\n        type: {\n          name: \"String\",\n        },\n      },\n      ttl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"ttl\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      pointers: {\n        serializedName: \"pointers\",\n        required: true,\n        type: {\n          name: \"Sequence\",\n          element: {\n            type: {\n              name: \"Composite\",\n              className: \"NamePointerComplete\",\n            },\n          },\n        },\n      },\n    },\n  },\n};\n\nexport const NamePointerComplete: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"NamePointerComplete\",\n    modelProperties: {\n      key: {\n        serializedName: \"key\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      encodedKey: {\n        serializedName: \"encoded_key\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      id: {\n        serializedName: \"id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const RegisteredOracle: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"RegisteredOracle\",\n    modelProperties: {\n      id: {\n        serializedName: \"id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      queryFormat: {\n        serializedName: \"query_format\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      responseFormat: {\n        serializedName: \"response_format\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      queryFee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"query_fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      ttl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"ttl\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      abiVersion: {\n        constraints: {\n          InclusiveMaximum: 65535,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"abi_version\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const OracleQueries: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"OracleQueries\",\n    modelProperties: {\n      oracleQueries: {\n        serializedName: \"oracle_queries\",\n        required: true,\n        type: {\n          name: \"Sequence\",\n          element: {\n            type: {\n              name: \"Composite\",\n              className: \"OracleQuery\",\n            },\n          },\n        },\n      },\n    },\n  },\n};\n\nexport const OracleQuery: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"OracleQuery\",\n    modelProperties: {\n      id: {\n        serializedName: \"id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      senderId: {\n        serializedName: \"sender_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      senderNonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"sender_nonce\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      oracleId: {\n        serializedName: \"oracle_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      query: {\n        serializedName: \"query\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      response: {\n        serializedName: \"response\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      ttl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"ttl\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      responseTtl: {\n        serializedName: \"response_ttl\",\n        type: {\n          name: \"Composite\",\n          className: \"Ttl\",\n        },\n      },\n      fee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n    },\n  },\n};\n\nexport const PeerPubKey: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"PeerPubKey\",\n    modelProperties: {\n      pubkey: {\n        serializedName: \"pubkey\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const GasPricesItem: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"GasPricesItem\",\n    modelProperties: {\n      minGasPrice: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"min_gas_price\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      utilization: {\n        constraints: {\n          InclusiveMaximum: 100,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"utilization\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      minutes: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"minutes\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const Status: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"Status\",\n    modelProperties: {\n      genesisKeyBlockHash: {\n        serializedName: \"genesis_key_block_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      solutions: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"solutions\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      difficulty: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"difficulty\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      hashrate: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"hashrate\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      syncing: {\n        serializedName: \"syncing\",\n        required: true,\n        type: {\n          name: \"Boolean\",\n        },\n      },\n      syncProgress: {\n        constraints: {\n          InclusiveMaximum: 100,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"sync_progress\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      uptime: {\n        serializedName: \"uptime\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      listening: {\n        serializedName: \"listening\",\n        required: true,\n        type: {\n          name: \"Boolean\",\n        },\n      },\n      protocols: {\n        serializedName: \"protocols\",\n        required: true,\n        type: {\n          name: \"Sequence\",\n          element: {\n            type: {\n              name: \"Composite\",\n              className: \"Protocol\",\n            },\n          },\n        },\n      },\n      nodeVersion: {\n        serializedName: \"node_version\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      nodeRevision: {\n        serializedName: \"node_revision\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      peerCount: {\n        constraints: {\n          InclusiveMaximum: 4294967295,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"peer_count\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      peerConnections: {\n        serializedName: \"peer_connections\",\n        type: {\n          name: \"Composite\",\n          className: \"PeerConnections\",\n        },\n      },\n      pendingTransactionsCount: {\n        constraints: {\n          InclusiveMaximum: 4294967295,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"pending_transactions_count\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      networkId: {\n        serializedName: \"network_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      peerPubkey: {\n        serializedName: \"peer_pubkey\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      topKeyBlockHash: {\n        serializedName: \"top_key_block_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      topBlockHeight: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"top_block_height\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const Protocol: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"Protocol\",\n    modelProperties: {\n      version: {\n        constraints: {\n          InclusiveMaximum: 4294967295,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"version\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      effectiveAtHeight: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"effective_at_height\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const PeerConnections: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"PeerConnections\",\n    modelProperties: {\n      inbound: {\n        constraints: {\n          InclusiveMaximum: 4294967295,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"inbound\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      outbound: {\n        constraints: {\n          InclusiveMaximum: 4294967295,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"outbound\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const SyncStatus: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"SyncStatus\",\n    modelProperties: {\n      progress: {\n        serializedName: \"progress\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      target: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"target\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      speed: {\n        serializedName: \"speed\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      estimate: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"estimate\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const EncodedTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"EncodedTx\",\n    modelProperties: {\n      tx: {\n        serializedName: \"tx\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const PostTxResponse: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"PostTxResponse\",\n    modelProperties: {\n      txHash: {\n        serializedName: \"tx_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const TxInfoObject: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"TxInfoObject\",\n    modelProperties: {\n      callInfo: {\n        serializedName: \"call_info\",\n        type: {\n          name: \"Composite\",\n          className: \"ContractCallObject\",\n        },\n      },\n      gaInfo: {\n        serializedName: \"ga_info\",\n        type: {\n          name: \"Composite\",\n          className: \"GAObject\",\n        },\n      },\n      txInfo: {\n        serializedName: \"tx_info\",\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const GAObject: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"GAObject\",\n    modelProperties: {\n      callerId: {\n        serializedName: \"caller_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      height: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"height\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      gasPrice: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"gas_price\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      gasUsed: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"gas_used\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      returnValue: {\n        serializedName: \"return_value\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      returnType: {\n        serializedName: \"return_type\",\n        required: true,\n        type: {\n          name: \"Enum\",\n          allowedValues: [\"ok\", \"error\"],\n        },\n      },\n      innerObject: {\n        serializedName: \"inner_object\",\n        type: {\n          name: \"Composite\",\n          className: \"TxInfoObject\",\n        },\n      },\n    },\n  },\n};\n\nexport const ChannelCloseMutualTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"ChannelCloseMutualTx\",\n    modelProperties: {\n      channelId: {\n        serializedName: \"channel_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      fromId: {\n        serializedName: \"from_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      initiatorAmountFinal: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"initiator_amount_final\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      responderAmountFinal: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"responder_amount_final\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      ttl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"ttl\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      fee: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      nonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"nonce\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const ChannelCloseSoloTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"ChannelCloseSoloTx\",\n    modelProperties: {\n      channelId: {\n        serializedName: \"channel_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      fromId: {\n        serializedName: \"from_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      payload: {\n        serializedName: \"payload\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      ttl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"ttl\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      fee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      nonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"nonce\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      poi: {\n        serializedName: \"poi\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const ChannelCreateTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"ChannelCreateTx\",\n    modelProperties: {\n      initiatorId: {\n        serializedName: \"initiator_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      initiatorAmount: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"initiator_amount\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      responderId: {\n        serializedName: \"responder_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      responderAmount: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"responder_amount\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      channelReserve: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"channel_reserve\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      lockPeriod: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"lock_period\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      ttl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"ttl\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      fee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      nonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"nonce\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      stateHash: {\n        serializedName: \"state_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      delegateIds: {\n        serializedName: \"delegate_ids\",\n        type: {\n          name: \"Composite\",\n          className: \"Delegates\",\n        },\n      },\n    },\n  },\n};\n\nexport const ChannelDepositTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"ChannelDepositTx\",\n    modelProperties: {\n      channelId: {\n        serializedName: \"channel_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      fromId: {\n        serializedName: \"from_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      amount: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"amount\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      ttl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"ttl\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      fee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      nonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"nonce\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      stateHash: {\n        serializedName: \"state_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      round: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"round\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const ChannelForceProgressTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"ChannelForceProgressTx\",\n    modelProperties: {\n      channelId: {\n        serializedName: \"channel_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      fromId: {\n        serializedName: \"from_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      payload: {\n        serializedName: \"payload\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      round: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"round\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      update: {\n        serializedName: \"update\",\n        type: {\n          name: \"Composite\",\n          className: \"OffChainUpdate\",\n        },\n      },\n      stateHash: {\n        serializedName: \"state_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      ttl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"ttl\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      fee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      nonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"nonce\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      offchainTrees: {\n        serializedName: \"offchain_trees\",\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const ChannelSetDelegatesTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"ChannelSetDelegatesTx\",\n    modelProperties: {\n      channelId: {\n        serializedName: \"channel_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      fromId: {\n        serializedName: \"from_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      initiatorDelegateIds: {\n        serializedName: \"initiator_delegate_ids\",\n        required: true,\n        type: {\n          name: \"Sequence\",\n          element: {\n            type: {\n              name: \"String\",\n            },\n          },\n        },\n      },\n      responderDelegateIds: {\n        serializedName: \"responder_delegate_ids\",\n        required: true,\n        type: {\n          name: \"Sequence\",\n          element: {\n            type: {\n              name: \"String\",\n            },\n          },\n        },\n      },\n      stateHash: {\n        serializedName: \"state_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      round: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"round\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      payload: {\n        serializedName: \"payload\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      ttl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"ttl\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      fee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      nonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"nonce\",\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const ChannelSettleTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"ChannelSettleTx\",\n    modelProperties: {\n      channelId: {\n        serializedName: \"channel_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      fromId: {\n        serializedName: \"from_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      initiatorAmountFinal: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"initiator_amount_final\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      responderAmountFinal: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"responder_amount_final\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      ttl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"ttl\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      fee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      nonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"nonce\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const ChannelSlashTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"ChannelSlashTx\",\n    modelProperties: {\n      channelId: {\n        serializedName: \"channel_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      fromId: {\n        serializedName: \"from_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      payload: {\n        serializedName: \"payload\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      ttl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"ttl\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      fee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      nonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"nonce\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      poi: {\n        serializedName: \"poi\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const ChannelSnapshotSoloTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"ChannelSnapshotSoloTx\",\n    modelProperties: {\n      channelId: {\n        serializedName: \"channel_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      fromId: {\n        serializedName: \"from_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      payload: {\n        serializedName: \"payload\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      ttl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"ttl\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      fee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      nonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"nonce\",\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const ChannelWithdrawTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"ChannelWithdrawTx\",\n    modelProperties: {\n      channelId: {\n        serializedName: \"channel_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      toId: {\n        serializedName: \"to_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      amount: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"amount\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      ttl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"ttl\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      fee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      nonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"nonce\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      stateHash: {\n        serializedName: \"state_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      round: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"round\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const CheckTxInPoolResponse: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"CheckTxInPoolResponse\",\n    modelProperties: {\n      status: {\n        serializedName: \"status\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const CommitmentId: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"CommitmentId\",\n    modelProperties: {\n      commitmentId: {\n        serializedName: \"commitment_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const ContractCallTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"ContractCallTx\",\n    modelProperties: {\n      callerId: {\n        serializedName: \"caller_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      nonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"nonce\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      contractId: {\n        serializedName: \"contract_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      abiVersion: {\n        constraints: {\n          InclusiveMaximum: 65535,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"abi_version\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      fee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      ttl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"ttl\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      amount: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"amount\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      gas: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"gas\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      gasPrice: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"gas_price\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      callData: {\n        serializedName: \"call_data\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const ContractCreateTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"ContractCreateTx\",\n    modelProperties: {\n      ownerId: {\n        serializedName: \"owner_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      nonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"nonce\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      code: {\n        serializedName: \"code\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      vmVersion: {\n        constraints: {\n          InclusiveMaximum: 65535,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"vm_version\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      abiVersion: {\n        constraints: {\n          InclusiveMaximum: 65535,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"abi_version\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      deposit: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"deposit\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      amount: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"amount\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      gas: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"gas\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      gasPrice: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"gas_price\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      fee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      ttl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"ttl\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      callData: {\n        serializedName: \"call_data\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const UnsignedTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"UnsignedTx\",\n    modelProperties: {\n      tx: {\n        serializedName: \"tx\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const GAAttachTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"GAAttachTx\",\n    modelProperties: {\n      ownerId: {\n        serializedName: \"owner_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      nonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"nonce\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      code: {\n        serializedName: \"code\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      vmVersion: {\n        constraints: {\n          InclusiveMaximum: 65535,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"vm_version\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      abiVersion: {\n        constraints: {\n          InclusiveMaximum: 65535,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"abi_version\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      gas: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"gas\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      gasPrice: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"gas_price\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      fee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      ttl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"ttl\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      callData: {\n        serializedName: \"call_data\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      authFun: {\n        constraints: {\n          Pattern: new RegExp(\"^(0x|0X)?[a-fA-F0-9]+$\"),\n        },\n        serializedName: \"auth_fun\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const GAMetaTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"GAMetaTx\",\n    modelProperties: {\n      gaId: {\n        serializedName: \"ga_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      abiVersion: {\n        constraints: {\n          InclusiveMaximum: 65535,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"abi_version\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      gas: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"gas\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      gasPrice: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"gas_price\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      fee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      ttl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"ttl\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      authData: {\n        serializedName: \"auth_data\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      tx: {\n        serializedName: \"tx\",\n        type: {\n          name: \"Composite\",\n          className: \"SignedTx\",\n        },\n      },\n    },\n  },\n};\n\nexport const NameClaimTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"NameClaimTx\",\n    modelProperties: {\n      name: {\n        serializedName: \"name\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      nameSalt: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"name_salt\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      nameFee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"name_fee\",\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      fee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      ttl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"ttl\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      accountId: {\n        serializedName: \"account_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      nonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"nonce\",\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const NameHash: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"NameHash\",\n    modelProperties: {\n      nameId: {\n        serializedName: \"name_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const NamePreclaimTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"NamePreclaimTx\",\n    modelProperties: {\n      commitmentId: {\n        serializedName: \"commitment_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      fee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      ttl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"ttl\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      accountId: {\n        serializedName: \"account_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      nonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"nonce\",\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const NameRevokeTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"NameRevokeTx\",\n    modelProperties: {\n      nameId: {\n        serializedName: \"name_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      fee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      ttl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"ttl\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      accountId: {\n        serializedName: \"account_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      nonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"nonce\",\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const NameTransferTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"NameTransferTx\",\n    modelProperties: {\n      nameId: {\n        serializedName: \"name_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      recipientId: {\n        serializedName: \"recipient_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      fee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      ttl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"ttl\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      accountId: {\n        serializedName: \"account_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      nonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"nonce\",\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const NameUpdateTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"NameUpdateTx\",\n    modelProperties: {\n      nameId: {\n        serializedName: \"name_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      nameTtl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"name_ttl\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      pointers: {\n        serializedName: \"pointers\",\n        required: true,\n        type: {\n          name: \"Sequence\",\n          element: {\n            type: {\n              name: \"Composite\",\n              className: \"NamePointer\",\n            },\n          },\n        },\n      },\n      clientTtl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"client_ttl\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      fee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      ttl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"ttl\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      accountId: {\n        serializedName: \"account_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      nonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"nonce\",\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const PeerDetails: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"PeerDetails\",\n    modelProperties: {\n      host: {\n        serializedName: \"host\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      port: {\n        constraints: {\n          InclusiveMaximum: 4294967295,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"port\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      firstSeen: {\n        constraints: {\n          InclusiveMaximum: 4294967295,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"first_seen\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      lastSeen: {\n        constraints: {\n          InclusiveMaximum: 4294967295,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"last_seen\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      genesisHash: {\n        serializedName: \"genesis_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      topHash: {\n        serializedName: \"top_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      topDifficulty: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"top_difficulty\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      networkId: {\n        serializedName: \"network_id\",\n        type: {\n          name: \"String\",\n        },\n      },\n      nodeVersion: {\n        serializedName: \"node_version\",\n        type: {\n          name: \"String\",\n        },\n      },\n      nodeRevision: {\n        serializedName: \"node_revision\",\n        type: {\n          name: \"String\",\n        },\n      },\n      nodeVendor: {\n        serializedName: \"node_vendor\",\n        type: {\n          name: \"String\",\n        },\n      },\n      nodeOs: {\n        serializedName: \"node_os\",\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const OracleExtendTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"OracleExtendTx\",\n    modelProperties: {\n      fee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      oracleTtl: {\n        serializedName: \"oracle_ttl\",\n        type: {\n          name: \"Composite\",\n          className: \"RelativeTTL\",\n        },\n      },\n      oracleId: {\n        serializedName: \"oracle_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      nonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"nonce\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      ttl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"ttl\",\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const OracleQueryTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"OracleQueryTx\",\n    modelProperties: {\n      oracleId: {\n        serializedName: \"oracle_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      query: {\n        serializedName: \"query\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      queryFee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"query_fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      queryTtl: {\n        serializedName: \"query_ttl\",\n        type: {\n          name: \"Composite\",\n          className: \"Ttl\",\n        },\n      },\n      responseTtl: {\n        serializedName: \"response_ttl\",\n        type: {\n          name: \"Composite\",\n          className: \"RelativeTTL\",\n        },\n      },\n      fee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      ttl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"ttl\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      senderId: {\n        serializedName: \"sender_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      nonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"nonce\",\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const OracleRegisterTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"OracleRegisterTx\",\n    modelProperties: {\n      queryFormat: {\n        serializedName: \"query_format\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      responseFormat: {\n        serializedName: \"response_format\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      queryFee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"query_fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      oracleTtl: {\n        serializedName: \"oracle_ttl\",\n        type: {\n          name: \"Composite\",\n          className: \"Ttl\",\n        },\n      },\n      accountId: {\n        serializedName: \"account_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      nonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"nonce\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      fee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      ttl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"ttl\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      abiVersion: {\n        constraints: {\n          InclusiveMaximum: 65535,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"abi_version\",\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const OracleRespondTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"OracleRespondTx\",\n    modelProperties: {\n      queryId: {\n        serializedName: \"query_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      response: {\n        serializedName: \"response\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      responseTtl: {\n        serializedName: \"response_ttl\",\n        type: {\n          name: \"Composite\",\n          className: \"RelativeTTL\",\n        },\n      },\n      fee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      ttl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"ttl\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      oracleId: {\n        serializedName: \"oracle_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      nonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"nonce\",\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const PayingForTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"PayingForTx\",\n    modelProperties: {\n      payerId: {\n        serializedName: \"payer_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      fee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      nonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"nonce\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      tx: {\n        serializedName: \"tx\",\n        type: {\n          name: \"Composite\",\n          className: \"SignedTx\",\n        },\n      },\n    },\n  },\n};\n\nexport const PeerCount: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"PeerCount\",\n    modelProperties: {\n      connected: {\n        serializedName: \"connected\",\n        type: {\n          name: \"Composite\",\n          className: \"PeerCountConnected\",\n        },\n      },\n      available: {\n        serializedName: \"available\",\n        type: {\n          name: \"Composite\",\n          className: \"PeerCountAvailable\",\n        },\n      },\n      blocked: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"blocked\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const PeerCountConnected: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"PeerCountConnected\",\n    modelProperties: {\n      inbound: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"inbound\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      outbound: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"outbound\",\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const PeerCountAvailable: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"PeerCountAvailable\",\n    modelProperties: {\n      verified: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"verified\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      unverified: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"unverified\",\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const Peers: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"Peers\",\n    modelProperties: {\n      peers: {\n        serializedName: \"peers\",\n        required: true,\n        type: {\n          name: \"Sequence\",\n          element: {\n            type: {\n              name: \"String\",\n            },\n          },\n        },\n      },\n      blocked: {\n        serializedName: \"blocked\",\n        required: true,\n        type: {\n          name: \"Sequence\",\n          element: {\n            type: {\n              name: \"String\",\n            },\n          },\n        },\n      },\n    },\n  },\n};\n\nexport const PubKey: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"PubKey\",\n    modelProperties: {\n      pubKey: {\n        serializedName: \"pub_key\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const SpendTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"SpendTx\",\n    modelProperties: {\n      recipientId: {\n        serializedName: \"recipient_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      amount: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"amount\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      fee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      ttl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"ttl\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      senderId: {\n        serializedName: \"sender_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      nonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"nonce\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      payload: {\n        serializedName: \"payload\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const TokenSupply: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"TokenSupply\",\n    modelProperties: {\n      accounts: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"accounts\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      contracts: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"contracts\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      contractOracles: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"contract_oracles\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      locked: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"locked\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      oracles: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"oracles\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      oracleQueries: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"oracle_queries\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      pendingRewards: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"pending_rewards\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      total: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"total\",\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const OffChainCallContract: coreClient.CompositeMapper = {\n  serializedName: \"OffChainCallContract\",\n  type: {\n    name: \"Composite\",\n    className: \"OffChainCallContract\",\n    uberParent: \"OffChainUpdate\",\n    polymorphicDiscriminator: OffChainUpdate.type.polymorphicDiscriminator,\n    modelProperties: {\n      ...OffChainUpdate.type.modelProperties,\n      caller: {\n        serializedName: \"caller\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      contract: {\n        serializedName: \"contract\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      abiVersion: {\n        constraints: {\n          InclusiveMaximum: 65535,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"abi_version\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      amount: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"amount\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      gas: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"gas\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      gasPrice: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"gas_price\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      callData: {\n        serializedName: \"call_data\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const OffChainDeposit: coreClient.CompositeMapper = {\n  serializedName: \"OffChainDeposit\",\n  type: {\n    name: \"Composite\",\n    className: \"OffChainDeposit\",\n    uberParent: \"OffChainUpdate\",\n    polymorphicDiscriminator: OffChainUpdate.type.polymorphicDiscriminator,\n    modelProperties: {\n      ...OffChainUpdate.type.modelProperties,\n      from: {\n        serializedName: \"from\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      amount: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"amount\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n    },\n  },\n};\n\nexport const OffChainNewContract: coreClient.CompositeMapper = {\n  serializedName: \"OffChainNewContract\",\n  type: {\n    name: \"Composite\",\n    className: \"OffChainNewContract\",\n    uberParent: \"OffChainUpdate\",\n    polymorphicDiscriminator: OffChainUpdate.type.polymorphicDiscriminator,\n    modelProperties: {\n      ...OffChainUpdate.type.modelProperties,\n      owner: {\n        serializedName: \"owner\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      vmVersion: {\n        constraints: {\n          InclusiveMaximum: 65535,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"vm_version\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      abiVersion: {\n        constraints: {\n          InclusiveMaximum: 65535,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"abi_version\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      code: {\n        serializedName: \"code\",\n        type: {\n          name: \"Composite\",\n          className: \"ByteCode\",\n        },\n      },\n      deposit: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"deposit\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      callData: {\n        serializedName: \"call_data\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const OffChainTransfer: coreClient.CompositeMapper = {\n  serializedName: \"OffChainTransfer\",\n  type: {\n    name: \"Composite\",\n    className: \"OffChainTransfer\",\n    uberParent: \"OffChainUpdate\",\n    polymorphicDiscriminator: OffChainUpdate.type.polymorphicDiscriminator,\n    modelProperties: {\n      ...OffChainUpdate.type.modelProperties,\n      from: {\n        serializedName: \"from\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      to: {\n        serializedName: \"to\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      amount: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"amount\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n    },\n  },\n};\n\nexport const OffChainWithdrawal: coreClient.CompositeMapper = {\n  serializedName: \"OffChainWithdrawal\",\n  type: {\n    name: \"Composite\",\n    className: \"OffChainWithdrawal\",\n    uberParent: \"OffChainUpdate\",\n    polymorphicDiscriminator: OffChainUpdate.type.polymorphicDiscriminator,\n    modelProperties: {\n      ...OffChainUpdate.type.modelProperties,\n      to: {\n        serializedName: \"to\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      amount: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"amount\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n    },\n  },\n};\n\nexport const CreateContractUnsignedTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"CreateContractUnsignedTx\",\n    modelProperties: {\n      ...UnsignedTx.type.modelProperties,\n      contractId: {\n        serializedName: \"contract_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport let discriminators = {\n  OffChainUpdate: OffChainUpdate,\n  \"OffChainUpdate.OffChainCallContract\": OffChainCallContract,\n  \"OffChainUpdate.OffChainDeposit\": OffChainDeposit,\n  \"OffChainUpdate.OffChainNewContract\": OffChainNewContract,\n  \"OffChainUpdate.OffChainTransfer\": OffChainTransfer,\n  \"OffChainUpdate.OffChainWithdrawal\": OffChainWithdrawal,\n};\n","import {\n  OperationParameter,\n  OperationURLParameter,\n  OperationQueryParameter,\n} from \"@azure/core-client\";\nimport {\n  DryRunInput as DryRunInputMapper,\n  EncodedTx as EncodedTxMapper,\n} from \"../models/mappers.js\";\n\nexport const accept: OperationParameter = {\n  parameterPath: \"accept\",\n  mapper: {\n    defaultValue: \"application/json\",\n    isConstant: true,\n    serializedName: \"Accept\",\n    type: {\n      name: \"String\",\n    },\n  },\n};\n\nexport const $host: OperationURLParameter = {\n  parameterPath: \"$host\",\n  mapper: {\n    serializedName: \"$host\",\n    required: true,\n    type: {\n      name: \"String\",\n    },\n  },\n  skipEncoding: true,\n};\n\nexport const pubkey: OperationURLParameter = {\n  parameterPath: \"pubkey\",\n  mapper: {\n    serializedName: \"pubkey\",\n    required: true,\n    type: {\n      name: \"String\",\n    },\n  },\n};\n\nexport const hash: OperationURLParameter = {\n  parameterPath: \"hash\",\n  mapper: {\n    serializedName: \"hash\",\n    required: true,\n    type: {\n      name: \"String\",\n    },\n  },\n};\n\nexport const height: OperationURLParameter = {\n  parameterPath: \"height\",\n  mapper: {\n    constraints: {\n      InclusiveMaximum: 18446744073709552000,\n      InclusiveMinimum: 0,\n    },\n    serializedName: \"height\",\n    required: true,\n    type: {\n      name: \"Number\",\n    },\n  },\n};\n\nexport const strategy: OperationQueryParameter = {\n  parameterPath: [\"options\", \"strategy\"],\n  mapper: {\n    defaultValue: \"max\",\n    serializedName: \"strategy\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"max\", \"continuity\"],\n    },\n  },\n};\n\nexport const name: OperationURLParameter = {\n  parameterPath: \"name\",\n  mapper: {\n    serializedName: \"name\",\n    required: true,\n    type: {\n      name: \"String\",\n    },\n  },\n};\n\nexport const contentType: OperationParameter = {\n  parameterPath: [\"options\", \"contentType\"],\n  mapper: {\n    defaultValue: \"application/json\",\n    isConstant: true,\n    serializedName: \"Content-Type\",\n    type: {\n      name: \"String\",\n    },\n  },\n};\n\nexport const body: OperationParameter = {\n  parameterPath: \"body\",\n  mapper: DryRunInputMapper,\n};\n\nexport const index: OperationURLParameter = {\n  parameterPath: \"index\",\n  mapper: {\n    constraints: {\n      InclusiveMinimum: 1,\n    },\n    serializedName: \"index\",\n    required: true,\n    type: {\n      name: \"Number\",\n    },\n  },\n};\n\nexport const nameHash: OperationURLParameter = {\n  parameterPath: \"nameHash\",\n  mapper: {\n    serializedName: \"name_hash\",\n    required: true,\n    type: {\n      name: \"String\",\n    },\n  },\n};\n\nexport const fromParam: OperationQueryParameter = {\n  parameterPath: [\"options\", \"from\"],\n  mapper: {\n    serializedName: \"from\",\n    type: {\n      name: \"String\",\n    },\n  },\n};\n\nexport const limit: OperationQueryParameter = {\n  parameterPath: [\"options\", \"limit\"],\n  mapper: {\n    defaultValue: 20,\n    constraints: {\n      InclusiveMaximum: 1000,\n      InclusiveMinimum: 1,\n    },\n    serializedName: \"limit\",\n    type: {\n      name: \"Number\",\n    },\n  },\n};\n\nexport const typeParam: OperationQueryParameter = {\n  parameterPath: [\"options\", \"type\"],\n  mapper: {\n    defaultValue: \"all\",\n    serializedName: \"type\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"open\", \"closed\", \"all\"],\n    },\n  },\n};\n\nexport const queryId: OperationURLParameter = {\n  parameterPath: \"queryId\",\n  mapper: {\n    serializedName: \"query-id\",\n    required: true,\n    type: {\n      name: \"String\",\n    },\n  },\n};\n\nexport const body1: OperationParameter = {\n  parameterPath: \"body\",\n  mapper: EncodedTxMapper,\n};\n","import { createSerializer } from \"../../utils/autorest.js\";\nimport * as coreClient from \"@azure/core-client\";\nimport * as Parameters from \"./models/parameters.js\";\nimport * as Mappers from \"./models/mappers.js\";\nimport {\n  NodeOptionalParams,\n  GetAccountByPubkeyOptionalParams,\n  GetAccountByPubkeyResponse,\n  GetAccountByPubkeyAndHashOptionalParams,\n  GetAccountByPubkeyAndHashResponse,\n  GetAccountByPubkeyAndHeightOptionalParams,\n  GetAccountByPubkeyAndHeightResponse,\n  GetAccountNextNonceOptionalParams,\n  GetAccountNextNonceResponse,\n  GetPendingAccountTransactionsByPubkeyOptionalParams,\n  GetPendingAccountTransactionsByPubkeyResponse,\n  GetAuctionEntryByNameOptionalParams,\n  GetAuctionEntryByNameResponse,\n  GetChannelByPubkeyOptionalParams,\n  GetChannelByPubkeyResponse,\n  GetContractOptionalParams,\n  GetContractResponse,\n  GetContractCodeOptionalParams,\n  GetContractCodeResponse,\n  GetContractPoIOptionalParams,\n  GetContractPoIResponse,\n  GetCurrencyOptionalParams,\n  GetCurrencyResponse,\n  DryRunInput,\n  ProtectedDryRunTxsOptionalParams,\n  ProtectedDryRunTxsResponse,\n  GetCurrentGenerationOptionalParams,\n  GetCurrentGenerationResponse,\n  GetGenerationByHashOptionalParams,\n  GetGenerationByHashResponse,\n  GetGenerationByHeightOptionalParams,\n  GetGenerationByHeightResponse,\n  GetTopHeaderOptionalParams,\n  GetTopHeaderResponse,\n  GetPinningTxOptionalParams,\n  GetPinningTxResponse,\n  GetHyperchainContractPubkeysOptionalParams,\n  GetHyperchainContractPubkeysResponse,\n  GetCurrentKeyBlockOptionalParams,\n  GetCurrentKeyBlockResponse,\n  GetCurrentKeyBlockHashOptionalParams,\n  GetCurrentKeyBlockHashResponse,\n  GetCurrentKeyBlockHeightOptionalParams,\n  GetCurrentKeyBlockHeightResponse,\n  GetKeyBlockByHashOptionalParams,\n  GetKeyBlockByHashResponse,\n  GetKeyBlockByHeightOptionalParams,\n  GetKeyBlockByHeightResponse,\n  GetPendingKeyBlockOptionalParams,\n  GetPendingKeyBlockResponse,\n  GetMicroBlockHeaderByHashOptionalParams,\n  GetMicroBlockHeaderByHashResponse,\n  GetMicroBlockTransactionsByHashOptionalParams,\n  GetMicroBlockTransactionsByHashResponse,\n  GetMicroBlockTransactionsCountByHashOptionalParams,\n  GetMicroBlockTransactionsCountByHashResponse,\n  GetMicroBlockTransactionByHashAndIndexOptionalParams,\n  GetMicroBlockTransactionByHashAndIndexResponse,\n  GetNameEntryByNameOptionalParams,\n  GetNameEntryByNameResponse,\n  GetNameEntryByNameHashOptionalParams,\n  GetNameEntryByNameHashResponse,\n  GetOracleByPubkeyOptionalParams,\n  GetOracleByPubkeyResponse,\n  GetOracleQueriesByPubkeyOptionalParams,\n  GetOracleQueriesByPubkeyResponse,\n  GetOracleQueryByPubkeyAndQueryIdOptionalParams,\n  GetOracleQueryByPubkeyAndQueryIdResponse,\n  GetPeerPubkeyOptionalParams,\n  GetPeerPubkeyResponse,\n  GetRecentGasPricesOptionalParams,\n  GetRecentGasPricesResponse,\n  GetStatusOptionalParams,\n  GetStatusResponse,\n  GetChainEndsOptionalParams,\n  GetChainEndsResponse,\n  GetSyncStatusOptionalParams,\n  GetSyncStatusResponse,\n  EncodedTx,\n  PostTransactionOptionalParams,\n  PostTransactionResponse,\n  GetTransactionByHashOptionalParams,\n  GetTransactionByHashResponse,\n  GetTransactionInfoByHashOptionalParams,\n  GetTransactionInfoByHashResponse,\n} from \"./models/index.js\";\n\nexport class Node extends coreClient.ServiceClient {\n  readonly $host: string;\n\n  /**\n   * Initializes a new instance of the Node class.\n   * @param $host server parameter\n   * @param options The parameter options\n   */\n  constructor($host: string, options?: NodeOptionalParams) {\n    if ($host === undefined) {\n      throw new Error(\"'$host' cannot be null\");\n    }\n\n    // Initializing default values for options\n    if (!options) {\n      options = {};\n    }\n    const defaults: NodeOptionalParams = {\n      requestContentType: \"application/json; charset=utf-8\",\n    };\n\n    const packageDetails = `azsdk-js-node/1.0.0-beta.1`;\n    const userAgentPrefix =\n      options.userAgentOptions && options.userAgentOptions.userAgentPrefix\n        ? `${options.userAgentOptions.userAgentPrefix} ${packageDetails}`\n        : `${packageDetails}`;\n\n    const optionsWithDefaults = {\n      ...defaults,\n      ...options,\n      userAgentOptions: {\n        userAgentPrefix,\n      },\n      endpoint: options.endpoint ?? options.baseUri ?? \"{$host}\",\n    };\n    super(optionsWithDefaults);\n    // Parameter assignments\n    this.$host = $host;\n  }\n\n  /**\n   * Get an account by public key\n   * @param pubkey The public key of the account\n   * @param options The options parameters.\n   */\n  getAccountByPubkey(\n    pubkey: string,\n    options?: GetAccountByPubkeyOptionalParams,\n  ): Promise<GetAccountByPubkeyResponse> {\n    return this.sendOperationRequest(\n      { pubkey, options },\n      getAccountByPubkeyOperationSpec,\n    );\n  }\n\n  /**\n   * Get an account by public key after the block indicated by hash. Can be either a micro block or a\n   * keyblock hash\n   * @param pubkey The public key of the account\n   * @param hash The hash of the block - either a keyblock or a microblock\n   * @param options The options parameters.\n   */\n  getAccountByPubkeyAndHash(\n    pubkey: string,\n    hash: string,\n    options?: GetAccountByPubkeyAndHashOptionalParams,\n  ): Promise<GetAccountByPubkeyAndHashResponse> {\n    return this.sendOperationRequest(\n      { pubkey, hash, options },\n      getAccountByPubkeyAndHashOperationSpec,\n    );\n  }\n\n  /**\n   * Get an account by public key after the opening key block of the generation at height\n   * @param pubkey The public key of the account\n   * @param height The height\n   * @param options The options parameters.\n   */\n  getAccountByPubkeyAndHeight(\n    pubkey: string,\n    height: number,\n    options?: GetAccountByPubkeyAndHeightOptionalParams,\n  ): Promise<GetAccountByPubkeyAndHeightResponse> {\n    return this.sendOperationRequest(\n      { pubkey, height, options },\n      getAccountByPubkeyAndHeightOperationSpec,\n    );\n  }\n\n  /**\n   * Get an account's next nonce; This is computed according to whatever is the current account nonce and\n   * what transactions are currently present in the transaction pool\n   * @param pubkey The public key of the account\n   * @param options The options parameters.\n   */\n  getAccountNextNonce(\n    pubkey: string,\n    options?: GetAccountNextNonceOptionalParams,\n  ): Promise<GetAccountNextNonceResponse> {\n    return this.sendOperationRequest(\n      { pubkey, options },\n      getAccountNextNonceOperationSpec,\n    );\n  }\n\n  /**\n   * Get pending account transactions by public key\n   * @param pubkey The public key of the account\n   * @param options The options parameters.\n   */\n  getPendingAccountTransactionsByPubkey(\n    pubkey: string,\n    options?: GetPendingAccountTransactionsByPubkeyOptionalParams,\n  ): Promise<GetPendingAccountTransactionsByPubkeyResponse> {\n    return this.sendOperationRequest(\n      { pubkey, options },\n      getPendingAccountTransactionsByPubkeyOperationSpec,\n    );\n  }\n\n  /**\n   * Get auction entry from naming system\n   * @param name The name key of the name entry\n   * @param options The options parameters.\n   */\n  getAuctionEntryByName(\n    name: string,\n    options?: GetAuctionEntryByNameOptionalParams,\n  ): Promise<GetAuctionEntryByNameResponse> {\n    return this.sendOperationRequest(\n      { name, options },\n      getAuctionEntryByNameOperationSpec,\n    );\n  }\n\n  /**\n   * Get channel by public key\n   * @param pubkey The pubkey of the channel\n   * @param options The options parameters.\n   */\n  getChannelByPubkey(\n    pubkey: string,\n    options?: GetChannelByPubkeyOptionalParams,\n  ): Promise<GetChannelByPubkeyResponse> {\n    return this.sendOperationRequest(\n      { pubkey, options },\n      getChannelByPubkeyOperationSpec,\n    );\n  }\n\n  /**\n   * Get a contract by pubkey\n   * @param pubkey Contract pubkey to get proof for\n   * @param options The options parameters.\n   */\n  getContract(\n    pubkey: string,\n    options?: GetContractOptionalParams,\n  ): Promise<GetContractResponse> {\n    return this.sendOperationRequest(\n      { pubkey, options },\n      getContractOperationSpec,\n    );\n  }\n\n  /**\n   * Get contract code by pubkey\n   * @param pubkey Contract pubkey to get proof for\n   * @param options The options parameters.\n   */\n  getContractCode(\n    pubkey: string,\n    options?: GetContractCodeOptionalParams,\n  ): Promise<GetContractCodeResponse> {\n    return this.sendOperationRequest(\n      { pubkey, options },\n      getContractCodeOperationSpec,\n    );\n  }\n\n  /**\n   * Get a proof of inclusion for a contract\n   * @param pubkey Contract pubkey to get proof for\n   * @param options The options parameters.\n   */\n  getContractPoI(\n    pubkey: string,\n    options?: GetContractPoIOptionalParams,\n  ): Promise<GetContractPoIResponse> {\n    return this.sendOperationRequest(\n      { pubkey, options },\n      getContractPoIOperationSpec,\n    );\n  }\n\n  /**\n   * Get the currency metadata of a node\n   * @param options The options parameters.\n   */\n  getCurrency(\n    options?: GetCurrencyOptionalParams,\n  ): Promise<GetCurrencyResponse> {\n    return this.sendOperationRequest({ options }, getCurrencyOperationSpec);\n  }\n\n  /**\n   * Dry-run unsigned transactions on top of a given block. Supports all TXs except GAMetaTx, PayingForTx\n   * and OffchainTx. The maximum gas limit of all calls is capped. The maximum gas limit per request is a\n   * global node setting. Since DryRunCallReq object do not have a mandatory gas field, if not set a\n   * default value of 1000000 is being used instead.\n   * @param body transactions\n   * @param options The options parameters.\n   */\n  protectedDryRunTxs(\n    body: DryRunInput,\n    options?: ProtectedDryRunTxsOptionalParams,\n  ): Promise<ProtectedDryRunTxsResponse> {\n    return this.sendOperationRequest(\n      { body, options },\n      protectedDryRunTxsOperationSpec,\n    );\n  }\n\n  /**\n   * Get the current generation\n   * @param options The options parameters.\n   */\n  getCurrentGeneration(\n    options?: GetCurrentGenerationOptionalParams,\n  ): Promise<GetCurrentGenerationResponse> {\n    return this.sendOperationRequest(\n      { options },\n      getCurrentGenerationOperationSpec,\n    );\n  }\n\n  /**\n   * Get a generation by hash\n   * @param hash The hash of the key block\n   * @param options The options parameters.\n   */\n  getGenerationByHash(\n    hash: string,\n    options?: GetGenerationByHashOptionalParams,\n  ): Promise<GetGenerationByHashResponse> {\n    return this.sendOperationRequest(\n      { hash, options },\n      getGenerationByHashOperationSpec,\n    );\n  }\n\n  /**\n   * Get a generation by height\n   * @param height The height\n   * @param options The options parameters.\n   */\n  getGenerationByHeight(\n    height: number,\n    options?: GetGenerationByHeightOptionalParams,\n  ): Promise<GetGenerationByHeightResponse> {\n    return this.sendOperationRequest(\n      { height, options },\n      getGenerationByHeightOperationSpec,\n    );\n  }\n\n  /**\n   * Get the top header (either key or micro block)\n   * @param options The options parameters.\n   */\n  getTopHeader(\n    options?: GetTopHeaderOptionalParams,\n  ): Promise<GetTopHeaderResponse> {\n    return this.sendOperationRequest({ options }, getTopHeaderOperationSpec);\n  }\n\n  /**\n   * Get the pinning transaction for the current epoch. Returns both the individual parameters as well as\n   * the parent chain type (aeternity, btc etc.), network id and a packaged 80 byte readymade payload for\n   * that chain type.\n   * @param options The options parameters.\n   */\n  getPinningTx(\n    options?: GetPinningTxOptionalParams,\n  ): Promise<GetPinningTxResponse> {\n    return this.sendOperationRequest({ options }, getPinningTxOperationSpec);\n  }\n\n  /**\n   * Get the pubkeys for the configured hyperchain contracts for staking, election and rewards\n   * @param options The options parameters.\n   */\n  getHyperchainContractPubkeys(\n    options?: GetHyperchainContractPubkeysOptionalParams,\n  ): Promise<GetHyperchainContractPubkeysResponse> {\n    return this.sendOperationRequest(\n      { options },\n      getHyperchainContractPubkeysOperationSpec,\n    );\n  }\n\n  /**\n   * Get the current key block\n   * @param options The options parameters.\n   */\n  getCurrentKeyBlock(\n    options?: GetCurrentKeyBlockOptionalParams,\n  ): Promise<GetCurrentKeyBlockResponse> {\n    return this.sendOperationRequest(\n      { options },\n      getCurrentKeyBlockOperationSpec,\n    );\n  }\n\n  /**\n   * Get the hash of the current key block\n   * @param options The options parameters.\n   */\n  getCurrentKeyBlockHash(\n    options?: GetCurrentKeyBlockHashOptionalParams,\n  ): Promise<GetCurrentKeyBlockHashResponse> {\n    return this.sendOperationRequest(\n      { options },\n      getCurrentKeyBlockHashOperationSpec,\n    );\n  }\n\n  /**\n   * Get the height of the current key block\n   * @param options The options parameters.\n   */\n  getCurrentKeyBlockHeight(\n    options?: GetCurrentKeyBlockHeightOptionalParams,\n  ): Promise<GetCurrentKeyBlockHeightResponse> {\n    return this.sendOperationRequest(\n      { options },\n      getCurrentKeyBlockHeightOperationSpec,\n    );\n  }\n\n  /**\n   * Get a key block by hash\n   * @param hash The hash of the block - either a keyblock or a microblock\n   * @param options The options parameters.\n   */\n  getKeyBlockByHash(\n    hash: string,\n    options?: GetKeyBlockByHashOptionalParams,\n  ): Promise<GetKeyBlockByHashResponse> {\n    return this.sendOperationRequest(\n      { hash, options },\n      getKeyBlockByHashOperationSpec,\n    );\n  }\n\n  /**\n   * Get a key block by height\n   * @param height The height\n   * @param options The options parameters.\n   */\n  getKeyBlockByHeight(\n    height: number,\n    options?: GetKeyBlockByHeightOptionalParams,\n  ): Promise<GetKeyBlockByHeightResponse> {\n    return this.sendOperationRequest(\n      { height, options },\n      getKeyBlockByHeightOperationSpec,\n    );\n  }\n\n  /**\n   * Get the pending key block\n   * @param options The options parameters.\n   */\n  getPendingKeyBlock(\n    options?: GetPendingKeyBlockOptionalParams,\n  ): Promise<GetPendingKeyBlockResponse> {\n    return this.sendOperationRequest(\n      { options },\n      getPendingKeyBlockOperationSpec,\n    );\n  }\n\n  /**\n   * Get a micro block header by hash\n   * @param hash The hash of the block - either a keyblock or a microblock\n   * @param options The options parameters.\n   */\n  getMicroBlockHeaderByHash(\n    hash: string,\n    options?: GetMicroBlockHeaderByHashOptionalParams,\n  ): Promise<GetMicroBlockHeaderByHashResponse> {\n    return this.sendOperationRequest(\n      { hash, options },\n      getMicroBlockHeaderByHashOperationSpec,\n    );\n  }\n\n  /**\n   * Get micro block transactions by hash\n   * @param hash The hash of the micro block\n   * @param options The options parameters.\n   */\n  getMicroBlockTransactionsByHash(\n    hash: string,\n    options?: GetMicroBlockTransactionsByHashOptionalParams,\n  ): Promise<GetMicroBlockTransactionsByHashResponse> {\n    return this.sendOperationRequest(\n      { hash, options },\n      getMicroBlockTransactionsByHashOperationSpec,\n    );\n  }\n\n  /**\n   * Get micro block transaction count by hash\n   * @param hash The hash of the micro block\n   * @param options The options parameters.\n   */\n  getMicroBlockTransactionsCountByHash(\n    hash: string,\n    options?: GetMicroBlockTransactionsCountByHashOptionalParams,\n  ): Promise<GetMicroBlockTransactionsCountByHashResponse> {\n    return this.sendOperationRequest(\n      { hash, options },\n      getMicroBlockTransactionsCountByHashOperationSpec,\n    );\n  }\n\n  /**\n   * Get a micro block transaction by hash and index\n   * @param hash The hash of the micro block\n   * @param index The index of the transaction in a block\n   * @param options The options parameters.\n   */\n  getMicroBlockTransactionByHashAndIndex(\n    hash: string,\n    index: number,\n    options?: GetMicroBlockTransactionByHashAndIndexOptionalParams,\n  ): Promise<GetMicroBlockTransactionByHashAndIndexResponse> {\n    return this.sendOperationRequest(\n      { hash, index, options },\n      getMicroBlockTransactionByHashAndIndexOperationSpec,\n    );\n  }\n\n  /**\n   * Get name entry from naming system\n   * @param name The name key of the name entry\n   * @param options The options parameters.\n   */\n  getNameEntryByName(\n    name: string,\n    options?: GetNameEntryByNameOptionalParams,\n  ): Promise<GetNameEntryByNameResponse> {\n    return this.sendOperationRequest(\n      { name, options },\n      getNameEntryByNameOperationSpec,\n    );\n  }\n\n  /**\n   * Get name entry from naming system\n   * @param nameHash The name hash of the name entry\n   * @param options The options parameters.\n   */\n  getNameEntryByNameHash(\n    nameHash: string,\n    options?: GetNameEntryByNameHashOptionalParams,\n  ): Promise<GetNameEntryByNameHashResponse> {\n    return this.sendOperationRequest(\n      { nameHash, options },\n      getNameEntryByNameHashOperationSpec,\n    );\n  }\n\n  /**\n   * Get an oracle by public key\n   * @param pubkey The public key of the oracle\n   * @param options The options parameters.\n   */\n  getOracleByPubkey(\n    pubkey: string,\n    options?: GetOracleByPubkeyOptionalParams,\n  ): Promise<GetOracleByPubkeyResponse> {\n    return this.sendOperationRequest(\n      { pubkey, options },\n      getOracleByPubkeyOperationSpec,\n    );\n  }\n\n  /**\n   * Get oracle queries by public key\n   * @param pubkey The public key of the oracle\n   * @param options The options parameters.\n   */\n  getOracleQueriesByPubkey(\n    pubkey: string,\n    options?: GetOracleQueriesByPubkeyOptionalParams,\n  ): Promise<GetOracleQueriesByPubkeyResponse> {\n    return this.sendOperationRequest(\n      { pubkey, options },\n      getOracleQueriesByPubkeyOperationSpec,\n    );\n  }\n\n  /**\n   * Get an oracle query by public key and query ID\n   * @param pubkey The public key of the oracle\n   * @param queryId The ID of the query\n   * @param options The options parameters.\n   */\n  getOracleQueryByPubkeyAndQueryId(\n    pubkey: string,\n    queryId: string,\n    options?: GetOracleQueryByPubkeyAndQueryIdOptionalParams,\n  ): Promise<GetOracleQueryByPubkeyAndQueryIdResponse> {\n    return this.sendOperationRequest(\n      { pubkey, queryId, options },\n      getOracleQueryByPubkeyAndQueryIdOperationSpec,\n    );\n  }\n\n  /**\n   * Get peer public key\n   * @param options The options parameters.\n   */\n  getPeerPubkey(\n    options?: GetPeerPubkeyOptionalParams,\n  ): Promise<GetPeerPubkeyResponse> {\n    return this.sendOperationRequest({ options }, getPeerPubkeyOperationSpec);\n  }\n\n  /**\n   * Get minimum gas prices in recent blocks\n   * @param options The options parameters.\n   */\n  getRecentGasPrices(\n    options?: GetRecentGasPricesOptionalParams,\n  ): Promise<GetRecentGasPricesResponse> {\n    return this.sendOperationRequest(\n      { options },\n      getRecentGasPricesOperationSpec,\n    );\n  }\n\n  /**\n   * Get the status of a node\n   * @param options The options parameters.\n   */\n  getStatus(options?: GetStatusOptionalParams): Promise<GetStatusResponse> {\n    return this.sendOperationRequest({ options }, getStatusOperationSpec);\n  }\n\n  /**\n   * Get oldest keyblock hashes counting from genesis including orphans\n   * @param options The options parameters.\n   */\n  getChainEnds(\n    options?: GetChainEndsOptionalParams,\n  ): Promise<GetChainEndsResponse> {\n    return this.sendOperationRequest({ options }, getChainEndsOperationSpec);\n  }\n\n  /**\n   * Get the sync status of a node\n   * @param options The options parameters.\n   */\n  getSyncStatus(\n    options?: GetSyncStatusOptionalParams,\n  ): Promise<GetSyncStatusResponse> {\n    return this.sendOperationRequest({ options }, getSyncStatusOperationSpec);\n  }\n\n  /**\n   * Post a new transaction\n   * @param body The new transaction\n   * @param options The options parameters.\n   */\n  postTransaction(\n    body: EncodedTx,\n    options?: PostTransactionOptionalParams,\n  ): Promise<PostTransactionResponse> {\n    return this.sendOperationRequest(\n      { body, options },\n      postTransactionOperationSpec,\n    );\n  }\n\n  /**\n   * Get a transaction by hash\n   * @param hash The hash of the transaction\n   * @param options The options parameters.\n   */\n  getTransactionByHash(\n    hash: string,\n    options?: GetTransactionByHashOptionalParams,\n  ): Promise<GetTransactionByHashResponse> {\n    return this.sendOperationRequest(\n      { hash, options },\n      getTransactionByHashOperationSpec,\n    );\n  }\n\n  /**\n   * @param hash The hash of the transaction\n   * @param options The options parameters.\n   */\n  getTransactionInfoByHash(\n    hash: string,\n    options?: GetTransactionInfoByHashOptionalParams,\n  ): Promise<GetTransactionInfoByHashResponse> {\n    return this.sendOperationRequest(\n      { hash, options },\n      getTransactionInfoByHashOperationSpec,\n    );\n  }\n}\n// Operation Specifications\nconst serializer = createSerializer(Mappers, /* isXml */ false);\n\nconst getAccountByPubkeyOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/accounts/{pubkey}\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.Account,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n    404: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n  },\n  urlParameters: [Parameters.$host, Parameters.pubkey],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getAccountByPubkeyAndHashOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/accounts/{pubkey}/hash/{hash}\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.Account,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n    404: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n  },\n  urlParameters: [Parameters.$host, Parameters.pubkey, Parameters.hash],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getAccountByPubkeyAndHeightOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/accounts/{pubkey}/height/{height}\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.Account,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n    404: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n    410: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n  },\n  urlParameters: [Parameters.$host, Parameters.pubkey, Parameters.height],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getAccountNextNonceOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/accounts/{pubkey}/next-nonce\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.NextNonceResponse,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n    404: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n  },\n  queryParameters: [Parameters.strategy],\n  urlParameters: [Parameters.$host, Parameters.pubkey],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getPendingAccountTransactionsByPubkeyOperationSpec: coreClient.OperationSpec =\n  {\n    path: \"/v3/accounts/{pubkey}/transactions/pending\",\n    httpMethod: \"GET\",\n    responses: {\n      200: {\n        bodyMapper: Mappers.SignedTxs,\n      },\n      400: {\n        bodyMapper: Mappers.ErrorModel,\n        isError: true,\n      },\n      404: {\n        bodyMapper: Mappers.ErrorModel,\n        isError: true,\n      },\n    },\n    urlParameters: [Parameters.$host, Parameters.pubkey],\n    headerParameters: [Parameters.accept],\n    serializer,\n  };\nconst getAuctionEntryByNameOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/auctions/{name}\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.AuctionEntry,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n    404: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n  },\n  urlParameters: [Parameters.$host, Parameters.name],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getChannelByPubkeyOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/channels/{pubkey}\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.Channel,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n    404: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n  },\n  urlParameters: [Parameters.$host, Parameters.pubkey],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getContractOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/contracts/{pubkey}\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.ContractObject,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n    404: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n  },\n  urlParameters: [Parameters.$host, Parameters.pubkey],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getContractCodeOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/contracts/{pubkey}/code\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.ByteCode,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n    404: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n  },\n  urlParameters: [Parameters.$host, Parameters.pubkey],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getContractPoIOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/contracts/{pubkey}/poi\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.PoI,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n    404: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n  },\n  urlParameters: [Parameters.$host, Parameters.pubkey],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getCurrencyOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/currency\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.Currency,\n    },\n  },\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst protectedDryRunTxsOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/dry-run\",\n  httpMethod: \"POST\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.DryRunResults,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n    403: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n  },\n  requestBody: Parameters.body,\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.accept, Parameters.contentType],\n  mediaType: \"json\",\n  serializer,\n};\nconst getCurrentGenerationOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/generations/current\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.Generation,\n    },\n    404: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n  },\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getGenerationByHashOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/generations/hash/{hash}\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.Generation,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n    404: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n  },\n  urlParameters: [Parameters.$host, Parameters.hash],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getGenerationByHeightOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/generations/height/{height}\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.Generation,\n    },\n    404: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n  },\n  urlParameters: [Parameters.$host, Parameters.height],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getTopHeaderOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/headers/top\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.Header,\n    },\n    404: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n  },\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getPinningTxOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/hyperchain/pin-tx\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.PinningTx,\n    },\n    404: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n  },\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getHyperchainContractPubkeysOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/hyperchain/contracts\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.HCContractPubkeys,\n    },\n    404: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n  },\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getCurrentKeyBlockOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/key-blocks/current\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.KeyBlock,\n    },\n    404: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n  },\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getCurrentKeyBlockHashOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/key-blocks/current/hash\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.HashResponse,\n    },\n    404: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n  },\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getCurrentKeyBlockHeightOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/key-blocks/current/height\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.HeightResponse,\n    },\n    404: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n  },\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getKeyBlockByHashOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/key-blocks/hash/{hash}\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.KeyBlock,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n    404: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n  },\n  urlParameters: [Parameters.$host, Parameters.hash],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getKeyBlockByHeightOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/key-blocks/height/{height}\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.KeyBlock,\n    },\n    404: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n  },\n  urlParameters: [Parameters.$host, Parameters.height],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getPendingKeyBlockOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/key-blocks/pending\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.KeyBlock,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n    404: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n  },\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getMicroBlockHeaderByHashOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/micro-blocks/hash/{hash}/header\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.MicroBlockHeader,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n    404: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n  },\n  urlParameters: [Parameters.$host, Parameters.hash],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getMicroBlockTransactionsByHashOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/micro-blocks/hash/{hash}/transactions\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.SignedTxs,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n    404: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n  },\n  urlParameters: [Parameters.$host, Parameters.hash],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getMicroBlockTransactionsCountByHashOperationSpec: coreClient.OperationSpec =\n  {\n    path: \"/v3/micro-blocks/hash/{hash}/transactions/count\",\n    httpMethod: \"GET\",\n    responses: {\n      200: {\n        bodyMapper: Mappers.CountResponse,\n      },\n      400: {\n        bodyMapper: Mappers.ErrorModel,\n        isError: true,\n      },\n      404: {\n        bodyMapper: Mappers.ErrorModel,\n        isError: true,\n      },\n    },\n    urlParameters: [Parameters.$host, Parameters.hash],\n    headerParameters: [Parameters.accept],\n    serializer,\n  };\nconst getMicroBlockTransactionByHashAndIndexOperationSpec: coreClient.OperationSpec =\n  {\n    path: \"/v3/micro-blocks/hash/{hash}/transactions/index/{index}\",\n    httpMethod: \"GET\",\n    responses: {\n      200: {\n        bodyMapper: Mappers.SignedTx,\n      },\n      400: {\n        bodyMapper: Mappers.ErrorModel,\n        isError: true,\n      },\n      404: {\n        bodyMapper: Mappers.ErrorModel,\n        isError: true,\n      },\n    },\n    urlParameters: [Parameters.$host, Parameters.hash, Parameters.index],\n    headerParameters: [Parameters.accept],\n    serializer,\n  };\nconst getNameEntryByNameOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/names/{name}\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.NameEntry,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n    404: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n  },\n  urlParameters: [Parameters.$host, Parameters.name],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getNameEntryByNameHashOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/names/hash/{name_hash}\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.NameEntry,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n    404: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n  },\n  urlParameters: [Parameters.$host, Parameters.nameHash],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getOracleByPubkeyOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/oracles/{pubkey}\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.RegisteredOracle,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n    404: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n  },\n  urlParameters: [Parameters.$host, Parameters.pubkey],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getOracleQueriesByPubkeyOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/oracles/{pubkey}/queries\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.OracleQueries,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n    404: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n  },\n  queryParameters: [\n    Parameters.fromParam,\n    Parameters.limit,\n    Parameters.typeParam,\n  ],\n  urlParameters: [Parameters.$host, Parameters.pubkey],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getOracleQueryByPubkeyAndQueryIdOperationSpec: coreClient.OperationSpec =\n  {\n    path: \"/v3/oracles/{pubkey}/queries/{query-id}\",\n    httpMethod: \"GET\",\n    responses: {\n      200: {\n        bodyMapper: Mappers.OracleQuery,\n      },\n      400: {\n        bodyMapper: Mappers.ErrorModel,\n        isError: true,\n      },\n      404: {\n        bodyMapper: Mappers.ErrorModel,\n        isError: true,\n      },\n    },\n    urlParameters: [Parameters.$host, Parameters.pubkey, Parameters.queryId],\n    headerParameters: [Parameters.accept],\n    serializer,\n  };\nconst getPeerPubkeyOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/peers/pubkey\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.PeerPubKey,\n    },\n  },\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getRecentGasPricesOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/recent-gas-prices\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: {\n        type: {\n          name: \"Sequence\",\n          element: { type: { name: \"Composite\", className: \"GasPricesItem\" } },\n        },\n      },\n    },\n    400: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n  },\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getStatusOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/status\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.Status,\n    },\n  },\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getChainEndsOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/status/chain-ends\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: {\n        type: { name: \"Sequence\", element: { type: { name: \"String\" } } },\n      },\n    },\n  },\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getSyncStatusOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/sync-status\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.SyncStatus,\n    },\n    404: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n  },\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst postTransactionOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/transactions\",\n  httpMethod: \"POST\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.PostTxResponse,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n  },\n  requestBody: Parameters.body1,\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.accept, Parameters.contentType],\n  mediaType: \"json\",\n  serializer,\n};\nconst getTransactionByHashOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/transactions/{hash}\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.SignedTx,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n    404: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n  },\n  urlParameters: [Parameters.$host, Parameters.hash],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getTransactionInfoByHashOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/transactions/{hash}/info\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.TxInfoObject,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n    404: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n    410: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n  },\n  urlParameters: [Parameters.$host, Parameters.hash],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\n","// eslint-disable-next-line max-classes-per-file\nimport { OperationOptions } from '@azure/core-client';\nimport { userAgentPolicyName, setClientRequestIdPolicyName } from '@azure/core-rest-pipeline';\nimport {\n  genRequestQueuesPolicy,\n  genCombineGetRequestsPolicy,\n  genErrorFormatterPolicy,\n  parseBigIntPolicy,\n  genVersionCheckPolicy,\n  genRetryOnFailurePolicy,\n} from './utils/autorest.js';\nimport { Node as NodeApi, NodeOptionalParams, ErrorModel } from './apis/node/index.js';\nimport { UnsupportedVersionError } from './utils/errors.js';\nimport { ConsensusProtocolVersion } from './tx/builder/constants.js';\n\ninterface NodeInfo {\n  url: string;\n  nodeNetworkId: string;\n  version: string;\n  consensusProtocolVersion: ConsensusProtocolVersion;\n}\n\n/**\n * @category chain\n */\nexport default class Node extends NodeApi {\n  readonly #ignoreVersion: boolean;\n\n  /**\n   * @param url - Url for node API\n   * @param options - Options\n   * @param options.ignoreVersion - Print warning instead of throwing exception if node\n   * or consensus protocol version is not supported, use with caution\n   * @param options.retryCount - Amount of extra requests to do in case of failure\n   * @param options.retryOverallDelay - Time in ms to wait between all retries\n   */\n  constructor(\n    url: string,\n    {\n      ignoreVersion = false,\n      retryCount = 3,\n      retryOverallDelay = 800,\n      ...options\n    }: NodeOptionalParams & {\n      ignoreVersion?: boolean;\n      retryCount?: number;\n      retryOverallDelay?: number;\n    } = {},\n  ) {\n    const getVersion = async (opts: OperationOptions): Promise<string> =>\n      (await this._getCachedStatus(opts)).nodeVersion;\n    // eslint-disable-next-line constructor-super\n    super(url, {\n      allowInsecureConnection: true,\n      additionalPolicies: [\n        genVersionCheckPolicy('node', getVersion, '7.1.0', '8.0.0', ignoreVersion),\n        genRequestQueuesPolicy(),\n        genCombineGetRequestsPolicy(),\n        genRetryOnFailurePolicy(retryCount, retryOverallDelay),\n        genErrorFormatterPolicy((body: ErrorModel) =>\n          [' ', body.reason, body.errorCode == null ? '' : ` (${body.errorCode})`].join(''),\n        ),\n      ],\n      ...options,\n    });\n    this.#ignoreVersion = ignoreVersion;\n    this.pipeline.addPolicy(parseBigIntPolicy, { phase: 'Deserialize' });\n    this.pipeline.removePolicy({ name: userAgentPolicyName });\n    this.pipeline.removePolicy({ name: setClientRequestIdPolicyName });\n    // TODO: use instead our retry policy\n    this.pipeline.removePolicy({ name: 'defaultRetryPolicy' });\n  }\n\n  #cachedStatusPromise?: ReturnType<NodeApi['getStatus']>;\n\n  async _getCachedStatus(options?: OperationOptions): ReturnType<NodeApi['getStatus']> {\n    if (this.#cachedStatusPromise != null) return this.#cachedStatusPromise;\n    return this.getStatus(options);\n  }\n\n  override async getStatus(\n    ...args: Parameters<NodeApi['getStatus']>\n  ): ReturnType<NodeApi['getStatus']> {\n    const promise = super.getStatus(...args);\n    promise.then(\n      () => {\n        this.#cachedStatusPromise = promise;\n      },\n      () => {},\n    );\n    return promise;\n  }\n\n  #isHyperchainPromise?: Promise<boolean>;\n\n  async _isHyperchain(): Promise<boolean> {\n    if (this.#isHyperchainPromise != null) return this.#isHyperchainPromise;\n    this.#isHyperchainPromise = this.getHyperchainContractPubkeys({\n      requestOptions: { customHeaders: { '__no-retry': 'true' } },\n    }).then(\n      () => true,\n      (error) => {\n        if (error.message !== 'v3/hyperchain/contracts error: 404 status code') throw error;\n        return false;\n      },\n    );\n    return this.#isHyperchainPromise;\n  }\n\n  /**\n   * Returns network ID provided by node.\n   * This method won't do extra requests on subsequent calls.\n   */\n  async getNetworkId(): Promise<string> {\n    return (await this._getCachedStatus()).networkId;\n  }\n\n  async getNodeInfo(): Promise<NodeInfo> {\n    const {\n      nodeVersion,\n      networkId: nodeNetworkId,\n      protocols,\n      topBlockHeight,\n    } = await this.getStatus();\n\n    const consensusProtocolVersion = protocols\n      .filter(({ effectiveAtHeight }) => topBlockHeight >= effectiveAtHeight)\n      .reduce((acc, p) => (p.effectiveAtHeight > acc.effectiveAtHeight ? p : acc), {\n        effectiveAtHeight: -1,\n        version: 0,\n      }).version;\n    if (ConsensusProtocolVersion[consensusProtocolVersion] == null) {\n      const version = consensusProtocolVersion.toString();\n      const versions = Object.values(ConsensusProtocolVersion)\n        .filter((el) => typeof el === 'number')\n        .map((el) => +el);\n      const geVersion = Math.min(...versions).toString();\n      const ltVersion = (Math.max(...versions) + 1).toString();\n      const error = new UnsupportedVersionError(\n        'consensus protocol',\n        version,\n        geVersion,\n        ltVersion,\n      );\n      if (this.#ignoreVersion) console.warn(error.message);\n      else throw error;\n    }\n\n    return {\n      url: this.$host,\n      nodeNetworkId,\n      version: nodeVersion,\n      consensusProtocolVersion,\n    };\n  }\n}\n","import { Encoded } from '../utils/encoder.js';\nimport { buildTx, getSchema, unpackTx } from './builder/index.js';\nimport { Tag } from './builder/constants.js';\nimport { TransactionError, UnexpectedTsError } from '../utils/errors.js';\n\n/**\n * Returns account address that signed a transaction\n * @param transaction - transaction to get a signer of\n * @category utils\n */\nexport default function getTransactionSignerAddress(\n  transaction: Encoded.Transaction,\n): Encoded.AccountAddress {\n  const params = unpackTx(transaction);\n  switch (params.tag) {\n    case Tag.SignedTx:\n      return getTransactionSignerAddress(buildTx(params.encodedTx));\n    case Tag.GaMetaTx:\n      return params.gaId;\n    default:\n  }\n\n  const nonce = getSchema(params.tag, params.version).find(([name]) => name === 'nonce')?.[1];\n  if (nonce == null)\n    throw new TransactionError(`Transaction doesn't have nonce: ${Tag[params.tag]}`);\n  if (!('senderKey' in nonce)) throw new UnexpectedTsError();\n  const address = params[nonce.senderKey as keyof typeof params] as unknown as string;\n  return address.replace(/^ok_/, 'ak_') as Encoded.AccountAddress;\n}\n","import { Encoded } from '../utils/encoder.js';\nimport Node from '../Node.js';\nimport CompilerBase from '../contract/compiler/Base.js';\nimport { Int } from '../tx/builder/constants.js';\nimport { AciValue, Domain } from '../utils/typed-data.js';\n\ninterface AuthData {\n  fee?: Int;\n  gasLimit?: number;\n  gasPrice?: Int;\n  callData?: Encoded.ContractBytearray;\n  sourceCode?: string;\n  args?: any[];\n}\n\n/**\n * Account is one of the three basic building blocks of an\n * {@link AeSdk} and provides access to a signing key pair.\n * @category account\n */\nexport default abstract class AccountBase {\n  /**\n   * Sign encoded transaction\n   * @param tx - Transaction to sign\n   * @param options - Options\n   * @param options.innerTx - Sign as inner transaction for PayingFor\n   * @param options.authData - Object with gaMeta params\n   * @returns Signed transaction\n   */\n  abstract signTransaction(\n    tx: Encoded.Transaction,\n    options: {\n      innerTx?: boolean;\n      networkId?: string;\n      authData?: AuthData | ((tx: Encoded.Transaction) => Promise<AuthData>);\n      onNode?: Node;\n      onCompiler?: CompilerBase;\n      aeppOrigin?: string;\n      aeppRpcClientId?: string;\n    },\n  ): Promise<Encoded.Transaction>;\n\n  /**\n   * Sign message\n   * @param message - Message to sign\n   * @param options - Options\n   * @returns Signature\n   */\n  abstract signMessage(\n    message: string,\n    options?: {\n      aeppOrigin?: string;\n      aeppRpcClientId?: string;\n    },\n  ): Promise<Uint8Array>;\n\n  /**\n   * Sign typed data\n   * @param data - Encoded data to sign\n   * @param aci - Type of data to sign\n   * @param options - Options\n   * @returns Signature\n   */\n  abstract signTypedData(\n    data: Encoded.ContractBytearray,\n    aci: AciValue,\n    options?: Domain & {\n      aeppOrigin?: string;\n      aeppRpcClientId?: string;\n    },\n  ): Promise<Encoded.Signature>;\n\n  /**\n   * Sign data blob\n   * @param data - Data blob to sign\n   * @param options - Options\n   * @returns Signature\n   * @deprecated Use `unsafeSign` method instead\n   */\n  abstract sign(\n    data: string | Uint8Array,\n    options?: {\n      aeppOrigin?: string;\n      aeppRpcClientId?: string;\n    },\n  ): Promise<Uint8Array>;\n\n  /**\n   * Sign data blob\n   * @param data - Data blob to sign\n   * @param options - Options\n   * @returns Signature\n   */\n  abstract unsafeSign(\n    data: string | Uint8Array,\n    options?: {\n      aeppOrigin?: string;\n      aeppRpcClientId?: string;\n    },\n  ): Promise<Uint8Array>;\n\n  /**\n   * Account address\n   */\n  readonly address!: Encoded.AccountAddress;\n\n  /**\n   * Sign delegation, works only in Ceres\n   * @param delegation - Delegation to sign\n   * @param options - Options\n   * @returns Signature\n   */\n  abstract signDelegation(\n    delegation: Encoded.Bytearray,\n    options?: {\n      networkId?: string;\n      aeppOrigin?: string;\n      aeppRpcClientId?: string;\n    },\n  ): Promise<Encoded.Signature>;\n}\n","class TypeResolveError extends Error {\n    constructor(message) {\n        super(message)\n        this.name = 'TypeResolveError'\n    }\n}\n\nexport default TypeResolveError\n","const FateTypeVoid = () => {\n    return {name: 'void'}\n}\n\nconst FateTypeInt = () => {\n    return {name: 'int'}\n}\n\nconst FateTypeBool = () => {\n    return {name: 'bool'}\n}\n\nconst FateTypeString = () => {\n    return {name: 'string'}\n}\n\nconst FateTypeBits = () => {\n    return {name: 'bits'}\n}\n\nconst FateTypeBytes = (size) => {\n    return {name: 'bytes', size}\n}\n\nconst FateTypeHash = () => {\n    return {name: 'hash'}\n}\n\nconst FateTypeSignature = () => {\n    return {name: 'signature'}\n}\n\nconst FateTypeAccountAddress = () => {\n    return {name: 'account_pubkey'}\n}\n\nconst FateTypeContractAddress = () => {\n    return {name: 'contract_pubkey'}\n}\n\nconst FateTypeChannelAddress = () => {\n    return {name: 'channel'}\n}\n\nconst FateTypeOracleAddress = (questionType, answerType) => {\n    return {\n        name: 'oracle_pubkey',\n        questionType,\n        answerType\n    }\n}\n\nconst FateTypeOracleQueryAddress = (questionType, answerType) => {\n    return {\n        name: 'oracle_query_id',\n        questionType,\n        answerType\n    }\n}\n\nconst FateTypeByteArray = () => {\n    return {name: 'byte_array'}\n}\n\nconst FateTypeList = (valuesType) => {\n    return {\n        name: 'list',\n        valuesType,\n    }\n}\n\nconst FateTypeTuple = (valueTypes = []) => {\n    return {\n        name: 'tuple',\n        valueTypes\n    }\n}\n\nconst FateTypeRecord = (keys, valueTypes) => {\n    return {\n        name: 'record',\n        keys,\n        valueTypes,\n    }\n}\n\nconst FateTypeSet = (valuesType) => {\n    return {\n        name: 'set',\n        valuesType,\n    }\n}\n\nconst FateTypeMap = (keyType, valueType) => {\n    return {\n        name: 'map',\n        keyType,\n        valueType,\n    }\n}\n\nconst FateTypeVariant = (variants) => {\n    return {\n        name: 'variant',\n        variants,\n    }\n}\n\nconst FateTypeType = (type) => {\n    return {\n        name: 'type',\n        type,\n    }\n}\n\nconst FateTypeOption = (valueTypes) => {\n    const variants = [\n        { None: []},\n        { Some: valueTypes }\n    ]\n\n    return FateTypeVariant(variants)\n}\n\nconst FateTypeChainTTL = () => {\n    const variants = [\n        {RelativeTTL: [FateTypeInt()]},\n        {FixedTTL: [FateTypeInt()]}\n    ]\n\n    return FateTypeVariant(variants)\n}\n\nconst FateTypeChainGAMetaTx = () => {\n    const variants = [\n        {'Chain.GAMetaTx': [FateTypeAccountAddress(), FateTypeInt()]},\n    ]\n\n    return FateTypeVariant(variants)\n}\n\nconst FateTypeChainPayingForTx = () => {\n    const variants = [\n        {'Chain.PayingForTx': [FateTypeAccountAddress(), FateTypeInt()]},\n    ]\n\n    return FateTypeVariant(variants)\n}\n\nconst FateTypeChainBaseTx = () => {\n    const variants = [\n        {'Chain.SpendTx': [FateTypeAccountAddress(), FateTypeInt(), FateTypeString()]},\n        {'Chain.OracleRegisterTx': []},\n        {'Chain.OracleQueryTx': []},\n        {'Chain.OracleResponseTx': []},\n        {'Chain.OracleExtendTx': []},\n        {'Chain.NamePreclaimTx': []},\n        {'Chain.NameClaimTx': [FateTypeString()]},\n        {'Chain.NameUpdateTx': [FateTypeHash()]},\n        {'Chain.NameRevokeTx': [FateTypeHash()]},\n        {'Chain.NameTransferTx': [FateTypeAccountAddress(), FateTypeHash()]},\n        {'Chain.ChannelCreateTx': [FateTypeAccountAddress()]},\n        {'Chain.ChannelDepositTx': [FateTypeAccountAddress(), FateTypeInt()]},\n        {'Chain.ChannelWithdrawTx': [FateTypeAccountAddress(), FateTypeInt()]},\n        {'Chain.ChannelForceProgressTx': [FateTypeAccountAddress()]},\n        {'Chain.ChannelCloseMutualTx': [FateTypeAccountAddress()]},\n        {'Chain.ChannelCloseSoloTx': [FateTypeAccountAddress()]},\n        {'Chain.ChannelSlashTx': [FateTypeAccountAddress()]},\n        {'Chain.ChannelSettleTx': [FateTypeAccountAddress()]},\n        {'Chain.ChannelSnapshotSoloTx': [FateTypeAccountAddress()]},\n        {'Chain.ContractCreateTx': [FateTypeAccountAddress()]},\n        {'Chain.ContractCallTx': [FateTypeAccountAddress(), FateTypeInt()]},\n        {'Chain.GAAttachTx': []},\n    ]\n\n    return FateTypeVariant(variants)\n}\n\nconst FateTypeAENSPointee = () => {\n    const variants = [\n        {'AENS.AccountPt': [FateTypeAccountAddress()]},\n        {'AENS.OraclePt': [FateTypeAccountAddress()]},\n        {'AENS.ContractPt': [FateTypeAccountAddress()]},\n        {'AENS.ChannelPt': [FateTypeAccountAddress()]},\n    ]\n\n    return FateTypeVariant(variants)\n}\n\nconst FateTypeAENSv2Pointee = () => {\n    const variants = [\n        {'AENSv2.AccountPt': [FateTypeAccountAddress()]},\n        {'AENSv2.OraclePt': [FateTypeAccountAddress()]},\n        {'AENSv2.ContractPt': [FateTypeAccountAddress()]},\n        {'AENSv2.ChannelPt': [FateTypeAccountAddress()]},\n        {'AENSv2.DataPt': [FateTypeBytes()]}, // max 1024 bytes\n    ]\n\n    return FateTypeVariant(variants)\n}\n\nconst FateTypeAENSName = () => {\n    const variants = [{\n        'AENS.Name': [\n            FateTypeAccountAddress(),\n            FateTypeChainTTL(),\n            FateTypeMap(FateTypeString(), FateTypeAENSPointee())\n        ]\n    }]\n\n    return FateTypeVariant(variants)\n}\n\nconst FateTypeAENSv2Name = () => {\n    const variants = [{\n        'AENSv2.Name': [\n            FateTypeAccountAddress(),\n            FateTypeChainTTL(),\n            FateTypeMap(FateTypeString(), FateTypeAENSv2Pointee())\n        ]\n    }]\n\n    return FateTypeVariant(variants)\n}\n\nconst FateTypeEvent = (variantType, topics) => {\n    return {\n        name: 'event',\n        variantType,\n        topics,\n    }\n}\n\nconst FateTypeBls12381Fr = () => {\n    return {name: 'bls12_381.fr'}\n}\n\nconst FateTypeBls12381Fp = () => {\n    return {name: 'bls12_381.fp'}\n}\n\nconst FateTypeCalldata = (functionName, argumentTypes) => {\n    return {\n        name: 'calldata',\n        functionName,\n        argumentTypes,\n    }\n}\n\nconst FateTypeContractBytearray = () => {\n    return {name: 'contract_bytearray'}\n}\n\nconst FateTypeVar = (id) => {\n    return {\n        name: 'tvar',\n        id\n    }\n}\n\nconst FateTypeAny = () => {\n    return {name: 'any'}\n}\n\nexport {\n    FateTypeVoid,\n    FateTypeInt,\n    FateTypeBool,\n    FateTypeString,\n    FateTypeBits,\n    FateTypeBytes,\n    FateTypeHash,\n    FateTypeSignature,\n    FateTypeAccountAddress,\n    FateTypeContractAddress,\n    FateTypeChannelAddress,\n    FateTypeOracleAddress,\n    FateTypeOracleQueryAddress,\n    FateTypeByteArray,\n    FateTypeList,\n    FateTypeTuple,\n    FateTypeRecord,\n    FateTypeSet,\n    FateTypeMap,\n    FateTypeVariant,\n    FateTypeType,\n    FateTypeOption,\n    FateTypeChainTTL,\n    FateTypeChainGAMetaTx,\n    FateTypeChainPayingForTx,\n    FateTypeChainBaseTx,\n    FateTypeAENSPointee,\n    FateTypeAENSv2Pointee,\n    FateTypeAENSName,\n    FateTypeAENSv2Name,\n    FateTypeEvent,\n    FateTypeBls12381Fr,\n    FateTypeBls12381Fp,\n    FateTypeCalldata,\n    FateTypeContractBytearray,\n    FateTypeVar,\n    FateTypeAny,\n}\n","import TypeResolveError from './Errors/TypeResolveError.js'\nimport {\n    FateTypeVoid,\n    FateTypeInt,\n    FateTypeBool,\n    FateTypeString,\n    FateTypeBits,\n    FateTypeBytes,\n    FateTypeHash,\n    FateTypeSignature,\n    FateTypeAccountAddress,\n    FateTypeContractAddress,\n    FateTypeOracleAddress,\n    FateTypeOracleQueryAddress,\n    FateTypeList,\n    FateTypeMap,\n    FateTypeTuple,\n    FateTypeRecord,\n    FateTypeSet,\n    FateTypeVariant,\n    FateTypeOption,\n    FateTypeChainTTL,\n    FateTypeChainGAMetaTx,\n    FateTypeChainPayingForTx,\n    FateTypeChainBaseTx,\n    FateTypeAENSPointee,\n    FateTypeAENSv2Pointee,\n    FateTypeAENSName,\n    FateTypeAENSv2Name,\n    FateTypeBls12381Fr,\n    FateTypeBls12381Fp\n} from './FateTypes.js'\n\nconst isObject = (value) => {\n    return value && typeof value === 'object' && value.constructor === Object\n}\n\nclass TypeResolver {\n    isCustomType() {\n        return false\n    }\n\n    resolveTypeDef(type, valueTypes) {\n        return [type, valueTypes]\n    }\n\n    resolveValueTypes(valueTypes, vars) {\n        if (!Array.isArray(valueTypes)) {\n            return []\n        }\n\n        return valueTypes.map(v => {\n            const tpl = v.hasOwnProperty('type') ? v.type : v\n            const t = vars.hasOwnProperty(tpl) ? vars[tpl] : tpl\n\n            return this.resolveType(t, vars)\n        })\n    }\n\n    resolveType(type, vars = {}) {\n        let key = type\n        let valueTypes = []\n        let resolvedTypes = []\n\n        if (isObject(type)) {\n            [[key, valueTypes]] = Object.entries(type)\n        }\n\n        if (this.isCustomType(key)) {\n            const [typeDef, typeVars] = this.resolveTypeDef(key, valueTypes)\n\n            return this.resolveType(typeDef, typeVars)\n        }\n\n        // variant value types are resolved in its own method\n        if (key !== 'variant') {\n            resolvedTypes = this.resolveValueTypes(valueTypes, vars)\n        }\n\n        if (key === 'void') {\n            return FateTypeVoid()\n        }\n\n        if (key === 'unit') {\n            return FateTypeTuple([])\n        }\n\n        if (key === 'int') {\n            return FateTypeInt()\n        }\n\n        if (key === 'bool') {\n            return FateTypeBool()\n        }\n\n        if (key === 'string') {\n            return FateTypeString()\n        }\n\n        if (key === 'bits') {\n            return FateTypeBits()\n        }\n\n        if (key === 'hash') {\n            return FateTypeHash()\n        }\n\n        if (key === 'signature') {\n            return FateTypeSignature()\n        }\n\n        if (key === 'address') {\n            return FateTypeAccountAddress()\n        }\n\n        if (key === 'contract_pubkey') {\n            return FateTypeContractAddress()\n        }\n\n        if (key === 'Chain.ttl') {\n            return FateTypeChainTTL()\n        }\n\n        if (key === 'Chain.ga_meta_tx') {\n            return FateTypeChainGAMetaTx()\n        }\n\n        if (key === 'Chain.paying_for_tx') {\n            return FateTypeChainPayingForTx()\n        }\n\n        if (key === 'Chain.base_tx') {\n            return FateTypeChainBaseTx()\n        }\n\n        if (key === 'AENS.pointee') {\n            return FateTypeAENSPointee()\n        }\n\n        if (key === 'AENSv2.pointee') {\n            return FateTypeAENSv2Pointee()\n        }\n\n        if (key === 'AENS.name') {\n            return FateTypeAENSName()\n        }\n\n        if (key === 'AENSv2.name') {\n            return FateTypeAENSv2Name()\n        }\n\n        if (key === 'Set.set') {\n            return FateTypeSet(...resolvedTypes)\n        }\n\n        if (key === 'MCL_BLS12_381.fr') {\n            return FateTypeBls12381Fr()\n        }\n\n        if (key === 'MCL_BLS12_381.fp') {\n            return FateTypeBls12381Fp()\n        }\n\n        if (key === 'bytes') {\n            return FateTypeBytes(valueTypes === 'any' ? undefined : valueTypes)\n        }\n\n        if (key === 'list') {\n            return FateTypeList(...resolvedTypes)\n        }\n\n        if (key === 'map') {\n            return FateTypeMap(...resolvedTypes)\n        }\n\n        // Unbox singleton tuples and records\n        // https://github.com/aeternity/aesophia/pull/205\n        // https://github.com/aeternity/aesophia/commit/a403a9d227ac56266cf5bb8fbc916f17e6141d15\n        if ((key === 'tuple' || key === 'record') && resolvedTypes.length === 1) {\n            return resolvedTypes[0]\n        }\n\n        if (key === 'tuple') {\n            return FateTypeTuple(resolvedTypes)\n        }\n\n        if (key === 'record') {\n            const keys = valueTypes.map(e => e.name)\n\n            return FateTypeRecord(keys, resolvedTypes)\n        }\n\n        if (key === 'variant') {\n            return this.resolveVariant(valueTypes, vars)\n        }\n\n        if (key === 'option') {\n            return FateTypeOption(resolvedTypes)\n        }\n\n        if (key === 'oracle') {\n            return FateTypeOracleAddress(...resolvedTypes)\n        }\n\n        if (key === 'oracle_query') {\n            return FateTypeOracleQueryAddress(...resolvedTypes)\n        }\n\n        throw new TypeResolveError('Cannot resolve type: ' + JSON.stringify(type))\n    }\n\n    resolveVariant(valueTypes, vars) {\n        const variants = valueTypes.map(e => {\n            const [[variant, args]] = Object.entries(e)\n            const resolvedArgs = args.map(v => {\n                const t = vars.hasOwnProperty(v) ? vars[v] : v\n                return this.resolveType(t, vars)\n            })\n\n            return {[variant]: resolvedArgs}\n        })\n\n        return FateTypeVariant(variants)\n    }\n}\n\nexport default TypeResolver\n","import InternalResolver from '../TypeResolver.js'\n\nclass TypeResolver {\n    constructor() {\n        this._internalResolver = new InternalResolver()\n    }\n\n    /**\n     * Resolves ACI type format to opaque (internal) type structure\n     * to allow usage of other library APIs that needs type information.\n     * The opaque type shouldn't be used for anything else (including storing) than passing it\n     * as library argument as its structure is not guaranteed.\n     *\n     * @example\n     * const type = resolver.resolveType({map: ['int', 'bool']})\n     * const encoded = ContractByteArrayEncoder.encode(new Map([[7n, false]]), type)\n     * console.log(`Encoded data: ${encoded}`)\n     * // Outputs:\n     * // Encoded data: cb_LwEOfzGit9U=\n     *\n     * @param {object} type - The type information in ACI format\n     * @param {object} vars - Additional type variables, templates etc.\n     * @returns {object} Opaque type information structure\n    */\n    resolveType(type, vars = {}) {\n        return this._internalResolver.resolveType(type, vars)\n    }\n}\n\nexport default TypeResolver\n","class InternalError extends Error {\n    constructor(message) {\n        super(message)\n        this.name = 'InternalError'\n    }\n}\n\nexport default InternalError\n","import InternalError from '../Errors/InternalError.js'\n\nconst assert = (condition, message) => {\n    if (!condition) {\n        throw new InternalError(message)\n    }\n}\n\nexport default assert\n","/* eslint-disable key-spacing, indent */\n\n// Definition of tag scheme.\n// This has to follow the protocol specification.\nexport default Object.freeze({\n    SMALL_INT    :        0b0, // sxxxxxx 0 - 6 bit integer with sign bit\n                                       // 1 Set below\n    LONG_STRING  : 0b00000001, // 000000 01 | RLP encoded array - when size >= 64\n    SHORT_STRING :       0b01, // xxxxxx 01 | [bytes] - when 0 < xxxxxx:size < 64\n                                      // 11  Set below\n    SHORT_LIST   :     0b0011, // xxxx 0011 | [encoded elements] when  0 < length < 16\n                               // xxxx 0111\n                               // 1010 0111\n                               // 1011 0111\n                               // 1100 0111\n                               // 1101 0111\n                               //      0111 Set below\n    TYPE_INTEGER : 0b00000111, // 0000 0111 - Integer typedef\n    TYPE_BOOLEAN : 0b00010111, // 0001 0111 - Boolean typedef\n    TYPE_LIST    : 0b00100111, // 0010 0111 | Type\n    TYPE_TUPLE   : 0b00110111, // 0011 0111 | Size | [Element Types]\n    TYPE_OBJECT  : 0b01000111, // 0100 0111 | ObjectType\n    TYPE_BITS    : 0b01010111, // 0101 0111 - Bits typedef\n    TYPE_MAP     : 0b01100111, // 0110 0111 | Type | Type\n    TYPE_STRING  : 0b01110111, // 0111 0111 - string typedef\n    TYPE_VARIANT : 0b10000111, // 1000 0111 | [Arities] | [Type]\n    TYPE_BYTES   : 0b10010111, // 1001 0111 - Bytes typedef\n    TYPE_CONTRACT_BYTEARRAY: 0b10100111, // 1010 0111 - Fate code typedef\n                               // 1011 0111\n                               // 1100 0111\n                               // 1101 0111\n    TYPE_VAR     : 0b11100111, // 1110 0111 | Id when 0 =< Id < 256 (type variable)\n    TYPE_ANY     : 0b11110111, // 1111 0111 - Any typedef\n\n    LONG_TUPLE   : 0b00001011, // 0000 1011 | RLP encoded (size - 16) | [encoded elements],\n    SHORT_TUPLE  :     0b1011, // xxxx 1011 | [encoded elements] when 0  <  size < 16\n                                    // 1111 Set below\n    LONG_LIST    : 0b00011111, // 0001 1111 | RLP encoded (length - 16) | [encoded elements]\n    MAP          : 0b00101111, // 0010 1111 | RLP encoded size | [encoded key, encoded value]\n    EMPTY_TUPLE  : 0b00111111, // 0011 1111\n    POS_BITS     : 0b01001111, // 0100 1111 | RLP encoded integer (to be interpreted as bitfield)\n    EMPTY_STRING : 0b01011111, // 0101 1111\n    POS_BIG_INT  : 0b01101111, // 0110 1111 | RLP encoded (integer - 64)\n    FALSE        : 0b01111111, // 0111 1111\n    CONTRACT_BYTEARRAY: 0b10001111, // 1000 1111\n    OBJECT       : 0b10011111, // 1001 1111 | ObjectType | RLP encoded Array\n    VARIANT      : 0b10101111, // 1010 1111 | [encoded arities] | encoded tag | [encoded values]\n    MAP_ID       : 0b10111111, // 1011 1111 | RLP encoded integer (store map id)\n    NEG_BITS     : 0b11001111, // 1100 1111 | RLP encoded integer (infinite 1:s bitfield)\n    EMPTY_MAP    : 0b11011111, // 1101 1111\n    NEG_BIG_INT  : 0b11101111, // 1110 1111 | RLP encoded (integer - 64)\n    TRUE         : 0b11111111, // 1111 1111\n\n    // Object types\n    OTYPE_ADDRESS       : 0,\n    OTYPE_BYTES         : 1,\n    OTYPE_CONTRACT      : 2,\n    OTYPE_ORACLE        : 3,\n    OTYPE_ORACLE_QUERY  : 4,\n    OTYPE_CHANNEL       : 5,\n})\n","class FatePrefixError extends Error {\n    constructor(prefix) {\n        super('Invalid FATE prefix: 0b' + prefix.toString(2).padStart(8, '0'))\n\n        this.name = 'FatePrefixError'\n        this.prefix = prefix\n    }\n}\n\nexport default FatePrefixError\n","import assert from './utils/assert.js'\nimport FateTag from './FateTag.js'\nimport FatePrefixError from './Errors/FatePrefixError.js'\nimport {\n    FateTypeInt,\n    FateTypeBool,\n    FateTypeString,\n    FateTypeBits,\n    FateTypeBytes,\n    FateTypeAccountAddress,\n    FateTypeContractAddress,\n    FateTypeOracleAddress,\n    FateTypeOracleQueryAddress,\n    FateTypeChannelAddress,\n    FateTypeList,\n    FateTypeMap,\n    FateTypeTuple,\n    FateTypeVariant,\n    FateTypeContractBytearray,\n    FateTypeType,\n} from './FateTypes.js'\n\nconst OBJECT_TYPES = {\n    [FateTag.OTYPE_ADDRESS]: FateTypeAccountAddress(),\n    [FateTag.OTYPE_BYTES]: FateTypeBytes(),\n    [FateTag.OTYPE_CONTRACT]: FateTypeContractAddress(),\n    [FateTag.OTYPE_ORACLE]: FateTypeOracleAddress(),\n    [FateTag.OTYPE_ORACLE_QUERY]: FateTypeOracleQueryAddress(),\n    [FateTag.OTYPE_CHANNEL]: FateTypeChannelAddress(),\n}\n\nclass TypeFactory {\n    createType(data) {\n        const tag = data[0]\n\n        if (tag === FateTag.TRUE || tag === FateTag.FALSE) {\n            return FateTypeBool()\n        }\n\n        if ((tag & 0x01) === FateTag.SMALL_INT\n            || tag === FateTag.POS_BIG_INT\n            || tag === FateTag.NEG_BIG_INT\n        ) {\n            return FateTypeInt()\n        }\n\n        if ((tag & 0x03) === FateTag.SHORT_STRING\n            || tag === FateTag.LONG_STRING\n            || tag === FateTag.EMPTY_STRING\n        ) {\n            return FateTypeString()\n        }\n\n        if ((tag & 0x0F) === FateTag.SHORT_LIST || tag === FateTag.LONG_LIST) {\n            return FateTypeList()\n        }\n\n        if ((tag & 0x0F) === FateTag.SHORT_TUPLE\n            || tag === FateTag.LONG_TUPLE\n            || tag === FateTag.EMPTY_TUPLE\n        ) {\n            return FateTypeTuple()\n        }\n\n        if (tag === FateTag.MAP || tag === FateTag.EMPTY_MAP) {\n            return FateTypeMap()\n        }\n\n        if (tag === FateTag.POS_BITS || tag === FateTag.NEG_BITS) {\n            return FateTypeBits()\n        }\n\n        if (tag === FateTag.VARIANT) {\n            return FateTypeVariant()\n        }\n\n        if (tag === FateTag.OBJECT) {\n            const obj = data[1]\n            assert(OBJECT_TYPES.hasOwnProperty(obj), `Unsupported object type \"${obj}\"`)\n\n            return OBJECT_TYPES[obj]\n        }\n\n        if (tag === FateTag.CONTRACT_BYTEARRAY) {\n            return FateTypeContractBytearray()\n        }\n\n        if (tag === FateTag.TYPE_INTEGER\n            || tag === FateTag.TYPE_BOOLEAN\n            || tag === FateTag.TYPE_LIST\n            || tag === FateTag.TYPE_TUPLE\n            || tag === FateTag.TYPE_OBJECT\n            || tag === FateTag.TYPE_BITS\n            || tag === FateTag.TYPE_MAP\n            || tag === FateTag.TYPE_STRING\n            || tag === FateTag.TYPE_VARIANT\n            || tag === FateTag.TYPE_BYTES\n            || tag === FateTag.TYPE_CONTRACT_BYTEARRAY\n            || tag === FateTag.TYPE_VAR\n            || tag === FateTag.TYPE_ANY\n        ) {\n            return FateTypeType()\n        }\n\n        throw new FatePrefixError(tag)\n    }\n}\n\nexport default TypeFactory\n","import InternalError from '../Errors/InternalError.js'\n\nclass FateData {\n    constructor(name) {\n        this.name = name\n    }\n\n    valueOf() {\n        throw new InternalError('Not implemented.')\n    }\n\n    accept(visitor) {\n        return visitor.visitData(this)\n    }\n}\n\nexport default FateData\n","class SerializerError extends Error {\n    constructor(message) {\n        super(message)\n        this.name = 'SerializerError'\n    }\n}\n\nexport default SerializerError\n","import SerializerError from '../Errors/SerializerError.js'\n\nclass BaseSerializer {\n    constructor(globalSerializer) {\n        this.globalSerializer = globalSerializer\n    }\n\n    serialize(_data) {\n        throw new SerializerError('Not implemented.')\n    }\n\n    deserialize(data, typeInfo) {\n        const [value, _rest] = this.deserializeStream(data, typeInfo)\n\n        return value\n    }\n\n    deserializeStream(_data, _typeInfo) {\n        throw new SerializerError('Not implemented.')\n    }\n}\n\nexport default BaseSerializer\n","const int2ByteArray = (value) => {\n    const bigInt = BigInt(value)\n\n    if (bigInt < 256n) {\n        return new Uint8Array([Number(bigInt)])\n    }\n\n    return new Uint8Array([\n        ...int2ByteArray(bigInt >> 8n),\n        Number(bigInt & 0xffn)\n    ])\n}\n\nconst byteArrayToHexArray = (data) => {\n    return [...data].map(x => x.toString(16).padStart(2, '0'))\n}\n\nconst byteArray2Int = (data) => {\n    if (data.length === 0) {\n        return 0n\n    }\n\n    const hex = byteArrayToHexArray(data)\n\n    return BigInt('0x' + hex.join(''))\n}\n\nconst byteArray2IntBE = (data) => {\n    const hex = byteArrayToHexArray(data).reverse()\n\n    return BigInt('0x' + hex.join(''))\n}\n\nconst byteArray2Hex = (data) => {\n    return byteArrayToHexArray(data).join('')\n}\n\nexport {\n    int2ByteArray,\n    byteArray2Int,\n    byteArray2IntBE,\n    byteArray2Hex,\n}\n","class FormatError extends Error {\n    constructor(message) {\n        super(message)\n        this.name = 'FormatError'\n    }\n}\n\nexport default FormatError\n","class FateTypeError extends Error {\n    constructor(type, message) {\n        super(message)\n        this.name = 'FateTypeError'\n        this.type = type\n    }\n}\n\nexport default FateTypeError\n","import FateData from './FateData.js'\nimport {int2ByteArray} from '../utils/int2ByteArray.js'\nimport hexStringToByteArray from '../utils/hexStringToByteArray.js'\nimport FateTypeError from '../Errors/FateTypeError.js'\nimport { FateTypeBytes } from '../FateTypes.js'\n\nconst toByteArray = (value, size = 0) => {\n    if (Array.isArray(value) || ArrayBuffer.isView(value)) {\n        return new Uint8Array(value)\n    }\n\n    if (typeof value === 'string') {\n        return hexStringToByteArray(value)\n    }\n\n    if (typeof value !== 'bigint' && !Number.isInteger(value)) {\n        throw new FateTypeError(\n            'byte_array',\n            `Should be one of: Array, ArrayBuffer, hex string, Number, BigInt; got ${value} instead`\n        )\n    }\n\n    const bytes = int2ByteArray(value)\n    if (bytes.length >= size) {\n        return bytes\n    }\n\n    // pad the byte array with 0 significant bytes, because int representation lost\n    const fixedSize = new Uint8Array(size)\n    fixedSize.set(bytes, size - bytes.length)\n\n    return fixedSize\n}\n\nclass FateBytes extends FateData {\n    constructor(value, size, name = 'bytes') {\n        super(name)\n\n        this._value = toByteArray(value, size)\n\n        if (size && this._value.byteLength !== size) {\n            throw new FateTypeError(\n                name,\n                `Invalid length: got ${this._value.byteLength} bytes instead of ${size} bytes`\n            )\n        }\n\n        this._size = size\n    }\n\n    get value() {\n        return this._value\n    }\n\n    get size() {\n        return this._size\n    }\n\n    get type() {\n        return FateTypeBytes(this._size)\n    }\n\n    valueOf() {\n        return this._value\n    }\n}\n\nexport default FateBytes\n","import FormatError from '../Errors/FormatError.js'\n\n// TODO consider using Buffer.from(<string>, 'hex') instead\n// TODO get rid of this ?\n// int2ByteArray(BigInt('0x' + hex.join('')))\nconst hexStringToByteArray = (str) => {\n    const match = str.match(/^(0x)?([a-f0-9]*)$/i)\n    if (!match) {\n        throw new FormatError(`Invalid hex string: ${str}`)\n    }\n\n    return new Uint8Array(match[2]\n        .split(/(.{1,2})/)\n        .filter(el => el)\n        .map(el => parseInt(el, 16)))\n}\n\nexport default hexStringToByteArray\n","import FateBytes from './FateBytes.js'\n\nclass FateAddress extends FateBytes {\n    constructor(value, name, prefix) {\n        super(value, 32, name)\n\n        this._prefix = prefix\n    }\n\n    get prefix() {\n        return this._prefix\n    }\n\n    accept(visitor) {\n        return visitor.visitAddress(this)\n    }\n}\n\nexport default FateAddress\n","import FateAddress from './FateAddress.js'\nimport { FateTypeAccountAddress } from '../FateTypes.js'\n\nclass FateAccountAddress extends FateAddress {\n    constructor(value) {\n        super(value, 'account_pubkey', 'ak')\n    }\n\n    get type() {\n        return FateTypeAccountAddress()\n    }\n}\n\nexport default FateAccountAddress\n","import RLP from 'rlp'\nimport FateTag from '../FateTag.js'\nimport BaseSerializer from './BaseSerializer.js'\nimport FateAccountAddress from '../types/FateAccountAddress.js'\n\nclass AddressSerializer extends BaseSerializer {\n    serialize(data) {\n        return [\n            FateTag.OBJECT,\n            FateTag.OTYPE_ADDRESS,\n            ...RLP.encode(data.value)\n        ]\n    }\n\n    deserializeStream(data) {\n        const buffer = new Uint8Array(data)\n        const decoded = RLP.decode(buffer.slice(2), true)\n\n        return [\n            new FateAccountAddress(decoded.data),\n            new Uint8Array(decoded.remainder)\n        ]\n    }\n}\n\nexport default AddressSerializer\n","import RLP from 'rlp'\nimport {int2ByteArray, byteArray2Int} from './int2ByteArray.js'\n\nexport function encode(value) {\n    return new Uint8Array(RLP.encode(int2ByteArray(value)))\n}\n\nexport function decode(buffer) {\n    const decoded = RLP.decode(buffer, true)\n    return [byteArray2Int(decoded.data), decoded.remainder]\n}\n","import { FateTypeBits } from '../FateTypes.js'\nimport FateData from './FateData.js'\n\nclass FateBits extends FateData {\n    constructor(value) {\n        super('bits')\n\n        this._value = BigInt(value)\n    }\n\n    get type() {\n        return FateTypeBits()\n    }\n\n    get value() {\n        return this._value\n    }\n\n    valueOf() {\n        return this._value\n    }\n}\n\nexport default FateBits\n","const abs = (val) => {\n    return val > 0 ? val : val * -1n\n}\n\nexport default abs\n","import FateTag from '../FateTag.js'\nimport * as RLPInt from '../utils/RLPInt.js'\nimport FateBits from '../types/FateBits.js'\nimport BaseSerializer from './BaseSerializer.js'\nimport abs from '../utils/abs.js'\n\nclass BitsSerializer extends BaseSerializer {\n    serialize(data) {\n        const prefix = data.value >= 0 ? FateTag.POS_BITS : FateTag.NEG_BITS\n\n        return [\n            prefix,\n            ...RLPInt.encode(abs(data.value))\n        ]\n    }\n\n    deserializeStream(data) {\n        const buffer = new Uint8Array(data)\n        const sign = buffer[0] === FateTag.POS_BITS ? 1n : -1n\n        const [i, remainder] = RLPInt.decode(buffer.slice(1))\n\n        return [\n            new FateBits(i * sign),\n            new Uint8Array(remainder)\n        ]\n    }\n}\n\nexport default BitsSerializer\n","import FateData from './FateData.js'\nimport {FateTypeBool} from '../FateTypes.js'\n\nclass FateBool extends FateData {\n    constructor(value) {\n        super('bool')\n\n        this._value = !!value\n    }\n\n    get value() {\n        return this._value\n    }\n\n    get type() {\n        return FateTypeBool()\n    }\n\n    valueOf() {\n        return this._value\n    }\n}\n\nexport default FateBool\n","import FateTag from '../FateTag.js'\nimport FateBool from '../types/FateBool.js'\nimport BaseSerializer from './BaseSerializer.js'\nimport FatePrefixError from '../Errors/FatePrefixError.js'\n\nclass BoolSerializer extends BaseSerializer {\n    serialize(data) {\n        return (data.valueOf() === true) ? [FateTag.TRUE] : [FateTag.FALSE]\n    }\n\n    deserializeStream(data) {\n        const buffer = new Uint8Array(data)\n        const prefix = buffer[0]\n        const rest = buffer.slice(1)\n\n        if (prefix === FateTag.TRUE) {\n            return [new FateBool(true), rest]\n        }\n\n        if (prefix === FateTag.FALSE) {\n            return [new FateBool(false), rest]\n        }\n\n        throw new FatePrefixError(prefix)\n    }\n}\n\nexport default BoolSerializer\n","import FateData from './FateData.js'\nimport {FateTypeByteArray} from '../FateTypes.js'\n\nclass FateByteArray extends FateData {\n    constructor(value = []) {\n        super('byte_array')\n\n        this._value = new Uint8Array(value)\n    }\n\n    get length() {\n        return this._value.length\n    }\n\n    get type() {\n        return FateTypeByteArray()\n    }\n\n    valueOf() {\n        return this._value\n    }\n}\n\nexport default FateByteArray\n","import FateData from './FateData.js'\nimport {FateTypeInt} from '../FateTypes.js'\n\nclass FateInt extends FateData {\n    constructor(value) {\n        super('int')\n\n        this._value = BigInt(value)\n    }\n\n    get value() {\n        return this._value\n    }\n\n    get type() {\n        return FateTypeInt()\n    }\n\n    valueOf() {\n        return this._value\n    }\n}\n\nexport default FateInt\n","import FateTag from '../FateTag.js'\nimport * as RLPInt from '../utils/RLPInt.js'\nimport FateInt from '../types/FateInt.js'\nimport BaseSerializer from './BaseSerializer.js'\nimport FatePrefixError from '../Errors/FatePrefixError.js'\nimport abs from '../utils/abs.js'\n\nconst SMALL_INT_MASK = 0b00000001\n\nclass IntSerializer extends BaseSerializer {\n    serialize(data) {\n        const bigValue = (data instanceof FateInt) ? data.value : BigInt(data)\n        const absVal = abs(bigValue)\n\n        // small integer\n        if (absVal < 64) {\n            const small = Number(absVal)\n            if (bigValue >= 0) {\n                return [(small << 1)]\n            }\n\n            // negative\n            return [(0b10000000 | (small << 1)) & 0b11111110]\n        }\n\n        // large negative integer\n        if (bigValue < 0) {\n            return [\n                FateTag.NEG_BIG_INT,\n                ...RLPInt.encode(absVal - 64n)\n            ]\n        }\n\n        // large positive integer\n        return [\n            FateTag.POS_BIG_INT,\n            ...RLPInt.encode(absVal - 64n)\n        ]\n    }\n\n    deserializeStream(stream) {\n        const data = new Uint8Array(stream)\n        const prefix = data[0]\n\n        // small int\n        if ((prefix & SMALL_INT_MASK) === 0) {\n            // positive\n            if ((prefix & 0b10000000) === 0) {\n                return [\n                    new FateInt(prefix >> 1),\n                    data.slice(1)\n                ]\n            }\n\n            // negative\n            const i = (prefix & 0b01111110) >> 1\n\n            return [\n                new FateInt(-i),\n                data.slice(1)\n            ]\n        }\n\n        if (prefix === FateTag.POS_BIG_INT || prefix === FateTag.NEG_BIG_INT) {\n            const sign = prefix === FateTag.POS_BIG_INT ? 1n : -1n\n            const [i, remainder] = RLPInt.decode(data.slice(1))\n\n            return [\n                new FateInt((i + 64n) * sign),\n                new Uint8Array(remainder)\n            ]\n        }\n\n        throw new FatePrefixError(prefix)\n    }\n}\n\nexport default IntSerializer\n","import FateTag from '../FateTag.js'\nimport BaseSerializer from './BaseSerializer.js'\nimport FateByteArray from '../types/FateByteArray.js'\nimport IntSerializer from './IntSerializer.js'\n\nconst intSerializer = new IntSerializer()\n\nclass ByteArraySerializer extends BaseSerializer {\n    serialize(data) {\n        if (data.length === 0) {\n            return [FateTag.EMPTY_STRING]\n        }\n\n        if (data.length < 64) {\n            const prefix = (data.length << 2) | FateTag.SHORT_STRING\n\n            return [\n                prefix,\n                ...data.valueOf()\n            ]\n        }\n\n        return [\n            FateTag.LONG_STRING,\n            ...intSerializer.serialize(data.length - 64),\n            ...data.valueOf()\n        ]\n    }\n\n    deserializeStream(stream) {\n        const data = new Uint8Array(stream)\n        const prefix = data[0]\n\n        if (prefix === FateTag.EMPTY_STRING) {\n            return [\n                new FateByteArray(),\n                data.slice(1)\n            ]\n        }\n\n        if (prefix === FateTag.LONG_STRING) {\n            const [fateLen, rest] = intSerializer.deserializeStream(data.slice(1))\n            const len = Number(fateLen.valueOf()) + 64\n\n            return [\n                new FateByteArray(rest.slice(0, len)),\n                rest.slice(len)\n            ]\n        }\n\n        // short string\n        const offset = (prefix >> 2) + 1\n\n        return [\n            new FateByteArray(data.slice(1, offset)),\n            data.slice(offset)\n        ]\n    }\n}\n\nexport default ByteArraySerializer\n","import FateTag from '../FateTag.js'\nimport ByteArraySerializer from './ByteArraySerializer.js'\nimport FateBytes from '../types/FateBytes.js'\nimport BaseSerializer from './BaseSerializer.js'\n\nconst byteArraySerializer = new ByteArraySerializer()\n\nclass BytesSerializer extends BaseSerializer {\n    serialize(bytes) {\n        return [\n            FateTag.OBJECT,\n            FateTag.OTYPE_BYTES,\n            ...byteArraySerializer.serialize(bytes.value)\n        ]\n    }\n\n    deserializeStream(data) {\n        const buffer = new Uint8Array(data)\n        const [bytes, rest] = byteArraySerializer.deserializeStream(buffer.slice(2))\n\n        return [\n            new FateBytes(bytes.valueOf()),\n            rest\n        ]\n    }\n}\n\nexport default BytesSerializer\n","import FateAddress from './FateAddress.js'\nimport { FateTypeChannelAddress } from '../FateTypes.js'\n\nclass FateChannelAddress extends FateAddress {\n    constructor(value) {\n        super(value, 'channel', 'ch')\n    }\n\n    get type() {\n        return FateTypeChannelAddress()\n    }\n}\n\nexport default FateChannelAddress\n","import RLP from 'rlp'\nimport FateTag from '../FateTag.js'\nimport BaseSerializer from './BaseSerializer.js'\nimport FateChannelAddress from '../types/FateChannelAddress.js'\n\nclass ChannelSerializer extends BaseSerializer {\n    serialize(data) {\n        return [\n            FateTag.OBJECT,\n            FateTag.OTYPE_CHANNEL,\n            ...RLP.encode(data.value)\n        ]\n    }\n\n    deserializeStream(data) {\n        const buffer = new Uint8Array(data)\n        const decoded = RLP.decode(buffer.slice(2), true)\n\n        return [\n            new FateChannelAddress(decoded.data),\n            new Uint8Array(decoded.remainder)\n        ]\n    }\n}\n\nexport default ChannelSerializer\n","import FateAddress from './FateAddress.js'\nimport { FateTypeContractAddress } from '../FateTypes.js'\n\nclass FateContractAddress extends FateAddress {\n    constructor(value) {\n        super(value, 'contract_pubkey', 'ct')\n    }\n\n    get type() {\n        return FateTypeContractAddress()\n    }\n}\n\nexport default FateContractAddress\n","import RLP from 'rlp'\nimport FateTag from '../FateTag.js'\nimport BaseSerializer from './BaseSerializer.js'\nimport FateContractAddress from '../types/FateContractAddress.js'\n\nclass ContractSerializer extends BaseSerializer {\n    serialize(data) {\n        return [\n            FateTag.OBJECT,\n            FateTag.OTYPE_CONTRACT,\n            ...RLP.encode(data.value)\n        ]\n    }\n\n    deserializeStream(data) {\n        const buffer = new Uint8Array(data)\n        const decoded = RLP.decode(buffer.slice(2), true)\n\n        return [\n            new FateContractAddress(decoded.data),\n            new Uint8Array(decoded.remainder)\n        ]\n    }\n}\n\nexport default ContractSerializer\n","import FateData from './FateData.js'\nimport {FateTypeVoid} from '../FateTypes.js'\n\nclass FateVoid extends FateData {\n    constructor() {\n        super('void')\n\n        this._value = undefined\n    }\n\n    get value() {\n        return this._value\n    }\n\n    get type() {\n        return FateTypeVoid()\n    }\n\n    valueOf() {\n        return this._value\n    }\n}\n\nexport default FateVoid\n","import FateVoid from '../types/FateVoid.js'\nimport BaseSerializer from './BaseSerializer.js'\n\nclass VoidSerializer extends BaseSerializer {\n    serialize() {\n        return ''\n    }\n\n    deserialize() {\n        return new FateVoid()\n    }\n\n    deserializeStream(data) {\n        return [new FateVoid(), data]\n    }\n}\n\nexport default VoidSerializer\n","import FateData from './FateData.js'\nimport {FateTypeList} from '../FateTypes.js'\n\nclass FateList extends FateData {\n    constructor(itemsType, items = []) {\n        super('list')\n\n        this._itemsType = itemsType\n        this.items = Array.from(items)\n    }\n\n    get itemsType() {\n        return this._itemsType\n    }\n\n    get type() {\n        return FateTypeList(this.itemsType)\n    }\n\n    get length() {\n        return this.items.length\n    }\n\n    valueOf() {\n        return this.items.map(e => e.valueOf())\n    }\n\n    accept(visitor) {\n        return visitor.visitList(this)\n    }\n}\n\nexport default FateList\n","import * as RLPInt from '../utils/RLPInt.js'\nimport FateTag from '../FateTag.js'\nimport FateList from '../types/FateList.js'\nimport BaseSerializer from './BaseSerializer.js'\n\nclass ListSerializer extends BaseSerializer {\n    serialize(list) {\n        const serializedElements = list.items.map(e => {\n            return this.globalSerializer.serialize(e)\n        }).flat(Infinity)\n\n        const len = list.items.length\n\n        if (len < 16) {\n            const prefix = (len << 4) | FateTag.SHORT_LIST\n\n            return [\n                prefix,\n                ...serializedElements\n            ]\n        }\n\n        return [\n            FateTag.LONG_LIST,\n            ...RLPInt.encode(len - 16),\n            ...serializedElements\n        ]\n    }\n\n    deserializeStream(data, typeInfo) {\n        const buffer = new Uint8Array(data)\n        const prefix = buffer[0]\n        let len = 0n\n        let rest = buffer.slice(1)\n\n        if (prefix === FateTag.LONG_LIST) {\n            [len, rest] = RLPInt.decode(buffer.slice(1))\n            len += 16n\n        }\n\n        if ((prefix & 0x0F) === FateTag.SHORT_LIST) {\n            len = BigInt((prefix & 0xF0) >> 4)\n        }\n\n        let itemsType\n\n        if (typeof typeInfo !== 'undefined') {\n            itemsType = typeInfo.valuesType\n        }\n\n        let el\n        const elements = []\n\n        for (let i = 0n; i < len; i++) {\n            [el, rest] = this.globalSerializer.deserializeStream(rest, itemsType)\n            elements.push(el)\n        }\n\n        if (len === 0n) {\n            return [new FateList(), rest]\n        }\n\n        if (typeof typeInfo === 'undefined') {\n            itemsType = elements[0].type\n        }\n\n        return [\n            new FateList(itemsType, elements),\n            rest\n        ]\n    }\n}\n\nexport default ListSerializer\n","import FateData from './FateData.js'\nimport {FateTypeMap} from '../FateTypes.js'\n\nconst arrayToItem = (item) => {\n    const [key, value] = item\n    return {key, value}\n}\n\nclass FateMap extends FateData {\n    constructor(keyType, valueType, items = []) {\n        super('map')\n\n        this._keyType = keyType\n        this._valueType = valueType\n        this._type = FateTypeMap(keyType, valueType)\n        this._value = new Map(items)\n    }\n\n    get items() {\n        return [...this._value.entries()].map(arrayToItem)\n    }\n\n    get keyType() {\n        return this._keyType\n    }\n\n    get valueType() {\n        return this._valueType\n    }\n\n    get type() {\n        return this._type\n    }\n\n    get length() {\n        return this._value.size\n    }\n\n    get iterator() {\n        return this._value[Symbol.iterator]()\n    }\n\n    get keys() {\n        return this._value.keys()\n    }\n\n    valueOf() {\n        const map = new Map()\n        for (const [key, value] of this.iterator) {\n            map.set(key.valueOf(), value.valueOf())\n        }\n\n        return map\n    }\n\n    accept(visitor) {\n        return visitor.visitMap(this)\n    }\n}\n\nexport default FateMap\n","import FateData from './FateData.js'\nimport {FateTypeTuple} from '../FateTypes.js'\n\nconst zipObject = (keys, values) => {\n    const reducer = (acc, k, i) => {\n        acc[k] = values[i]\n        return acc\n    }\n\n    return keys.reduce(reducer, {})\n}\n\nclass FateTuple extends FateData {\n    constructor(valueTypes = [], items = []) {\n        super('tuple')\n\n        this._valueTypes = (valueTypes.hasOwnProperty('valueTypes')) ? valueTypes.valueTypes : valueTypes\n        this._type = Array.isArray(valueTypes) ? FateTypeTuple(valueTypes) : valueTypes\n        this._items = Array.from(items)\n    }\n\n    get valueTypes() {\n        return this._valueTypes\n    }\n\n    get type() {\n        return this._type\n    }\n\n    get size() {\n        return this._items.length\n    }\n\n    get items() {\n        return this._items\n    }\n\n    valueOf() {\n        return this.prepareItems(e => e.valueOf())\n    }\n\n    prepareItems(callback) {\n        const items = this._items.map(callback)\n\n        if (this._type.name === 'record') {\n            return zipObject(this._type.keys, items)\n        }\n\n        return items\n    }\n\n    accept(visitor) {\n        return visitor.visitTuple(this)\n    }\n}\n\nexport default FateTuple\n","import FateData from './FateData.js'\nimport {FateTypeSet} from '../FateTypes.js'\n\nclass FateSet extends FateData {\n    constructor(itemsType, items = []) {\n        super('set')\n\n        this._itemsType = itemsType\n        this._items = new Set(items)\n    }\n\n    get items() {\n        return Array.from(this._items.values())\n    }\n\n    get itemsType() {\n        return this._itemsType\n    }\n\n    get type() {\n        return FateTypeSet(this.itemsType)\n    }\n\n    get length() {\n        return this._items.size\n    }\n\n    valueOf() {\n        return new Set(this.items.map(e => e.valueOf()))\n    }\n\n    accept(visitor) {\n        return visitor.visitSet(this)\n    }\n}\n\nexport default FateSet\n","import BaseSerializer from './BaseSerializer.js'\nimport {FateTypeTuple, FateTypeMap} from '../FateTypes.js'\nimport FateMap from '../types/FateMap.js'\nimport FateTuple from '../types/FateTuple.js'\nimport FateSet from '../types/FateSet.js'\n\n// This serializer takes advantages of the singular tuple optimization directly\n// An alternative implementation would be building the full structure\n// and pass it upstream for optimization.\n// Unbox singleton tuples and records\n// https://github.com/aeternity/aesophia/pull/205\n// https://github.com/aeternity/aesophia/commit/a403a9d227ac56266cf5bb8fbc916f17e6141d15\n\nclass SetSerializer extends BaseSerializer {\n    serialize(set) {\n        return this.globalSerializer.serialize(new FateMap(\n            set.itemsType,\n            FateTypeTuple(),\n            set.items.map(i => [i, new FateTuple()])\n        ))\n    }\n\n    deserializeStream(data, typeInfo) {\n        const mapType = FateTypeMap(typeInfo.valuesType, FateTypeTuple())\n        const [map, rest] = this.globalSerializer.deserializeStream(data, mapType)\n\n        return [\n            new FateSet(typeInfo.valuesType, map.keys),\n            rest\n        ]\n    }\n}\n\nexport default SetSerializer\n","import assert from './utils/assert.js'\nimport FateList from './types/FateList.js'\nimport FateTuple from './types/FateTuple.js'\nimport {FateTypeTuple, FateTypeInt} from './FateTypes.js'\n\n/* eslint-disable no-use-before-define */\n\n// TODO types comparator\nconst listComparator = (a, b) => {\n    if (a.length === 0) {\n        return -1\n    }\n\n    if (b.length === 0) {\n        return 1\n    }\n\n    const cmp = FateComparator(a.itemsType)\n    for (let i = 0; i < a.length; i++) {\n        // second list is shorter but matches as prefix of the first one\n        if (typeof b.items[i] === 'undefined') {\n            return 1\n        }\n\n        // element difference\n        const diff = cmp(a.items[i], b.items[i])\n        if (diff !== 0) {\n            return diff\n        }\n    }\n\n    // if there is no early return from the loop above\n    // then the first list match a prefix of the second\n\n    // equal lists\n    if (a.length === b.length) {\n        return 0\n    }\n\n    // first list is shorter, thus smaller\n    return -1\n}\n\nconst tupleComparator = (a, b) => {\n    if (a.size === 0) {\n        return -1\n    }\n\n    const sizeDiff = a.size - b.size\n    if (sizeDiff !== 0) {\n        return sizeDiff\n    }\n\n    // equal size - compare elements\n    for (let i = 0; i < a.size; i++) {\n        const valTypeA = a.valueTypes[i]\n\n        // TODO support different types ?\n\n        const diff = FateComparator(valTypeA)(a.items[i], b.items[i])\n        if (diff !== 0) {\n            return diff\n        }\n    }\n\n    // equal tuples\n    return 0\n}\n\nconst variantComparator = (a, b) => {\n    const aDiff = a.arities.length - b.arities.length\n    if (aDiff !== 0) {\n        return aDiff\n    }\n\n    const aList = new FateList(a.aritiesType, a.arities)\n    const bList = new FateList(b.aritiesType, b.arities)\n    const aComparator = FateComparator(aList)\n\n    const lDiff = aComparator(aList, bList)\n    if (lDiff !== 0) {\n        return lDiff\n    }\n\n    const tDiff = a.tag - b.tag\n    if (tDiff !== 0) {\n        return tDiff\n    }\n\n    // equal arities and tags - compare elements\n    const elementsComparator = FateComparator(FateTypeTuple())\n\n    return elementsComparator(\n        new FateTuple(a.valueTypes, a.value),\n        new FateTuple(b.valueTypes, b.value)\n    )\n}\n\nconst mapItemComparator = (type) => {\n    const keyComparator = FateComparator(type)\n    return (a, b) => keyComparator(a.key, b.key)\n}\n\nconst mapComparator = (a, b) => {\n    const aItems = [...a.items]\n    const bItems = [...b.items]\n\n    aItems.sort(mapItemComparator(a.keyType))\n    bItems.sort(mapItemComparator(b.keyType))\n\n    const keyComparator = FateComparator(a.keyType)\n    const valueComparator = FateComparator(a.valueType)\n\n    for (let i = 0; i < aItems.length; i++) {\n        // second map is smaller (less items)\n        if (typeof bItems[i] === 'undefined') {\n            return 1\n        }\n\n        const aItem = aItems[i]\n        const bItem = bItems[i]\n\n        const kDiff = keyComparator(aItem.key, bItem.key)\n        if (kDiff !== 0) {\n            return kDiff\n        }\n\n        const vDiff = valueComparator(aItem.value, bItem.value)\n        if (vDiff !== 0) {\n            return vDiff\n        }\n    }\n\n    // equal number of items\n    if (aItems.length === bItems.length) {\n        return 0\n    }\n\n    // first map item list is shorter, thus smaller\n    return -1\n}\n\nconst bytesComparator = (a, b) => {\n    const aList = new FateList(FateTypeInt(), a.valueOf())\n    const bList = new FateList(FateTypeInt(), b.valueOf())\n\n    return listComparator(aList, bList)\n}\n\nconst stringComparator = (a, b) => {\n    const encoder = new TextEncoder()\n\n    const as = a.toString()\n    const bs = b.toString()\n\n    if (as.length === bs.length) {\n        return bytesComparator(encoder.encode(a), encoder.encode(b))\n    }\n\n    return as.length - bs.length\n}\n\nconst intComparator = (a, b) => Number(BigInt(a) - BigInt(b))\nconst boolComparator = (a, b) => a - b\nconst bitsComparator = (a, b) => {\n    return (a < 0 || b < 0) ? -intComparator(a, b) : intComparator(a, b)\n}\n\nconst comparators = {\n    'int': intComparator,\n    'bool': boolComparator,\n    'string': stringComparator,\n    'bits': bitsComparator,\n    // composite types\n    'list': listComparator,\n    'tuple': tupleComparator,\n    'variant': variantComparator,\n    'map': mapComparator,\n    // objects (bytes)\n    'bytes': bytesComparator,\n    'account_pubkey': bytesComparator,\n    'channel': bytesComparator,\n    'contract_pubkey': bytesComparator,\n    'oracle_query_id': bytesComparator,\n    'oracle_pubkey': bytesComparator,\n}\n\nconst FateComparator = (type) => {\n    assert(type.hasOwnProperty('name'), `Cannot determine type name of ${JSON.stringify(type)}`)\n    assert(comparators.hasOwnProperty(type.name), `Unsupported comparator for ${type.name}`)\n\n    return comparators[type.name]\n}\n\nexport default FateComparator\n","import FateTag from '../FateTag.js'\nimport * as RLPInt from '../utils/RLPInt.js'\nimport BaseSerializer from './BaseSerializer.js'\nimport FateComparator from '../FateComparator.js'\nimport FateMap from '../types/FateMap.js'\nimport FatePrefixError from '../Errors/FatePrefixError.js'\n\nclass MapSerializer extends BaseSerializer {\n    serialize(map) {\n        const len = map.length\n        const cmp = FateComparator(map.keyType)\n\n        const sortedItems = [...map.items]\n        sortedItems.sort((elA, elB) => cmp(elA.key, elB.key))\n\n        const serializedItems = sortedItems.map(i => {\n            return [\n                this.globalSerializer.serialize(i.key),\n                this.globalSerializer.serialize(i.value)\n            ]\n        })\n\n        return [\n            FateTag.MAP,\n            ...RLPInt.encode(len),\n            ...serializedItems.flat(Infinity)\n        ]\n    }\n\n    deserializeStream(data, typeInfo) {\n        const buffer = new Uint8Array(data)\n        const prefix = buffer[0]\n\n        if (prefix !== FateTag.MAP) {\n            throw new FatePrefixError(prefix)\n        }\n\n        const [len, remainder] = RLPInt.decode(buffer.slice(1))\n        let rest = remainder\n\n        if (len === 0n) {\n            return [new FateMap(), rest]\n        }\n\n        let keyType\n        let valueType\n\n        if (typeof typeInfo !== 'undefined') {\n            ({keyType, valueType} = typeInfo)\n        }\n\n        const elements = []\n        for (let i = 0n; i < len; i++) {\n            const [key, keyRest] = this.globalSerializer.deserializeStream(rest, keyType)\n            const [value, valueRest] = this.globalSerializer.deserializeStream(keyRest, valueType)\n\n            elements.push([key, value])\n            rest = valueRest\n        }\n\n        const firstEl = elements[0]\n\n        if (typeof typeInfo === 'undefined') {\n            keyType = firstEl[0].type\n            valueType = firstEl[1].type\n        }\n\n        return [\n            new FateMap(\n                keyType,\n                valueType,\n                elements\n            ),\n            rest\n        ]\n    }\n}\n\nexport default MapSerializer\n","import FateAddress from './FateAddress.js'\nimport { FateTypeOracleQueryAddress } from '../FateTypes.js'\n\nclass FateOracleQueryAddress extends FateAddress {\n    constructor(value) {\n        super(value, 'oracle_query_id', 'oq')\n    }\n\n    get type() {\n        return FateTypeOracleQueryAddress()\n    }\n}\n\nexport default FateOracleQueryAddress\n","import RLP from 'rlp'\nimport FateTag from '../FateTag.js'\nimport BaseSerializer from './BaseSerializer.js'\nimport FateOracleQueryAddress from '../types/FateOracleQueryAddress.js'\n\nclass OracleQuerySerializer extends BaseSerializer {\n    serialize(data) {\n        return [\n            FateTag.OBJECT,\n            FateTag.OTYPE_ORACLE_QUERY,\n            ...RLP.encode(data.value)\n        ]\n    }\n\n    deserializeStream(data) {\n        const buffer = new Uint8Array(data)\n        const decoded = RLP.decode(buffer.slice(2), true)\n\n        return [\n            new FateOracleQueryAddress(decoded.data),\n            new Uint8Array(decoded.remainder)\n        ]\n    }\n}\n\nexport default OracleQuerySerializer\n","import FateAddress from './FateAddress.js'\nimport { FateTypeOracleAddress } from '../FateTypes.js'\n\nclass FateOracleAddress extends FateAddress {\n    constructor(value) {\n        super(value, 'oracle_pubkey', 'ok')\n    }\n\n    get type() {\n        return FateTypeOracleAddress()\n    }\n}\n\nexport default FateOracleAddress\n","import RLP from 'rlp'\nimport FateTag from '../FateTag.js'\nimport BaseSerializer from './BaseSerializer.js'\nimport FateOracleAddress from '../types/FateOracleAddress.js'\n\nclass OracleSerializer extends BaseSerializer {\n    serialize(data) {\n        return [\n            FateTag.OBJECT,\n            FateTag.OTYPE_ORACLE,\n            ...RLP.encode(data.value)\n        ]\n    }\n\n    deserializeStream(data) {\n        const buffer = new Uint8Array(data)\n        const decoded = RLP.decode(buffer.slice(2), true)\n\n        return [\n            new FateOracleAddress(decoded.data),\n            new Uint8Array(decoded.remainder)\n        ]\n    }\n}\n\nexport default OracleSerializer\n","import FateData from './FateData.js'\nimport {FateTypeString} from '../FateTypes.js'\nimport { byteArray2Int } from '../utils/int2ByteArray.js'\n\nconst toString = (data) => {\n    if (data instanceof Uint8Array) {\n        const decoder = new TextDecoder()\n        return decoder.decode(data)\n    }\n\n    return data.toString()\n}\n\nconst toBytes = (data) => {\n    if (typeof data === 'string') {\n        const encoder = new TextEncoder()\n        return encoder.encode(data)\n    }\n\n    return data\n}\n\nconst isUnicodeString = (data) => {\n    const bytes = toBytes(toString(data))\n    return byteArray2Int(data) === byteArray2Int(bytes)\n}\n\nclass FateString extends FateData {\n    constructor(value) {\n        super('string')\n\n        this._value = toBytes(value)\n    }\n\n    get type() {\n        return FateTypeString()\n    }\n\n    toString() {\n        return toString(this._value)\n    }\n\n    toBytes() {\n        return this._value\n    }\n\n    valueOf() {\n        if (isUnicodeString(this._value)) {\n            return this.toString()\n        }\n\n        return this._value\n    }\n}\n\nexport default FateString\n","import FateTag from '../FateTag.js'\nimport BaseSerializer from './BaseSerializer.js'\nimport ByteArraySerializer from './ByteArraySerializer.js'\nimport FateString from '../types/FateString.js'\nimport FatePrefixError from '../Errors/FatePrefixError.js'\n\nconst byteArraySerializer = new ByteArraySerializer()\n\nclass StringSerializer extends BaseSerializer {\n    serialize(value) {\n        let bytesOrString = value.valueOf()\n\n        if (typeof bytesOrString === 'string') {\n            const encoder = new TextEncoder()\n            bytesOrString = encoder.encode(bytesOrString)\n        }\n\n        return byteArraySerializer.serialize(bytesOrString)\n    }\n\n    deserializeStream(data) {\n        const buffer = new Uint8Array(data)\n        const prefix = buffer[0]\n\n        if (\n            (prefix & 0b11) !== FateTag.SHORT_STRING\n            && ![FateTag.EMPTY_STRING, FateTag.LONG_STRING].includes(prefix)\n        ) {\n            throw new FatePrefixError(prefix)\n        }\n\n        const [bytes, rest] = byteArraySerializer.deserializeStream(buffer)\n\n        return [\n            new FateString(bytes.valueOf()),\n            rest\n        ]\n    }\n}\n\nexport default StringSerializer\n","import FateTag from '../FateTag.js'\nimport FateTuple from '../types/FateTuple.js'\nimport BaseSerializer from './BaseSerializer.js'\nimport * as RLPInt from '../utils/RLPInt.js'\n\nclass TupleSerializer extends BaseSerializer {\n    serialize(tuple) {\n        const len = tuple.size\n        if (len === 0) {\n            return [FateTag.EMPTY_TUPLE]\n        }\n\n        const elements = tuple.items\n            .map(e => this.globalSerializer.serialize(e))\n            .flat(Infinity)\n\n        if (len < 16) {\n            const prefix = (len << 4) | FateTag.SHORT_TUPLE\n\n            return [\n                prefix,\n                ...elements\n            ]\n        }\n\n        return [\n            FateTag.LONG_TUPLE,\n            ...RLPInt.encode(len - 16),\n            ...elements\n        ]\n    }\n\n    deserializeStream(data, typeInfo) {\n        const buffer = new Uint8Array(data)\n        const prefix = buffer[0]\n        let len = 0n\n        let rest = buffer.slice(1)\n\n        if (prefix === FateTag.EMPTY_TUPLE) {\n            return [new FateTuple(), rest]\n        }\n\n        if ((prefix & 0x0F) === FateTag.SHORT_TUPLE) {\n            len = (prefix & 0xF0) >> 4\n        }\n\n        if (prefix === FateTag.LONG_TUPLE) {\n            [len, rest] = RLPInt.decode(buffer.slice(1))\n            len += 16n\n        }\n\n        let valueTypes = []\n        if (typeof typeInfo !== 'undefined') {\n            valueTypes = typeInfo.valueTypes\n        }\n\n        const elements = []\n        let el = null\n        for (let i = 0n; i < len; i++) {\n            [el, rest] = this.globalSerializer.deserializeStream(rest, valueTypes[i])\n            elements.push(el)\n        }\n\n        let type = typeInfo\n        if (typeof typeInfo === 'undefined') {\n            type = elements.map(e => e.type)\n        }\n\n        return [\n            new FateTuple(type, elements),\n            rest\n        ]\n    }\n}\n\nexport default TupleSerializer\n","import FateData from './FateData.js'\nimport {FateTypeVariant, FateTypeTuple, FateTypeInt} from '../FateTypes.js'\n\nclass FateVariant extends FateData {\n    constructor(arities, tag, value = [], valueTypes = [], variants = []) {\n        super('variant')\n\n        this.arities = Array.from(arities)\n        this._tag = tag\n\n        this._value = value\n        this._valueTypes = valueTypes\n\n        this._type = FateTypeVariant(variants)\n    }\n\n    get valueTypes() {\n        return this._valueTypes\n    }\n\n    get type() {\n        return this._type\n    }\n\n    get tag() {\n        return this._tag\n    }\n\n    get value() {\n        return this._value\n    }\n\n    get aritiesType() {\n        return FateTypeInt()\n    }\n\n    get variantType() {\n        return FateTypeTuple(this._valueTypes)\n    }\n\n    get variants() {\n        return this._type.variants\n    }\n\n    get variantName() {\n        if (this.variants.length === 0) {\n            return this.tag\n        }\n\n        const variant = this.variants[this.tag]\n\n        return Object.keys(variant)[0]\n    }\n\n    valueOf() {\n        if (this.variants.length === 0) {\n            return this\n        }\n\n        const value = this._value.map(e => e.valueOf())\n\n        return {\n            [this.variantName]: value\n        }\n    }\n\n    accept(visitor) {\n        return visitor.visitVariant(this)\n    }\n}\n\nexport default FateVariant\n","import RLP from 'rlp'\nimport FateTag from '../FateTag.js'\nimport FateTuple from '../types/FateTuple.js'\nimport FateVariant from '../types/FateVariant.js'\nimport {FateTypeTuple} from '../FateTypes.js'\nimport BaseSerializer from './BaseSerializer.js'\n\nclass VariantSerializer extends BaseSerializer {\n    serialize(variant) {\n        const valueTuple = new FateTuple(variant.valueTypes, variant.value)\n\n        return [\n            FateTag.VARIANT,\n            ...RLP.encode(new Uint8Array(variant.arities)),\n            variant.tag,\n            ...this.globalSerializer.serialize(valueTuple)\n        ]\n    }\n\n    deserializeStream(stream, typeInfo) {\n        const buffer = new Uint8Array(stream)\n        const decoded = RLP.decode(buffer.slice(1), true)\n        const arities = [...decoded.data]\n        const tag = decoded.remainder[0]\n        const data = decoded.remainder.slice(1)\n        let variants = []\n        let valueType\n\n        if (typeof typeInfo !== 'undefined' && typeof typeInfo.variants !== 'undefined') {\n            variants = typeInfo.variants\n            valueType = FateTypeTuple(Object.values(variants[tag])[0])\n        }\n\n        const [els, rest] = this.globalSerializer.deserializeStream(data, valueType)\n\n        return [\n            new FateVariant(arities, tag, els.items, els.valueTypes, variants),\n            rest\n        ]\n    }\n}\n\nexport default VariantSerializer\n","import FateData from './FateData.js'\nimport FateTypeError from '../Errors/FateTypeError.js'\n\nclass FateBls12381Field extends FateData {\n    constructor(value, size, name) {\n        super(name)\n\n        if (!Array.isArray(value) && !ArrayBuffer.isView(value)) {\n            throw new FateTypeError(\n                name,\n                `Should be one of: Array or ArrayBuffer; got ${value} instead`\n            )\n        }\n\n        const buff = new Uint8Array(value)\n\n        if (buff.byteLength !== size) {\n            throw new FateTypeError(\n                name,\n                `Invalid length: got ${buff.byteLength} bytes instead of ${size} bytes`\n            )\n        }\n\n        this._value = buff\n        this._size = size\n    }\n\n    get value() {\n        return this._value\n    }\n\n    get size() {\n        return this._size\n    }\n\n    valueOf() {\n        return this._value\n    }\n}\n\nexport default FateBls12381Field\n","import FateBls12381Field from './FateBls12381Field.js'\nimport {FateTypeBls12381Fr} from '../FateTypes.js'\n\nconst SIZE = 32\nconst NAME = 'bls12_381.fr'\n\nclass FateBls12381Fr extends FateBls12381Field {\n    constructor(value) {\n        super(value, SIZE, NAME)\n    }\n\n    get type() {\n        return FateTypeBls12381Fr()\n    }\n\n    accept(visitor) {\n        return visitor.visitBls12381Fr(this)\n    }\n}\n\nexport default FateBls12381Fr\n","import FateBls12381Field from './FateBls12381Field.js'\nimport {FateTypeBls12381Fp} from '../FateTypes.js'\n\nconst SIZE = 48\nconst NAME = 'bls12_381.fp'\n\nclass FateBls12381Fp extends FateBls12381Field {\n    constructor(value) {\n        super(value, SIZE, NAME)\n    }\n\n    get type() {\n        return FateTypeBls12381Fp()\n    }\n\n    accept(visitor) {\n        return visitor.visitBls12381Fp(this)\n    }\n}\n\nexport default FateBls12381Fp\n","import BaseSerializer from './BaseSerializer.js'\nimport BytesSerializer from './BytesSerializer.js'\nimport FateBls12381Fr from '../types/FateBls12381Fr.js'\nimport FateBls12381Fp from '../types/FateBls12381Fp.js'\n\nconst bytesSerializer = new BytesSerializer()\n\nconst factory = (type, data) => {\n    switch (type.name) {\n    case 'bls12_381.fr':\n        return new FateBls12381Fr(data)\n    case 'bls12_381.fp':\n        return new FateBls12381Fp(data)\n    default:\n        throw new Error(`Unsupported type \"${type.name}\"`)\n    }\n}\n\nclass Bls12381FieldSerializer extends BaseSerializer {\n    serialize(bytes) {\n        return bytesSerializer.serialize(bytes)\n    }\n\n    deserializeStream(data, typeInfo) {\n        const [bytes, rest] = bytesSerializer.deserializeStream(data)\n\n        return [\n            factory(typeInfo, bytes.valueOf()),\n            rest\n        ]\n    }\n}\n\nexport default Bls12381FieldSerializer\n","import FateData from './FateData.js'\n\nclass FateCalldata extends FateData {\n    constructor(functionId, argTypes, argsData) {\n        super('calldata')\n\n        this._functionId = new Uint8Array(functionId)\n        this._argTypes = argTypes\n        this._args = argsData\n    }\n\n    get functionId() {\n        return this._functionId\n    }\n\n    get argTypes() {\n        return this._argTypes\n    }\n\n    get args() {\n        return this._args\n    }\n\n    valueOf() {\n        return {\n            functionId: this._functionId,\n            args: this._args\n        }\n    }\n\n    accept(visitor) {\n        return visitor.visitCalldata(this)\n    }\n}\n\nexport default FateCalldata\n","import FateTuple from '../types/FateTuple.js'\nimport FateCalldata from '../types/FateCalldata.js'\nimport FateByteArray from '../types/FateByteArray.js'\nimport BaseSerializer from './BaseSerializer.js'\nimport {FateTypeTuple, FateTypeByteArray} from '../FateTypes.js'\n\nclass CalldataSerializer extends BaseSerializer {\n    serialize(calldata) {\n        const funcBytes = new FateByteArray(calldata.functionId)\n        const argsTuple = new FateTuple(calldata.argTypes, calldata.args)\n\n        const calldataTuple = new FateTuple(\n            [funcBytes.type, argsTuple.type],\n            [funcBytes, argsTuple]\n        )\n\n        return this.globalSerializer.serialize(calldataTuple)\n    }\n\n    deserialize(data, typeInfo) {\n        const calldataType = FateTypeTuple([\n            FateTypeByteArray(),\n            FateTypeTuple(typeInfo.argumentTypes)\n        ])\n\n        const [calldataTuple,] = this.globalSerializer.deserializeStream(data, calldataType)\n        const [functionId, argsTuple] = calldataTuple.items\n\n        return new FateCalldata(functionId.valueOf(), argsTuple.valueTypes, argsTuple.items)\n    }\n}\n\nexport default CalldataSerializer\n","import FateTag from '../FateTag.js'\nimport BaseSerializer from './BaseSerializer.js'\nimport IntSerializer from './IntSerializer.js'\nimport FatePrefixError from '../Errors/FatePrefixError.js'\nimport FateTypeError from '../Errors/FateTypeError.js'\nimport {\n    FateTypeInt,\n    FateTypeBool,\n    FateTypeString,\n    FateTypeBits,\n    FateTypeBytes,\n    FateTypeAccountAddress,\n    FateTypeContractAddress,\n    FateTypeOracleAddress,\n    FateTypeOracleQueryAddress,\n    FateTypeChannelAddress,\n    FateTypeList,\n    FateTypeMap,\n    FateTypeTuple,\n    FateTypeVariant,\n    FateTypeVar,\n    FateTypeAny,\n} from '../FateTypes.js'\n\nconst BASIC_TYPES = {\n    [FateTag.TYPE_INTEGER]: FateTypeInt(),\n    [FateTag.TYPE_BOOLEAN]: FateTypeBool(),\n    [FateTag.TYPE_BITS]: FateTypeBits(),\n    [FateTag.TYPE_STRING]: FateTypeString(),\n    [FateTag.TYPE_ANY]: FateTypeAny(),\n}\n\nconst OBJECT_TYPES = {\n    [FateTag.OTYPE_ADDRESS]: FateTypeAccountAddress(),\n    [FateTag.OTYPE_CONTRACT]: FateTypeContractAddress(),\n    [FateTag.OTYPE_ORACLE]: FateTypeOracleAddress(),\n    [FateTag.OTYPE_ORACLE_QUERY]: FateTypeOracleQueryAddress(),\n    [FateTag.OTYPE_CHANNEL]: FateTypeChannelAddress(),\n}\n\nclass TypeSerializer extends BaseSerializer {\n    constructor(globalSerializer) {\n        super(globalSerializer)\n\n        this._intSerializer = new IntSerializer()\n    }\n\n    serialize(type) {\n        const basicTypeTag = Object.entries(BASIC_TYPES)\n            .find(([_key, { name }]) => name === type.name)?.[0]\n        if (basicTypeTag != null) {\n            return new Uint8Array([basicTypeTag])\n        }\n\n        const objectTypeTag = Object.entries(OBJECT_TYPES)\n            .find(([_key, { name }]) => name === type.name)?.[0]\n        if (objectTypeTag != null) {\n            return new Uint8Array([FateTag.TYPE_OBJECT, objectTypeTag])\n        }\n\n        if (type.name === 'tvar') {\n            return new Uint8Array([FateTag.TYPE_VAR, type.id])\n        }\n\n        if (type.name === 'bytes') {\n            return new Uint8Array([\n                FateTag.TYPE_BYTES,\n                ...this._intSerializer.serialize(type.size),\n            ])\n        }\n\n        if (type.name === 'list') {\n            return new Uint8Array([\n                FateTag.TYPE_LIST,\n                ...this.serialize(type.valuesType),\n            ])\n        }\n\n        if (type.name === 'map') {\n            return new Uint8Array([\n                FateTag.TYPE_MAP,\n                ...this.serialize(type.keyType),\n                ...this.serialize(type.valueType),\n            ])\n        }\n\n        if (type.name === 'tuple') {\n            return new Uint8Array([\n                FateTag.TYPE_TUPLE,\n                type.valueTypes.length,\n                ...type.valueTypes.map((t) => [...this.serialize(t)]).flat(),\n            ])\n        }\n\n        if (type.name === 'variant') {\n            return new Uint8Array([\n                FateTag.TYPE_VARIANT,\n                type.variants.length,\n                ...type.variants.map((t) => [...this.serialize(t)]).flat(),\n            ])\n        }\n\n        throw new FateTypeError(type.name, `Unsupported type: ${type.name}`)\n    }\n\n    deserializeStream(data) {\n        const buffer = new Uint8Array(data)\n        const prefix = buffer[0]\n\n        if (BASIC_TYPES.hasOwnProperty(prefix)) {\n            return [BASIC_TYPES[prefix], buffer.slice(1)]\n        }\n\n        if (prefix === FateTag.TYPE_OBJECT) {\n            const obj = buffer[1]\n\n            if (!OBJECT_TYPES.hasOwnProperty(obj)) {\n                throw new FatePrefixError(obj, 'Unsupported object type')\n            }\n\n            return [OBJECT_TYPES[obj], buffer.slice(2)]\n        }\n\n        if (prefix === FateTag.TYPE_VAR) {\n            return [FateTypeVar(buffer[1]), buffer.slice(2)]\n        }\n\n        if (prefix === FateTag.TYPE_BYTES) {\n            const [size, rest] = this._intSerializer.deserializeStream(buffer.slice(1))\n\n            return [FateTypeBytes(size.valueOf()), rest]\n        }\n\n        if (prefix === FateTag.TYPE_LIST) {\n            const [elementsType, rest] = this.deserializeStream(buffer.slice(1))\n\n            return [FateTypeList(elementsType), rest]\n        }\n\n        if (prefix === FateTag.TYPE_MAP) {\n            const [keyType, rest] = this.deserializeStream(buffer.slice(1))\n            const [valueType, rest2] = this.deserializeStream(rest)\n\n            return [FateTypeMap(keyType, valueType), rest2]\n        }\n\n        if (prefix === FateTag.TYPE_TUPLE) {\n            const size = buffer[1]\n            const elementTypes = []\n            let rest = buffer.slice(2)\n            let el\n\n            for (let i = 0; i < size; i++) {\n                [el, rest] = this.deserializeStream(rest)\n                elementTypes.push(el)\n            }\n\n            return [FateTypeTuple(elementTypes), rest]\n        }\n\n        if (prefix === FateTag.TYPE_VARIANT) {\n            const size = buffer[1]\n            const variants = []\n            let rest = buffer.slice(2)\n            let el\n\n            for (let i = 0; i < size; i++) {\n                [el, rest] = this.deserializeStream(rest)\n                variants.push(el)\n            }\n\n            return [FateTypeVariant(variants), rest]\n        }\n\n        throw new FatePrefixError(prefix)\n    }\n}\n\nexport default TypeSerializer\n","export default Object.freeze({\n    0x00: {mnemonic: 'RETURN', args: 0, end: true},\n    0x01: {mnemonic: 'RETURNR', args: 1, end: true},\n    0x02: {mnemonic: 'CALL', args: 1, end: true},\n    0x03: {mnemonic: 'CALL_R', args: 5, end: true},\n    0x04: {mnemonic: 'CALL_T', args: 1, end: true},\n    0x05: {mnemonic: 'CALL_GR', args: 6, end: true},\n    0x06: {mnemonic: 'JUMP', args: 1, end: true},\n    0x07: {mnemonic: 'JUMPIF', args: 2, end: true},\n    0x08: {mnemonic: 'SWITCH_V2', args: 3, end: true},\n    0x09: {mnemonic: 'SWITCH_V3', args: 4, end: true},\n    0x0a: {mnemonic: 'SWITCH_VN', args: 2, end: true},\n    0x0b: {mnemonic: 'CALL_VALUE', args: 1, end: false},\n    0x0c: {mnemonic: 'PUSH', args: 1, end: false},\n    0x0d: {mnemonic: 'DUPA', args: 0, end: false},\n    0x0e: {mnemonic: 'DUP', args: 1, end: false},\n    0x0f: {mnemonic: 'POP', args: 1, end: false},\n    0x10: {mnemonic: 'INCA', args: 0, end: false},\n    0x11: {mnemonic: 'INC', args: 1, end: false},\n    0x12: {mnemonic: 'DECA', args: 0, end: false},\n    0x13: {mnemonic: 'DEC', args: 1, end: false},\n    0x14: {mnemonic: 'ADD', args: 3, end: false},\n    0x15: {mnemonic: 'SUB', args: 3, end: false},\n    0x16: {mnemonic: 'MUL', args: 3, end: false},\n    0x17: {mnemonic: 'DIV', args: 3, end: false},\n    0x18: {mnemonic: 'MOD', args: 3, end: false},\n    0x19: {mnemonic: 'POW', args: 3, end: false},\n    0x1a: {mnemonic: 'STORE', args: 2, end: false},\n    0x1b: {mnemonic: 'SHA3', args: 2, end: false},\n    0x1c: {mnemonic: 'SHA256', args: 2, end: false},\n    0x1d: {mnemonic: 'BLAKE2B', args: 2, end: false},\n    0x1e: {mnemonic: 'LT', args: 3, end: false},\n    0x1f: {mnemonic: 'GT', args: 3, end: false},\n    0x20: {mnemonic: 'EQ', args: 3, end: false},\n    0x21: {mnemonic: 'ELT', args: 3, end: false},\n    0x22: {mnemonic: 'EGT', args: 3, end: false},\n    0x23: {mnemonic: 'NEQ', args: 3, end: false},\n    0x24: {mnemonic: 'AND', args: 3, end: false},\n    0x25: {mnemonic: 'OR', args: 3, end: false},\n    0x26: {mnemonic: 'NOT', args: 2, end: false},\n    0x27: {mnemonic: 'TUPLE', args: 2, end: false},\n    0x28: {mnemonic: 'ELEMENT', args: 3, end: false},\n    0x29: {mnemonic: 'SETELEMENT', args: 4, end: false},\n    0x2a: {mnemonic: 'MAP_EMPTY', args: 1, end: false},\n    0x2b: {mnemonic: 'MAP_LOOKUP', args: 3, end: false},\n    0x2c: {mnemonic: 'MAP_LOOKUPD', args: 4, end: false},\n    0x2d: {mnemonic: 'MAP_UPDATE', args: 4, end: false},\n    0x2e: {mnemonic: 'MAP_DELETE', args: 3, end: false},\n    0x2f: {mnemonic: 'MAP_MEMBER', args: 3, end: false},\n    0x30: {mnemonic: 'MAP_FROM_LIST', args: 2, end: false},\n    0x31: {mnemonic: 'MAP_SIZE', args: 2, end: false},\n    0x32: {mnemonic: 'MAP_TO_LIST', args: 2, end: false},\n    0x33: {mnemonic: 'IS_NIL', args: 2, end: false},\n    0x34: {mnemonic: 'CONS', args: 3, end: false},\n    0x35: {mnemonic: 'HD', args: 2, end: false},\n    0x36: {mnemonic: 'TL', args: 2, end: false},\n    0x37: {mnemonic: 'LENGTH', args: 2, end: false},\n    0x38: {mnemonic: 'NIL', args: 1, end: false},\n    0x39: {mnemonic: 'APPEND', args: 3, end: false},\n    0x3a: {mnemonic: 'STR_JOIN', args: 3, end: false},\n    0x3b: {mnemonic: 'INT_TO_STR', args: 2, end: false},\n    0x3c: {mnemonic: 'ADDR_TO_STR', args: 2, end: false},\n    0x3d: {mnemonic: 'STR_REVERSE', args: 2, end: false},\n    0x3e: {mnemonic: 'STR_LENGTH', args: 2, end: false},\n    0x3f: {mnemonic: 'BYTES_TO_INT', args: 2, end: false},\n    0x40: {mnemonic: 'BYTES_TO_STR', args: 2, end: false},\n    0x41: {mnemonic: 'BYTES_CONCAT', args: 3, end: false},\n    0x42: {mnemonic: 'BYTES_SPLIT', args: 3, end: false},\n    0x43: {mnemonic: 'INT_TO_ADDR', args: 2, end: false},\n    0x44: {mnemonic: 'VARIANT', args: 4, end: false},\n    0x45: {mnemonic: 'VARIANT_TEST', args: 3, end: false},\n    0x46: {mnemonic: 'VARIANT_ELEMENT', args: 3, end: false},\n    0x47: {mnemonic: 'BITS_NONEA', args: 0, end: false},\n    0x48: {mnemonic: 'BITS_NONE', args: 1, end: false},\n    0x49: {mnemonic: 'BITS_ALLA', args: 0, end: false},\n    0x4a: {mnemonic: 'BITS_ALL', args: 1, end: false},\n    0x4b: {mnemonic: 'BITS_ALL_N', args: 2, end: false},\n    0x4c: {mnemonic: 'BITS_SET', args: 3, end: false},\n    0x4d: {mnemonic: 'BITS_CLEAR', args: 3, end: false},\n    0x4e: {mnemonic: 'BITS_TEST', args: 3, end: false},\n    0x4f: {mnemonic: 'BITS_SUM', args: 2, end: false},\n    0x50: {mnemonic: 'BITS_OR', args: 3, end: false},\n    0x51: {mnemonic: 'BITS_AND', args: 3, end: false},\n    0x52: {mnemonic: 'BITS_DIFF', args: 3, end: false},\n    0x53: {mnemonic: 'BALANCE', args: 1, end: false},\n    0x54: {mnemonic: 'ORIGIN', args: 1, end: false},\n    0x55: {mnemonic: 'CALLER', args: 1, end: false},\n    0x56: {mnemonic: 'BLOCKHASH', args: 2, end: false},\n    0x57: {mnemonic: 'BENEFICIARY', args: 1, end: false},\n    0x58: {mnemonic: 'TIMESTAMP', args: 1, end: false},\n    0x59: {mnemonic: 'GENERATION', args: 1, end: false},\n    0x5a: {mnemonic: 'MICROBLOCK', args: 1, end: false},\n    0x5b: {mnemonic: 'DIFFICULTY', args: 1, end: false},\n    0x5c: {mnemonic: 'GASLIMIT', args: 1, end: false},\n    0x5d: {mnemonic: 'GAS', args: 1, end: false},\n    0x5e: {mnemonic: 'ADDRESS', args: 1, end: false},\n    0x5f: {mnemonic: 'GASPRICE', args: 1, end: false},\n    0x60: {mnemonic: 'LOG0', args: 1, end: false},\n    0x61: {mnemonic: 'LOG1', args: 2, end: false},\n    0x62: {mnemonic: 'LOG2', args: 3, end: false},\n    0x63: {mnemonic: 'LOG3', args: 4, end: false},\n    0x64: {mnemonic: 'LOG4', args: 5, end: false},\n    0x65: {mnemonic: 'SPEND', args: 2, end: false},\n    0x66: {mnemonic: 'ORACLE_REGISTER', args: 7, end: false},\n    0x67: {mnemonic: 'ORACLE_QUERY', args: 8, end: false},\n    0x68: {mnemonic: 'ORACLE_RESPOND', args: 6, end: false},\n    0x69: {mnemonic: 'ORACLE_EXTEND', args: 3, end: false},\n    0x6a: {mnemonic: 'ORACLE_GET_ANSWER', args: 5, end: false},\n    0x6b: {mnemonic: 'ORACLE_GET_QUESTION', args: 5, end: false},\n    0x6c: {mnemonic: 'ORACLE_QUERY_FEE', args: 2, end: false},\n    0x6d: {mnemonic: 'AENS_RESOLVE', args: 4, end: false},\n    0x6e: {mnemonic: 'AENS_PRECLAIM', args: 3, end: false},\n    0x6f: {mnemonic: 'AENS_CLAIM', args: 5, end: false},\n    0x70: {mnemonic: 'AENS_UPDATE', args: 6, end: false},\n    0x71: {mnemonic: 'AENS_TRANSFER', args: 4, end: false},\n    0x72: {mnemonic: 'AENS_REVOKE', args: 3, end: false},\n    0x73: {mnemonic: 'BALANCE_OTHER', args: 2, end: false},\n    0x74: {mnemonic: 'VERIFY_SIG', args: 4, end: false},\n    0x75: {mnemonic: 'VERIFY_SIG_SECP256K1', args: 4, end: false},\n    0x76: {mnemonic: 'CONTRACT_TO_ADDRESS', args: 2, end: false},\n    0x77: {mnemonic: 'AUTH_TX_HASH', args: 1, end: false},\n    0x78: {mnemonic: 'ORACLE_CHECK', args: 4, end: false},\n    0x79: {mnemonic: 'ORACLE_CHECK_QUERY', args: 5, end: false},\n    0x7a: {mnemonic: 'IS_ORACLE', args: 2, end: false},\n    0x7b: {mnemonic: 'IS_CONTRACT', args: 2, end: false},\n    0x7c: {mnemonic: 'IS_PAYABLE', args: 2, end: false},\n    0x7d: {mnemonic: 'CREATOR', args: 1, end: false},\n    0x7e: {mnemonic: 'ECVERIFY_SECP256K1', args: 4, end: false},\n    0x7f: {mnemonic: 'ECRECOVER_SECP256K1', args: 3, end: false},\n    0x80: {mnemonic: 'ADDRESS_TO_CONTRACT', args: 2, end: false},\n    0x81: {mnemonic: 'BLS12_381_G1_NEG', args: 2, end: false},\n    0x82: {mnemonic: 'BLS12_381_G1_NORM', args: 2, end: false},\n    0x83: {mnemonic: 'BLS12_381_G1_VALID', args: 2, end: false},\n    0x84: {mnemonic: 'BLS12_381_G1_IS_ZERO', args: 2, end: false},\n    0x85: {mnemonic: 'BLS12_381_G1_ADD', args: 3, end: false},\n    0x86: {mnemonic: 'BLS12_381_G1_MUL', args: 3, end: false},\n    0x87: {mnemonic: 'BLS12_381_G2_NEG', args: 2, end: false},\n    0x88: {mnemonic: 'BLS12_381_G2_NORM', args: 2, end: false},\n    0x89: {mnemonic: 'BLS12_381_G2_VALID', args: 2, end: false},\n    0x8a: {mnemonic: 'BLS12_381_G2_IS_ZERO', args: 2, end: false},\n    0x8b: {mnemonic: 'BLS12_381_G2_ADD', args: 3, end: false},\n    0x8c: {mnemonic: 'BLS12_381_G2_MUL', args: 3, end: false},\n    0x8d: {mnemonic: 'BLS12_381_GT_INV', args: 2, end: false},\n    0x8e: {mnemonic: 'BLS12_381_GT_ADD', args: 3, end: false},\n    0x8f: {mnemonic: 'BLS12_381_GT_MUL', args: 3, end: false},\n    0x90: {mnemonic: 'BLS12_381_GT_POW', args: 3, end: false},\n    0x91: {mnemonic: 'BLS12_381_GT_IS_ONE', args: 2, end: false},\n    0x92: {mnemonic: 'BLS12_381_PAIRING', args: 3, end: false},\n    0x93: {mnemonic: 'BLS12_381_MILLER_LOOP', args: 3, end: false},\n    0x94: {mnemonic: 'BLS12_381_FINAL_EXP', args: 2, end: false},\n    0x95: {mnemonic: 'BLS12_381_INT_TO_FR', args: 2, end: false},\n    0x96: {mnemonic: 'BLS12_381_INT_TO_FP', args: 2, end: false},\n    0x97: {mnemonic: 'BLS12_381_FR_TO_INT', args: 2, end: false},\n    0x98: {mnemonic: 'BLS12_381_FP_TO_INT', args: 2, end: false},\n    0x99: {mnemonic: 'AENS_LOOKUP', args: 2, end: false},\n    0x9a: {mnemonic: 'ORACLE_EXPIRY', args: 2, end: false},\n    0x9b: {mnemonic: 'AUTH_TX', args: 1, end: false},\n    0x9c: {mnemonic: 'STR_TO_LIST', args: 2, end: false},\n    0x9d: {mnemonic: 'STR_FROM_LIST', args: 2, end: false},\n    0x9e: {mnemonic: 'STR_TO_UPPER', args: 2, end: false},\n    0x9f: {mnemonic: 'STR_TO_LOWER', args: 2, end: false},\n    0xa0: {mnemonic: 'CHAR_TO_INT', args: 2, end: false},\n    0xa1: {mnemonic: 'CHAR_FROM_INT', args: 2, end: false},\n    0xa2: {mnemonic: 'CALL_PGR', args: 7, end: true},\n    0xa3: {mnemonic: 'CREATE', args: 3, end: true},\n    0xa4: {mnemonic: 'CLONE', args: 4, end: true},\n    0xa5: {mnemonic: 'CLONE_G', args: 5, end: true},\n    0xa6: {mnemonic: 'BYTECODE_HASH', args: 2, end: false},\n    0xa7: {mnemonic: 'FEE', args: 1, end: false},\n    0xa8: {mnemonic: 'ADDRESS_TO_BYTES', args: 2, end: false},\n    0xa9: {mnemonic: 'POSEIDON', args: 3, end: false},\n    0xaa: {mnemonic: 'MULMOD', args: 4, end: false},\n    0xab: {mnemonic: 'BAND', args: 3, end: false},\n    0xac: {mnemonic: 'BOR', args: 3, end: false},\n    0xad: {mnemonic: 'BXOR', args: 3, end: false},\n    0xae: {mnemonic: 'BNOT', args: 2, end: false},\n    0xaf: {mnemonic: 'BSL', args: 3, end: false},\n    0xb0: {mnemonic: 'BSR', args: 3, end: false},\n    0xfa: {mnemonic: 'DEACTIVATE', args: 0, end: false},\n    0xfb: {mnemonic: 'ABORT', args: 1, end: true},\n    0xfc: {mnemonic: 'EXIT', args: 1, end: true},\n    0xfd: {mnemonic: 'NOP', args: 0, end: false},\n    0xfe: {mnemonic: 'FUNCTION', args: 0, end: false},\n    0xff: {mnemonic: 'EXTEND', args: 0, end: false},\n})\n","import RLP from 'rlp'\nimport BaseSerializer from './BaseSerializer.js'\nimport TypeSerializer from './TypeSerializer.js'\nimport {byteArray2Hex, byteArray2Int} from '../utils/int2ByteArray.js'\nimport OPCODES from '../FateOpcodes.js'\nimport {\n    FateTypeByteArray,\n    FateTypeString,\n    FateTypeMap,\n} from '../FateTypes.js'\n\nconst MODIFIERS = {\n    0b11: 'immediate',\n    0b10: 'var',\n    0b01: 'arg',\n    0b00: 'stack'\n}\n\nconst splitArgs = (data, n = 1) => {\n    const args = []\n    let bits = Number(byteArray2Int(data))\n\n    for (let i = 0; i < n * 2; i += 2) {\n        args.push(bits & 0b11)\n        bits >>= 2\n    }\n\n    if (bits !== 0) {\n        throw new Error(`Invalid argument modifier data. Unexpected padding: 0b${bits.toString(2)}`)\n    }\n\n    return args\n}\n\nclass BytecodeSerializer extends BaseSerializer {\n    constructor(globalSerializer) {\n        super(globalSerializer)\n\n        this._typeSerializer = new TypeSerializer()\n    }\n\n    deserialize(data) {\n        const codeBin = RLP.decode(data, true)\n        const symbolsBin = RLP.decode(codeBin.remainder, true)\n        const annotationsBin = RLP.decode(symbolsBin.remainder)\n\n        const symbols = this.deserializeSymbols(symbolsBin.data)\n        const functions = this.deserializeFunctions(codeBin.data, symbols)\n        const annotations = this.deserializeAnnotations(annotationsBin)\n\n        return {functions, symbols, annotations}\n    }\n\n    deserializeFunctions(data, symbols) {\n        let fun = {}\n        let rest = data\n        const functions = []\n\n        while (rest.length) {\n            [fun, rest] = this.deserializeFunction(rest, symbols)\n            functions.push(fun)\n        }\n\n        return functions\n    }\n\n    deserializeFunction(data, symbols) {\n        const prefix = data[0]\n        const id = byteArray2Hex(data.slice(1, 5))\n\n        if (prefix !== 0xfe) {\n            throw new Error(`Wrong function prefix, expected 0xfe got 0x${data[0].toString(16)}`)\n        }\n\n        const name = symbols[id]\n        const [attributes, rest2] = this.deserializeAttributes(data.slice(5))\n        const [args, returnType, rest3] = this.deserializeSignature(rest2)\n        const [instructions, rest4] = this.deserializeInstructions(rest3)\n\n        return [\n            {\n                id,\n                name,\n                attributes,\n                args,\n                returnType,\n                instructions\n            },\n            rest4\n        ]\n    }\n\n    deserializeInstructions(data) {\n        let instruction = {}\n        let rest = data\n        const instructions = []\n\n        let block = 0\n        let end = false\n\n        while (rest.length && rest[0] !== 0xfe) {\n            if (instructions[block] === undefined) {\n                instructions[block] = []\n            }\n\n            [instruction, rest, end] = this.deserializeInstruction(rest)\n            instructions[block].push(instruction)\n\n            if (end) {\n                block++\n            }\n        }\n\n        return [instructions, rest]\n    }\n\n    deserializeInstruction(data) {\n        const opcode = data[0]\n        const rest = data.slice(1)\n\n        if (!OPCODES.hasOwnProperty(opcode)) {\n            throw new Error(`Unsupported opcode: 0x${opcode.toString(16)}`)\n        }\n\n        const instr = OPCODES[opcode]\n        const {mnemonic, end} = instr\n\n        if (instr.args === 0) {\n            return [{mnemonic, args: []}, rest, end]\n        }\n\n        const [args, rest2] = this.deserializeArguments(rest, instr.args)\n\n        return [{mnemonic, args}, rest2, end]\n    }\n\n    deserializeArguments(data, n) {\n        const numBytes = (n <= 4) ? 1 : 2\n        const modBytes = data.subarray(0, numBytes)\n        const rest = data.slice(numBytes)\n\n        const modifiers = splitArgs(modBytes, n)\n        const args = []\n        let rest2 = rest\n        let arg\n\n        modifiers.forEach(mod => {\n            [arg, rest2] = this.deserializeArgument(mod, rest2)\n            args.push(arg)\n        })\n\n        return [args, rest2]\n    }\n\n    deserializeArgument(bits, stream) {\n        const mod = MODIFIERS[bits]\n\n        if (mod === 'stack') {\n            return [{mod, arg: 0}, stream]\n        }\n\n        const [arg, rest] = this.globalSerializer.deserializeStream(stream)\n\n        return [{mod, arg: arg.valueOf()}, rest]\n    }\n\n    deserializeSignature(data) {\n        const [args, rest] = this._typeSerializer.deserializeStream(data)\n        const [returnType, rest2] = this._typeSerializer.deserializeStream(rest)\n\n        return [args, returnType, rest2]\n    }\n\n    deserializeAttributes(data) {\n        const [attributesInt, rest] = this.globalSerializer.deserializeStream(data)\n        const attributesByte = Number(attributesInt.valueOf())\n        const attributes = []\n\n        if (attributesByte & 0b0001) {\n            attributes.push('private')\n        }\n\n        if (attributesByte & 0b0010) {\n            attributes.push('payable')\n        }\n\n        return [attributes, rest]\n    }\n\n    deserializeSymbols(data) {\n        // Needs typehint with ByteArray otherwise deserializes to string\n        const type = FateTypeMap(FateTypeByteArray(), FateTypeString())\n        const symbols = this.globalSerializer.deserializeWithType(data, type).valueOf()\n        const symbolsMap = {}\n\n        symbols.forEach((val, key) => {\n            const hex = byteArray2Hex(key)\n            symbolsMap[hex] = val\n        })\n\n        return symbolsMap\n    }\n\n    deserializeAnnotations(data) {\n        const annotations = this.globalSerializer.deserialize(data).valueOf()\n\n        return annotations\n    }\n}\n\nexport default BytecodeSerializer\n","import RLP from 'rlp'\nimport BaseSerializer from './BaseSerializer.js'\nimport BytecodeSerializer from './BytecodeSerializer.js'\nimport IntSerializer from './IntSerializer.js'\nimport {byteArray2Int, byteArray2Hex} from '../utils/int2ByteArray.js'\n\nclass ContractBytecodeSerializer extends BaseSerializer {\n    constructor(globalSerializer) {\n        super()\n        this._bytecodeSerializer = new BytecodeSerializer(globalSerializer)\n        this._intSerializer = new IntSerializer()\n    }\n\n    deserializeStream(data) {\n        const buffer = new Uint8Array(data)\n        const [fateInt, remainder] = this._intSerializer.deserializeStream(buffer.slice(1))\n        const overallSize = Number(fateInt)\n        const decoded = RLP.decode(remainder.slice(0, overallSize))\n        const stringEncoder = new TextDecoder()\n        return [\n            {\n                tag: byteArray2Int(decoded[0]),\n                vsn: byteArray2Int(decoded[1]),\n                sourceHash: byteArray2Hex(decoded[2]),\n                aevmTypeInfo: decoded[3],\n                bytecode: this._bytecodeSerializer.deserialize(decoded[4]),\n                compilerVersion: stringEncoder.decode(decoded[5]),\n                payable: Boolean(decoded[6][0]),\n            },\n            remainder.slice(overallSize),\n        ]\n    }\n}\n\nexport default ContractBytecodeSerializer\n","import TypeFactory from './TypeFactory.js'\nimport FateData from './types/FateData.js'\nimport BaseSerializer from './Serializers/BaseSerializer.js'\nimport AddressSerializer from './Serializers/AddressSerializer.js'\nimport BitsSerializer from './Serializers/BitsSerializer.js'\nimport BoolSerializer from './Serializers/BoolSerializer.js'\nimport ByteArraySerializer from './Serializers/ByteArraySerializer.js'\nimport BytesSerializer from './Serializers/BytesSerializer.js'\nimport ChannelSerializer from './Serializers/ChannelSerializer.js'\nimport ContractSerializer from './Serializers/ContractSerializer.js'\nimport IntSerializer from './Serializers/IntSerializer.js'\nimport VoidSerializer from './Serializers/VoidSerializer.js'\nimport ListSerializer from './Serializers/ListSerializer.js'\nimport SetSerializer from './Serializers/SetSerializer.js'\nimport MapSerializer from './Serializers/MapSerializer.js'\nimport OracleQuerySerializer from './Serializers/OracleQuerySerializer.js'\nimport OracleSerializer from './Serializers/OracleSerializer.js'\nimport StringSerializer from './Serializers/StringSerializer.js'\nimport TupleSerializer from './Serializers/TupleSerializer.js'\nimport VariantSerializer from './Serializers/VariantSerializer.js'\nimport Bls12381FieldSerializer from './Serializers/Bls12381FieldSerializer.js'\nimport CalldataSerializer from './Serializers/CalldataSerializer.js'\nimport ContractBytecodeSerializer from './Serializers/ContractBytecodeSerializer.js'\nimport TypeSerializer from './Serializers/TypeSerializer.js'\nimport SerializerError from './Errors/SerializerError.js'\n\nclass Serializer extends BaseSerializer {\n    constructor() {\n        super()\n\n        this.typeFactory = new TypeFactory()\n        this._serializers = {\n            'void': new VoidSerializer(),\n            'bool': new BoolSerializer(),\n            'int': new IntSerializer(),\n            'tuple': new TupleSerializer(this),\n            'record': new TupleSerializer(this),\n            'list': new ListSerializer(this),\n            'set': new SetSerializer(this),\n            'map': new MapSerializer(this),\n            'byte_array': new ByteArraySerializer(),\n            'string': new StringSerializer(),\n            'hash': new BytesSerializer(),\n            'signature': new BytesSerializer(),\n            'bits': new BitsSerializer(),\n            'variant': new VariantSerializer(this),\n            'bytes': new BytesSerializer(),\n            'account_pubkey': new AddressSerializer(),\n            'contract_pubkey': new ContractSerializer(),\n            'oracle_pubkey': new OracleSerializer(),\n            'oracle_query_id': new OracleQuerySerializer(),\n            'channel': new ChannelSerializer(),\n            'bls12_381.fr': new Bls12381FieldSerializer(),\n            'bls12_381.fp': new Bls12381FieldSerializer(),\n            'calldata': new CalldataSerializer(this),\n            'contract_bytearray': new ContractBytecodeSerializer(this),\n            'type': new TypeSerializer(),\n        }\n    }\n\n    _getSerializer(type) {\n        if (!type.hasOwnProperty('name')) {\n            throw new SerializerError('Unsupported type: ' + JSON.stringify(type))\n        }\n\n        const typeName = type.name\n        if (!this._serializers.hasOwnProperty(typeName)) {\n            throw new SerializerError('Unsupported type: ' + JSON.stringify(typeName))\n        }\n\n        return this._serializers[typeName]\n    }\n\n    serialize(data) {\n        if (typeof data !== 'object') {\n            throw new SerializerError('Only object serialization is supported. Got: ' + JSON.stringify(data))\n        }\n\n        if (!(data instanceof FateData)) {\n            throw new SerializerError('Only instances of FateData is supported.')\n        }\n\n        return this._getSerializer(data).serialize(data)\n    }\n\n    deserializeWithType(data, type) {\n        if (!(data instanceof Uint8Array)) {\n            throw new SerializerError('Only instances of Uint8Array is supported.')\n        }\n\n        return this._getSerializer(type).deserialize(data, type)\n    }\n\n    deserialize(data) {\n        if (!(data instanceof Uint8Array)) {\n            throw new SerializerError('Only instances of Uint8Array is supported.')\n        }\n\n        const type = this.typeFactory.createType(data)\n\n        return this.deserializeWithType(data, type)\n    }\n\n    deserializeStream(data, typeInfo) {\n        if (!(data instanceof Uint8Array)) {\n            throw new SerializerError('Only instances of Uint8Array is supported.')\n        }\n\n        let type = typeInfo\n        if (typeof typeInfo === 'undefined') {\n            type = this.typeFactory.createType(data)\n        }\n\n        return this._getSerializer(type).deserializeStream(data, typeInfo)\n    }\n}\n\nexport default Serializer\n","import Sha256 from 'sha.js/sha256.js'\nimport { Buffer } from 'safe-buffer'\nimport FormatError from '../Errors/FormatError.js'\n\nconst sha256hash = (input) => {\n    return new Sha256().update(input).digest()\n}\n\nconst checkSumFn = (payload) => {\n    return sha256hash(sha256hash(payload)).slice(0, 4)\n}\n\nconst addChecksum = (payload) => {\n    const buffer = Buffer.from(payload)\n    const checksum = checkSumFn(payload)\n    return Buffer.concat([buffer, checksum], buffer.length + 4)\n}\n\nconst getPayload = (payloadWithChecksumData) => {\n    const payloadWithChecksum = Buffer.from(payloadWithChecksumData)\n    const payload = payloadWithChecksum.slice(0, -4)\n    const checksum = payloadWithChecksum.slice(-4)\n    const newChecksum = checkSumFn(payload)\n\n    if (!checksum.equals(newChecksum)) {\n        throw new FormatError('Invalid checksum')\n    }\n\n    return new Uint8Array(payload)\n}\n\n/**\n * Base64check encode given `input`\n * @param {String|Uint8Array} input - Data to encode\n * @return {String} Base64check encoded data\n */\nconst encode = (input) => {\n    return addChecksum(input).toString('base64')\n}\n\n/**\n * Base64check decode given `str`\n * @param {String} str - Data to decode\n * @return {Uint8Array} Base64check decoded data\n */\nconst decode = (str) => {\n    const data = Buffer.from(str, 'base64')\n\n    return getPayload(data)\n}\n\nexport {\n    addChecksum,\n    getPayload,\n    encode,\n    decode\n}\n","import bs58 from 'bs58'\nimport { addChecksum, getPayload } from './base64check.js'\n\n/**\n * Base58check encode given `input`\n * @param {Buffer} input - Data to encode\n * @return {String} Base58check encoded data\n */\nconst encode = (input) => {\n    return bs58.encode(addChecksum(input))\n}\n\n/**\n * Base58check decode given `str`\n * @param {String} str - Data to decode\n * @return {Uint8Array} Base58check decoded data\n */\nconst decode = (str) => {\n    return getPayload(bs58.decode(str))\n}\n\nexport {\n    encode,\n    decode\n}\n","import * as base64check from './utils/base64check.js'\nimport * as base58check from './utils/base58check.js'\nimport FormatError from './Errors/FormatError.js'\nimport FateTypeError from './Errors/FateTypeError.js'\n\nconst TYPES = {\n    key_block_hash: {tag: 'kh', size: 32, encoder: base58check},\n    micro_block_hash: {tag: 'mh', size: 32, encoder: base58check},\n    block_pof_hash: {tag: 'bf', size: 32, encoder: base58check},\n    block_tx_hash: {tag: 'bx', size: 32, encoder: base58check},\n    block_state_hash: {tag: 'bs', size: 32, encoder: base58check},\n    contract_bytearray: {tag: 'cb', size: 0, encoder: base64check},\n    contract_pubkey: {tag: 'ct', size: 32, encoder: base58check},\n    account_pubkey: {tag: 'ak', size: 32, encoder: base58check},\n    account_seckey: {tag: 'sk', size: 32, encoder: base58check},\n    channel: {tag: 'ch', size: 32, encoder: base58check},\n    oracle_pubkey: {tag: 'ok', size: 32, encoder: base58check},\n    oracle_query_id: {tag: 'oq', size: 32, encoder: base58check},\n    peer_pubkey: {tag: 'pp', size: 32, encoder: base58check},\n    name: {tag: 'nm', size: 0, encoder: base58check},\n    tx_hash: {tag: 'th', size: 32, encoder: base58check},\n    signature: {tag: 'sg', size: 64, encoder: base58check},\n    commitment: {tag: 'cm', size: 32, encoder: base58check},\n    bytearray: {tag: 'ba', size: 0, encoder: base64check},\n}\n\nconst TAG2TYPE = {\n    kh: 'key_block_hash',\n    mh: 'micro_block_hash',\n    bf: 'block_pof_hash',\n    bx: 'block_tx_hash',\n    bs: 'block_state_hash',\n    cb: 'contract_bytearray',\n    ct: 'contract_pubkey',\n    ak: 'account_pubkey',\n    sk: 'account_seckey',\n    ch: 'channel',\n    ok: 'oracle_pubkey',\n    oq: 'oracle_query_id',\n    pp: 'peer_pubkey',\n    nm: 'name',\n    th: 'tx_hash',\n    sg: 'signature',\n    cm: 'commitment',\n    ba: 'bytearray',\n}\n\nclass ApiEncoder {\n    encode(typeName, payload) {\n        if (!TYPES.hasOwnProperty(typeName)) {\n            throw new FateTypeError(typeName, `Unsupported API type ${typeName}`)\n        }\n\n        const type = TYPES[typeName]\n\n        if (type.size > 0 && payload.length !== type.size) {\n            throw new FateTypeError(\n                typeName,\n                `Invalid payload. Expected size ${type.size}, but got ${payload.length}`\n            )\n        }\n\n        const encoded = type.encoder.encode(payload)\n\n        return `${type.tag}_${encoded}`\n    }\n\n    decode(data) {\n        const tag = data.substring(0, 2)\n\n        if (!TAG2TYPE.hasOwnProperty(tag)) {\n            throw new FormatError(`Invalid API data format. Unsupported tag: ${tag}`)\n        }\n\n        if (data[2] !== '_') {\n            throw new FormatError(`Invalid API data format. Expected _ separator on position 2, got ${data[2]}`)\n        }\n\n        const type = TYPES[TAG2TYPE[tag]]\n        const payload = data.substring(3)\n        const decoded = type.encoder.decode(payload)\n\n        if (type.size > 0 && decoded.length !== type.size) {\n            throw new FormatError(`Invalid API data format. Expected size ${type.size}, but got ${decoded.length}`)\n        }\n\n        return decoded\n    }\n\n    decodeWithType(data, expectedType) {\n        const tag = data.substring(0, 2)\n\n        if (!TYPES.hasOwnProperty(expectedType)) {\n            throw new FateTypeError(expectedType, 'Unsupported API type')\n        }\n\n        const expectedTag = TYPES[expectedType].tag\n\n        if (tag !== expectedTag) {\n            const capitalized = this.capitalizeType(expectedType)\n\n            throw new FateTypeError(\n                expectedType,\n                `${capitalized} should start with ${expectedTag}_, got ${data} instead`\n            )\n        }\n\n        return this.decode(data)\n    }\n\n    capitalizeType(type) {\n        const s = type.replace('_', ' ')\n\n        return s.charAt(0).toUpperCase() + s.slice(1)\n    }\n}\n\nexport default ApiEncoder\n","import {int2ByteArray, byteArray2IntBE} from './int2ByteArray.js'\n\nconst CURVES = {\n    r: {\n        R: 1n << 256n,\n        N: 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001n,\n    },\n    p: {\n        R: 1n << 384n,\n        /* eslint-disable-next-line max-len */\n        N: 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaabn,\n    }\n}\n\nconst xgcd = (a, b) => {\n    if (b === 0n) {\n        return [1n, 0n, a]\n    }\n\n    const [x, y, d] = xgcd(b, a % b)\n\n    return [y, x - y * (a / b), d]\n}\n\nconst invmod = (a, n) => {\n    const [X, _Y, _D] = xgcd(a, n)\n\n    // To ensure positive result\n    return (X + n) % n\n}\n\n// Scalar(a) = aR mod N\nconst int2MontBytes = (value, curveType) => {\n    const curve = CURVES[curveType]\n    const a = BigInt(value)\n    const m = (a * curve.R) % curve.N\n\n    return int2ByteArray(m)\n}\n\n// a = ã · R^−1 mod N\nconst montBytes2Int = (value, curveType) => {\n    const curve = CURVES[curveType]\n    const a = byteArray2IntBE(value)\n    const Rinv = invmod(curve.R, curve.N)\n\n    return (a * Rinv) % curve.N\n}\n\nexport {\n    int2MontBytes,\n    montBytes2Int,\n}\n","import ApiEncoder from '../ApiEncoder.js'\nimport {montBytes2Int} from '../utils/bls12381.js'\nimport {byteArray2Hex} from '../utils/int2ByteArray.js'\n\n/**\n * Map the internal representation FATE data structure to Aesophia canonical structures and formats.\n */\n\nclass CanonicalMapper {\n    constructor() {\n        this._apiEncoder = new ApiEncoder()\n    }\n\n    toCanonical(data) {\n        return data.accept(this)\n    }\n\n    visitData(acceptor) {\n        return acceptor.valueOf()\n    }\n\n    visitAddress(acceptor) {\n        return this._apiEncoder.encode(acceptor.name, acceptor.value)\n    }\n\n    visitList(acceptor) {\n        return acceptor.items.map(e => e.accept(this))\n    }\n\n    visitSet(acceptor) {\n        return new Set(acceptor.items.map(e => e.accept(this)))\n    }\n\n    visitMap(acceptor) {\n        const map = new Map()\n        for (const [key, value] of acceptor.iterator) {\n            map.set(key.accept(this), value.accept(this))\n        }\n\n        return map\n    }\n\n    visitTuple(acceptor) {\n        return acceptor.prepareItems(e => e.accept(this))\n    }\n\n    visitVariant(acceptor) {\n        const value = acceptor.value.map(e => e.accept(this))\n\n        if (acceptor.variantName === 'None') {\n            return undefined\n        }\n\n        if (acceptor.variantName === 'Some') {\n            return value[0]\n        }\n\n        return {\n            [acceptor.variantName]: value\n        }\n    }\n\n    visitBls12381Fr(acceptor) {\n        return montBytes2Int(acceptor.valueOf(), 'r')\n    }\n\n    visitBls12381Fp(acceptor) {\n        return montBytes2Int(acceptor.valueOf(), 'p')\n    }\n\n    visitCalldata(acceptor) {\n        const {functionId, args} = acceptor.valueOf()\n\n        return {\n            functionId: byteArray2Hex(functionId),\n            args: args.map(e => e.accept(this))\n        }\n    }\n}\n\nexport default CanonicalMapper\n","import FateBytes from './FateBytes.js'\n\nclass FateHash extends FateBytes {\n    constructor(value) {\n        super(value, 32, 'hash')\n    }\n}\n\nexport default FateHash\n","import FateBytes from './FateBytes.js'\n\nclass FateSignature extends FateBytes {\n    constructor(value) {\n        super(value, 64, 'signature')\n    }\n}\n\nexport default FateSignature\n","class BaseDataFactory {\n    constructor(valueFactory) {\n        this._valueFactory = valueFactory\n    }\n\n    get valueFactory() {\n        return this._valueFactory\n    }\n\n    supports({_name, _valueTypes}) {\n        return false\n    }\n\n    create(_type, _value) {\n        throw new Error('Not implemented.')\n    }\n}\n\nexport default BaseDataFactory\n","import FateInt from '../types/FateInt.js'\nimport FateBool from '../types/FateBool.js'\nimport FateString from '../types/FateString.js'\nimport FateHash from '../types/FateHash.js'\nimport FateSignature from '../types/FateSignature.js'\nimport FateBytes from '../types/FateBytes.js'\nimport FateBits from '../types/FateBits.js'\nimport FateAccountAddress from '../types/FateAccountAddress.js'\nimport FateContractAddress from '../types/FateContractAddress.js'\nimport FateChannelAddress from '../types/FateChannelAddress.js'\nimport FateOracleAddress from '../types/FateOracleAddress.js'\nimport FateOracleQueryAddress from '../types/FateOracleQueryAddress.js'\nimport BaseDataFactory from './BaseDataFactory.js'\n\nconst TYPES = [\n    'int',\n    'bool',\n    'string',\n    'bits',\n    'hash',\n    'bytes',\n    'signature',\n    'account_pubkey',\n    'contract_pubkey',\n    'channel',\n    'oracle_pubkey',\n    'oracle_query_id'\n]\n\nclass PrimitiveDataFactory extends BaseDataFactory {\n    supports({ name, _valueTypes }) {\n        return TYPES.includes(name)\n    }\n\n    create(type, value) {\n        switch (type.name) {\n        case 'int':\n            return new FateInt(value)\n        case 'bool':\n            return new FateBool(value)\n        case 'string':\n            return new FateString(value)\n        case 'bits':\n            return new FateBits(value)\n        case 'hash':\n            return new FateHash(value)\n        case 'bytes':\n            return new FateBytes(value, type.valueTypes)\n        case 'signature':\n            return new FateSignature(value)\n        case 'account_pubkey':\n            return new FateAccountAddress(value)\n        case 'contract_pubkey':\n            return new FateContractAddress(value)\n        case 'channel':\n            return new FateChannelAddress(value)\n        case 'oracle_pubkey':\n            return new FateOracleAddress(value)\n        case 'oracle_query_id':\n            return new FateOracleQueryAddress(value)\n        default:\n            throw new Error(`Unsupported type \"${type.name}\"`)\n        }\n    }\n}\n\nexport default PrimitiveDataFactory\n","import FateList from '../types/FateList.js'\nimport FateTypeError from '../Errors/FateTypeError.js'\nimport BaseDataFactory from './BaseDataFactory.js'\n\nclass ListDataFactory extends BaseDataFactory {\n    supports({name, _valueTypes}) {\n        return 'list' === name\n    }\n\n    create(type, value) {\n        if (!Array.isArray(value)) {\n            throw new FateTypeError(\n                type.name,\n                `Fate list must be an Array, got ${value} instead`\n            )\n        }\n\n        const resolvedValues = value.map(v => this.valueFactory.create(type.valuesType, v))\n\n        return new FateList(type.valuesType, resolvedValues)\n    }\n}\n\nexport default ListDataFactory\n","import FateSet from '../types/FateSet.js'\nimport BaseDataFactory from './BaseDataFactory.js'\n\nclass SetDataFactory extends BaseDataFactory {\n    supports({name, _valueTypes}) {\n        return 'set' === name\n    }\n\n    create(type, value) {\n        const resolvedValues = []\n        for (const item of value) {\n            resolvedValues.push(this.valueFactory.create(type.valuesType, item))\n        }\n\n        return new FateSet(type.valuesType, resolvedValues)\n    }\n}\n\nexport default SetDataFactory\n","import FateMap from '../types/FateMap.js'\nimport BaseDataFactory from './BaseDataFactory.js'\n\nclass MapDataFactory extends BaseDataFactory {\n    supports({ name, _valueTypes }) {\n        return 'map' === name\n    }\n\n    create(type, value) {\n        const resolvedValues = []\n        for (const item of value) {\n            resolvedValues.push([\n                this.valueFactory.create(type.keyType, item[0]),\n                this.valueFactory.create(type.valueType, item[1]),\n            ])\n        }\n\n        return new FateMap(type.keyType, type.valueType, resolvedValues)\n    }\n}\n\nexport default MapDataFactory\n","import FateTuple from '../types/FateTuple.js'\nimport FateTypeError from '../Errors/FateTypeError.js'\nimport BaseDataFactory from './BaseDataFactory.js'\n\nclass TupleDataFactory extends BaseDataFactory {\n    supports({ name, _valueTypes }) {\n        return 'tuple' === name\n    }\n\n    create(type, value) {\n        if (!Array.isArray(value)) {\n            throw new FateTypeError(\n                type.name,\n                `Fate tuple must be an Array, got ${value} instead`\n            )\n        }\n\n        const resolvedValue = type.valueTypes.map((t, i) => {\n            return this.valueFactory.create(t, value[i])\n        })\n\n        // Unbox singleton tuples and records\n        // https://github.com/aeternity/aesophia/pull/205\n        // https://github.com/aeternity/aesophia/commit/a403a9d227ac56266cf5bb8fbc916f17e6141d15\n        if (resolvedValue.length === 1) {\n            return resolvedValue[0]\n        }\n\n        return new FateTuple(type.valueTypes, resolvedValue)\n    }\n}\n\nexport default TupleDataFactory\n","import BaseDataFactory from './BaseDataFactory.js'\nimport FateTuple from '../types/FateTuple.js'\nimport {FateTypeRecord} from '../FateTypes.js'\nimport FateTypeError from '../Errors/FateTypeError.js'\n\nclass RecordDataFactory extends BaseDataFactory {\n    supports({ name, _valueTypes }) {\n        return 'record' === name\n    }\n\n    create(type, value) {\n        if (typeof value !== 'object') {\n            throw new FateTypeError(\n                type.name,\n                `Fate record must be an Object, got ${value} instead`\n            )\n        }\n\n        const keyLen = Object.keys(value).length\n        if (keyLen !== type.keys.length) {\n            throw new FateTypeError(\n                type.name,\n                `Number of expected keys (${type.keys.length}) and actual keys (${keyLen}) should match`\n            )\n        }\n\n        const resolvedValue = type.valueTypes.map((t, i) => {\n            const key = type.keys[i]\n            return this.valueFactory.create(t, value[key])\n        })\n\n        // Unbox singleton tuples and records\n        // https://github.com/aeternity/aesophia/pull/205\n        // https://github.com/aeternity/aesophia/commit/a403a9d227ac56266cf5bb8fbc916f17e6141d15\n        if (resolvedValue.length === 1) {\n            return resolvedValue[0]\n        }\n\n        return new FateTuple(\n            FateTypeRecord(type.keys, type.valueTypes),\n            resolvedValue\n        )\n    }\n}\n\nexport default RecordDataFactory\n","import FateVariant from '../types/FateVariant.js'\nimport FateTypeError from '../Errors/FateTypeError.js'\nimport BaseDataFactory from './BaseDataFactory.js'\n\nconst TYPES = [\n    'variant',\n    'Chain.ttl',\n    'AENS.pointee',\n    'AENSv2.pointee',\n    'AENS.name',\n    'AENSv2.name'\n]\n\nclass VariantDataFactory extends BaseDataFactory {\n    supports({ name, _valueTypes }) {\n        return TYPES.includes(name)\n    }\n\n    create(type, value) {\n        if (!this.isValid(value)) {\n            throw new FateTypeError(\n                type.name,\n                `Variant should be an object mapping constructor to array of values, got \"${value}\" instead`\n            )\n        }\n\n        const [variantCtor, variantArgs] = Object.entries(value)[0]\n\n        const arities = type.variants.map(e => {\n            const [[, args]] = Object.entries(e)\n            return args.length\n        })\n\n        const tag = type.variants.findIndex(e => {\n            const [[key, _]] = Object.entries(e)\n            return key === variantCtor\n        })\n\n        if (tag === -1) {\n            throw new FateTypeError(\n                type.name,\n                `Unknown variant constructor: ${variantCtor}`\n            )\n        }\n\n        const [[, variantTypes]] = Object.entries(type.variants[tag])\n\n        if (variantArgs.length !== variantTypes.length) {\n            throw new FateTypeError(\n                type.name,\n                `\"${variantCtor}\" variant constructor expects ${variantTypes.length} argument(s) but got ${variantArgs.length} instead`\n            )\n        }\n\n        const variantValue = this.valueFactory.createMultiple(variantTypes, variantArgs)\n\n        return new FateVariant(arities, tag, variantValue, variantTypes, type.variants)\n    }\n\n    isValid(value) {\n        return typeof value === 'object'\n            && value !== null\n            && Object.entries(value).length === 1\n            && Array.isArray(Object.values(value)[0])\n    }\n}\n\nexport default VariantDataFactory\n","import blake from 'blakejs/blake2b.js'\n\nconst HASH_BYTES = 32\n\nconst hash = (name) => {\n    return Array.from(blake.blake2b(name, null, HASH_BYTES))\n}\n\nconst symbolIdentifier = (funName) => {\n    // First 4 bytes of 32 bytes blake hash\n    return hash(funName).slice(0, 4)\n}\n\nexport {\n    hash,\n    symbolIdentifier\n}\n","import {hash} from '../utils/hash.js'\nimport {byteArray2Int} from '../utils/int2ByteArray.js'\nimport TypeResolveError from '../Errors/TypeResolveError.js'\nimport BaseDataFactory from './BaseDataFactory.js'\n\nconst DATA_TYPES = [\n    'string',\n    'signature',\n    'bytes',\n]\n\nclass EventDataFactory extends BaseDataFactory {\n    supports({ name, _valueTypes }) {\n        return 'event' === name\n    }\n\n    create({variantType, topics}, data) {\n        const [nameHash, ...args] = topics\n\n        if (typeof nameHash !== 'bigint') {\n            throw new TypeResolveError(`Event name hash (first topic) should be of type \"BigInt\", got \"${typeof nameHash}\" instead.`)\n        }\n\n        const idx = variantType.variants\n            .map(v => byteArray2Int(hash(Object.keys(v)[0])))\n            .findIndex(v => v === nameHash)\n\n        if (idx === -1) {\n            throw new TypeResolveError('Event name hash does not match any event variant constructor')\n        }\n\n        const variant = variantType.variants[idx]\n        const variantName = Object.keys(variant)[0]\n        const [argTypes] = Object.values(variant)\n        const resolvedArgs = argTypes.map(t => {\n            if (this._isData(t)) {\n                return data\n            }\n\n            return args.shift()\n        })\n\n        return this.valueFactory.create(variantType, {[variantName]: resolvedArgs})\n    }\n\n    _isData(type) {\n        if (!DATA_TYPES.includes(type.name)) {\n            return false\n        }\n\n        if (type.name === 'bytes' && type.size <= 32) {\n            return false\n        }\n\n        return true\n    }\n}\n\nexport default EventDataFactory\n","import FateBls12381Fr from '../types/FateBls12381Fr.js'\nimport FateBls12381Fp from '../types/FateBls12381Fp.js'\nimport BaseDataFactory from './BaseDataFactory.js'\n\nconst TYPES = [\n    'bls12_381.fr',\n    'bls12_381.fp',\n]\n\nclass Bls12381DataFactory extends BaseDataFactory {\n    supports({ name, _valueTypes }) {\n        return TYPES.includes(name)\n    }\n\n    create(type, value) {\n        switch (type.name) {\n        case 'bls12_381.fr':\n            return new FateBls12381Fr(value)\n        case 'bls12_381.fp':\n            return new FateBls12381Fp(value)\n        default:\n            throw new Error(`Unsupported type \"${type.name}\"`)\n        }\n    }\n}\n\nexport default Bls12381DataFactory\n","import {symbolIdentifier} from '../utils/hash.js'\nimport FateTypeError from '../Errors/FateTypeError.js'\nimport FateCalldata from '../types/FateCalldata.js'\nimport BaseDataFactory from './BaseDataFactory.js'\n\nclass CallDataFactory extends BaseDataFactory {\n    supports({ name, _valueTypes }) {\n        return 'calldata' === name\n    }\n\n    create(type, value) {\n        if (!Array.isArray(value)) {\n            throw new FateTypeError(\n                type.name,\n                `Fate calldata arguments must be an Array, got ${value} instead`\n            )\n        }\n\n        const argsData = this.valueFactory.createMultiple(type.argumentTypes, value)\n        const functionId = symbolIdentifier(type.functionName)\n\n        return new FateCalldata(functionId, type.argumentTypes, argsData)\n    }\n}\n\nexport default CallDataFactory\n","import assert from '../utils/assert.js'\nimport zip from '../utils/zip.js'\nimport PrimitiveDataFactory from './PrimitiveDataFactory.js'\nimport ListDataFactory from './ListDataFactory.js'\nimport SetDataFactory from './SetDataFactory.js'\nimport MapDataFactory from './MapDataFactory.js'\nimport TupleDataFactory from './TupleDataFactory.js'\nimport RecordDataFactory from './RecordDataFactory.js'\nimport VariantDataFactory from './VariantDataFactory.js'\nimport EventDataFactory from './EventDataFactory.js'\nimport Bls12381DataFactory from './Bls12381DataFactory.js'\nimport CallDataFactory from './CallDataFactory.js'\n\nclass CompositeDataFactory {\n    constructor() {\n        this._factories = [\n            new PrimitiveDataFactory(this),\n            new ListDataFactory(this),\n            new SetDataFactory(this),\n            new MapDataFactory(this),\n            new TupleDataFactory(this),\n            new RecordDataFactory(this),\n            new EventDataFactory(this),\n            new VariantDataFactory(this),\n            new Bls12381DataFactory(this),\n            new CallDataFactory(this),\n        ]\n    }\n\n    createMultiple(types, values) {\n        assert(\n            values.length === types.length,\n            `Number of types (${types.length}) and values (${values.length}) should match`\n        )\n\n        return zip(types, values).map(el => this.create(...el))\n    }\n\n    create(type, value) {\n        const factory = this._factories.find(f => f.supports(type))\n        assert(factory, `Unsupported type \"${type.name}\"`)\n\n        return factory.create(type, value)\n    }\n}\n\nexport default CompositeDataFactory\n","export default (arr, ...arrs) => {\n    return arr.map((val, i) => arrs.reduce((a, curr) => [...a, curr[i]], [val]))\n}\n","import ApiEncoder from '../ApiEncoder.js'\nimport {int2MontBytes} from '../utils/bls12381.js'\nimport FateTypeError from '../Errors/FateTypeError.js'\n\n/**\n * Map Aesophia canonical structures and formats to internal representation FATE data structures.\n */\nclass InternalMapper {\n    constructor() {\n        this._apiEncoder = new ApiEncoder()\n    }\n\n    toInternal(type, value) {\n        switch (type.name) {\n        case 'account_pubkey':\n        case 'contract_pubkey':\n        case 'channel':\n        case 'oracle_pubkey':\n        case 'oracle_query_id':\n            return this.toAddress(type, value)\n        case 'variant':\n            return this.toVariant(type, value)\n        case 'map':\n            return this.toMap(type, value)\n        case 'set':\n            return this.toSet(type, value)\n        case 'record':\n            return this.toRecord(type, value)\n        case 'bls12_381.fr':\n            return this.toBls12381Fr(type, value)\n        case 'bls12_381.fp':\n            return this.toBls12381Fp(type, value)\n        default:\n            return value\n        }\n    }\n\n    toAddress({name, _}, value) {\n        return this._apiEncoder.decodeWithType(value, name)\n    }\n\n    toVariant(type, value) {\n        if (!this.isOptionVariant(type)) {\n            return value\n        }\n\n        if ([undefined, null].includes(value)) {\n            return {None: []}\n        }\n\n        const [variantName] = Object.keys(value)\n        if (['Some', 'None'].includes(variantName)) {\n            return value\n        }\n\n        return {Some: [value]}\n    }\n\n    isOptionVariant({ _name, variants }) {\n        return variants.some(({ None }) => None && None.length === 0)\n            && variants.some(({ Some }) => Some)\n    }\n\n    toMap(type, value) {\n        if (typeof value !== 'object' || value === null) {\n            throw new FateTypeError(\n                'map',\n                `Fate map must be one of: Map, Array, Object; got ${value} instead`\n            )\n        }\n\n        return Array.isArray(value) || value instanceof Map ? value : Object.entries(value)\n    }\n\n    toSet(type, value) {\n        if (value instanceof Set) {\n            return value\n        }\n\n        if (Array.isArray(value)) {\n            return new Set(value)\n        }\n\n        throw new FateTypeError(\n            'set',\n            `Fate set must be a Set or Array, got \"${value}\" instead`\n        )\n    }\n\n    toRecord(type, record) {\n        return type.keys.reduce((v, name) => ({ ...v, [name]: record[name] }), {})\n    }\n\n    validateBls12381Field(type, value) {\n        if (typeof value !== 'bigint' && !Number.isInteger(value)) {\n            throw new FateTypeError(\n                type.name,\n                `Should be one of: BigInt or Number; got ${value} instead`\n            )\n        }\n    }\n\n    toBls12381Fr(type, value) {\n        this.validateBls12381Field(type, value)\n\n        return int2MontBytes(value, 'r')\n    }\n\n    toBls12381Fp(type, value) {\n        this.validateBls12381Field(type, value)\n\n        return int2MontBytes(value, 'p')\n    }\n}\n\nexport default InternalMapper\n","import CompositeDataFactory from './DataFactory/CompositeDataFactory.js'\nimport InternalMapper from './Mapper/InternalMapper.js'\n\nclass ExternalDataFactory extends CompositeDataFactory {\n    constructor() {\n        super()\n\n        this._mapper = new InternalMapper()\n    }\n\n    create(type, value) {\n        const internalValue = this._mapper.toInternal(type, value)\n\n        return super.create(type, internalValue)\n    }\n}\n\nexport default ExternalDataFactory\n","import Serializer from './Serializer.js'\nimport ApiEncoder from './ApiEncoder.js'\nimport CanonicalMapper from './Mapper/CanonicalMapper.js'\nimport ExternalDataFactory from './ExternalDataFactory.js'\n\nclass ContractByteArrayEncoder {\n    constructor() {\n        /** @type {Serializer} */\n        this._serializer = new Serializer()\n\n        /** @type {ApiEncoder} */\n        this._apiEncoder = new ApiEncoder()\n\n        /** @type {ExternalDataFactory} */\n        this._externalDataFactory = new ExternalDataFactory()\n\n        /** @type {CanonicalMapper} */\n        this._canonicalMapper = new CanonicalMapper()\n    }\n\n    /**\n     * Encode FATE data to contract bytearray.\n     *\n     * @example\n     * const encoded = encoder.encode(FateTypeString(), \"whoolymoly\")\n     * console.log(`Encoded data: ${encoded}`)\n     * // Outputs:\n     * // Encoded data: cb_KXdob29seW1vbHlGazSE\n     *\n     * @param {object} type - Data as Javascript data structures. See README.md\n     * @param {Array} data - Data as Javascript data structures. See README.md\n     * @returns {string} Encoded contract byte array\n    */\n    encode(type, value) {\n        const data = this._externalDataFactory.create(type, value)\n        const serialized = this._serializer.serialize(data)\n        const binData = new Uint8Array(serialized.flat(Infinity))\n\n        return this._apiEncoder.encode('contract_bytearray', binData)\n    }\n\n    /**\n     * Decodes arbitrary contract bytearray data.\n     *\n     * Note that:\n     * - Variants are not annotated with constructor names\n     * - Record keys are lost\n     * - Any custom type information is lost\n     * - STL type information is lost: i.e. Chain, AENS, Set, BLS12_381\n     *\n     * @example\n     * const decoded = encoder.decode('cb_KXdob29seW1vbHlGazSE')\n     * console.log(`Decoded data: ${decoded}`)\n     * // Outputs:\n     * // Decoded data: whoolymoly\n     *\n     * @param {string} data - Contract bytearray data in a canonical format.\n     * @returns {boolean|string|BigInt|Array|Map|Object}\n     *  Decoded value as Javascript data structures. See README.md\n    */\n    decode(data) {\n        const binData = this._apiEncoder.decodeWithType(data, 'contract_bytearray')\n        const deserialized = this._serializer.deserialize(binData)\n\n        return this._canonicalMapper.toCanonical(deserialized)\n    }\n\n    /**\n     * Decodes arbitrary contract bytearray data with type information.\n     *\n     * @example\n     * const decoded = encoder.decodeWithType('cb_KXdob29seW1vbHlGazSE', FateTypeString())\n     * console.log(`Decoded data: ${decoded}`)\n     * // Outputs:\n     * // Decoded data: whoolymoly\n     *\n     * @param {string} data - Contract bytearray data in a canonical format.\n     * @param {object} type - Data as Javascript data structures. See README.md\n     * @returns {boolean|string|BigInt|Array|Map|Object}\n     *  Decoded value as Javascript data structures. See README.md\n    */\n    decodeWithType(data, type) {\n        const binData = this._apiEncoder.decodeWithType(data, 'contract_bytearray')\n        const deserialized = this._serializer.deserializeWithType(binData, type)\n\n        return this._canonicalMapper.toCanonical(deserialized)\n    }\n}\n\nexport default ContractByteArrayEncoder\n","import InternalEncoder from '../ContractByteArrayEncoder.js'\n\nclass ContractByteArrayEncoder {\n    constructor() {\n        this._internalEncoder = new InternalEncoder()\n    }\n\n    /**\n     * Encode FATE data to contract bytearray.\n     *\n     * @example\n     * const resolver = new TypeResolver()\n     * const encoded = encoder.encode(\"whoolymoly\", resolver.resolveType('string'))\n     * console.log(`Encoded data: ${encoded}`)\n     * // Outputs:\n     * // Encoded data: cb_KXdob29seW1vbHlGazSE\n     *\n     * @param {any} value - Value as Javascript data structures. See README.md\n     * @param {object} type - Opaque type information provided by TypeResolver. See README.md\n     * @returns {string} Encoded contract byte array\n    */\n    encodeWithType(value, type) {\n        return this._internalEncoder.encode(type, value)\n    }\n\n    /**\n     * Decodes arbitrary contract bytearray data using only builtin FATE type information\n     *\n     * Note that:\n     * - Variants are not annotated with constructor names\n     * - Record keys are lost\n     * - Any custom type information is lost\n     * - STL type information is lost: i.e. Chain, AENS, Set, BLS12_381\n     *\n     * @example\n     * const decoded = encoder.decode('cb_KXdob29seW1vbHlGazSE')\n     * console.log(`Decoded data: ${decoded}`)\n     * // Outputs:\n     * // Decoded data: whoolymoly\n     *\n     * @param {string} data - Contract bytearray data in a canonical format.\n     * @returns {boolean|string|BigInt|Array|Map|Object}\n     *  Decoded value as Javascript data structures. See README.md\n    */\n    decode(data) {\n        return this._internalEncoder.decode(data)\n    }\n\n    /**\n     * Decodes arbitrary contract bytearray data with type information.\n     *\n     * @example\n     * const resolver = new TypeResolver()\n     * const type = resolver.resolveType('string')\n     * const decoded = encoder.decodeWithType('cb_KXdob29seW1vbHlGazSE', type)\n     * console.log(`Decoded data: ${decoded}`)\n     * // Outputs:\n     * // Decoded data: whoolymoly\n     *\n     * @param {string} data - Contract bytearray data in a canonical format.\n     * @param {object} type - Opaque type information provided by TypeResolver. See README.md\n     * @returns {boolean|string|BigInt|Array|Map|Object}\n     *  Decoded value as Javascript data structures. See README.md\n    */\n    decodeWithType(data, type) {\n        return this._internalEncoder.decodeWithType(data, type)\n    }\n}\n\nexport default ContractByteArrayEncoder\n","import { TypeResolver, ContractByteArrayEncoder } from '@aeternity/aepp-calldata';\nimport canonicalize from 'canonicalize';\nimport { Encoded, decode } from './encoder.js';\nimport { hash, messagePrefixLength } from './crypto.js';\nimport { concatBuffers } from './other.js';\n\n/**\n * Hashes arbitrary object, can be used to inline the aci hash to contract source code\n * @category typed data signing\n */\nexport function hashJson(data: unknown): Buffer {\n  return hash(canonicalize(data) ?? '');\n}\n\n// TODO: move this type to calldata library https://github.com/aeternity/aepp-calldata-js/issues/215\n// based on https://github.com/aeternity/aepp-calldata-js/blob/82b5a98f9b308482627da8d7484d213e9cf87151/src/AciTypeResolver.js#L129\nexport type AciValue =\n  | 'void'\n  | 'unit'\n  | 'int'\n  | 'bool'\n  | 'string'\n  | 'bits'\n  | 'hash'\n  | 'signature'\n  | 'address'\n  | 'contract_pubkey'\n  | 'Chain.ttl'\n  | 'Chain.ga_meta_tx'\n  | 'Chain.paying_for_tx'\n  | 'Chain.base_tx'\n  | 'AENS.pointee'\n  | 'AENS.name'\n  | 'MCL_BLS12_381.fr'\n  | 'MCL_BLS12_381.fp'\n  | { 'Set.set': readonly [AciValue] }\n  | { bytes: number }\n  | { list: readonly [AciValue] }\n  | { map: readonly [AciValue, AciValue] }\n  | { tuple: readonly AciValue[] }\n  | { record: ReadonlyArray<{ name: string; type: AciValue }> }\n  | { variant: ReadonlyArray<{ [key: string]: readonly AciValue[] }> }\n  | { option: readonly [AciValue] }\n  | { oracle: readonly [AciValue, AciValue] }\n  | { oracle_query: readonly [AciValue, AciValue] };\n\nexport interface Domain {\n  name?: string;\n  version?: number;\n  networkId?: string;\n  contractAddress?: Encoded.ContractAddress;\n}\n\n/**\n * Hashes domain object, can be used to inline domain hash to contract source code\n * @category typed data signing\n */\nexport function hashDomain(domain: Domain): Buffer {\n  const domainAci = {\n    record: [\n      {\n        name: 'name',\n        type: { option: ['string'] },\n      },\n      {\n        name: 'version',\n        type: { option: ['int'] },\n      },\n      {\n        name: 'networkId',\n        type: { option: ['string'] },\n      },\n      {\n        name: 'contractAddress',\n        type: { option: ['contract_pubkey'] },\n      },\n    ],\n  } as const;\n  const domainType = new TypeResolver().resolveType(domainAci, {});\n  const fateValue = new ContractByteArrayEncoder().encodeWithType(domain, domainType);\n  return hash(decode(fateValue));\n}\n\n/**\n * @category typed data signing\n */\nexport function hashTypedData(\n  data: Encoded.ContractBytearray,\n  aci: AciValue,\n  domain: Domain,\n): Buffer {\n  return hash(\n    concatBuffers([\n      messagePrefixLength,\n      new Uint8Array([0]),\n      hashDomain(domain),\n      hashJson(aci),\n      hash(decode(data)),\n    ]),\n  );\n}\n","import nacl from 'tweetnacl';\nimport AccountBase from './Base.js';\nimport { hash, hashMessage, messagePrefixLength } from '../utils/crypto.js';\nimport { ArgumentError } from '../utils/errors.js';\nimport { decode, encode, Encoded, Encoding } from '../utils/encoder.js';\nimport { concatBuffers } from '../utils/other.js';\nimport { hashTypedData, AciValue } from '../utils/typed-data.js';\nimport { buildTx } from '../tx/builder/index.js';\nimport { Tag } from '../tx/builder/constants.js';\n\nexport function getBufferToSign(\n  transaction: Encoded.Transaction,\n  networkId: string,\n  innerTx: boolean,\n): Uint8Array {\n  const prefixes = [networkId];\n  if (innerTx) prefixes.push('inner_tx');\n  const rlpBinaryTx = decode(transaction);\n  return concatBuffers([Buffer.from(prefixes.join('-')), hash(rlpBinaryTx)]);\n}\n\n/**\n * In-memory account class\n * @category account\n */\nexport default class AccountMemory extends AccountBase {\n  override readonly address: Encoded.AccountAddress;\n\n  readonly #secretKeyDecoded: Uint8Array;\n\n  /**\n   * @param secretKey - Secret key\n   */\n  constructor(public readonly secretKey: Encoded.AccountSecretKey) {\n    super();\n    const keyPair = nacl.sign.keyPair.fromSeed(decode(secretKey));\n    this.#secretKeyDecoded = keyPair.secretKey;\n    this.address = encode(keyPair.publicKey, Encoding.AccountAddress);\n  }\n\n  /**\n   * Generates a new AccountMemory using a random secret key\n   */\n  static generate(): AccountMemory {\n    const secretKey = encode(nacl.randomBytes(32), Encoding.AccountSecretKey);\n    return new AccountMemory(secretKey);\n  }\n\n  /**\n   * @deprecated Use `unsafeSign` method instead\n   */\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  override async sign(data: string | Uint8Array, options?: any): Promise<Uint8Array> {\n    return this.unsafeSign(data, options);\n  }\n\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  override async unsafeSign(data: string | Uint8Array, options?: any): Promise<Uint8Array> {\n    return nacl.sign.detached(Buffer.from(data), this.#secretKeyDecoded);\n  }\n\n  override async signTransaction(\n    transaction: Encoded.Transaction,\n    { innerTx, networkId, ...options }: { innerTx?: boolean; networkId?: string } = {},\n  ): Promise<Encoded.Transaction> {\n    if (networkId == null) {\n      throw new ArgumentError('networkId', 'provided', networkId);\n    }\n    const rlpBinaryTx = decode(transaction);\n    const txWithNetworkId = getBufferToSign(transaction, networkId, innerTx === true);\n\n    const signatures = [await this.unsafeSign(txWithNetworkId, options)];\n    return buildTx({ tag: Tag.SignedTx, encodedTx: rlpBinaryTx, signatures });\n  }\n\n  override async signMessage(message: string, options?: any): Promise<Uint8Array> {\n    return this.unsafeSign(hashMessage(message), options);\n  }\n\n  override async signTypedData(\n    data: Encoded.ContractBytearray,\n    aci: AciValue,\n    {\n      name,\n      version,\n      networkId,\n      contractAddress,\n      ...options\n    }: Parameters<AccountBase['signTypedData']>[2] = {},\n  ): Promise<Encoded.Signature> {\n    const dHash = hashTypedData(data, aci, {\n      name,\n      version,\n      networkId,\n      contractAddress,\n    });\n    const signature = await this.unsafeSign(dHash, options);\n    return encode(signature, Encoding.Signature);\n  }\n\n  override async signDelegation(\n    delegation: Encoded.Bytearray,\n    { networkId }: { networkId?: string } = {},\n  ): Promise<Encoded.Signature> {\n    if (networkId == null) throw new ArgumentError('networkId', 'provided', networkId);\n    const payload = concatBuffers([\n      messagePrefixLength,\n      new Uint8Array([1]),\n      Buffer.from(networkId),\n      decode(delegation),\n    ]);\n    const signature = await this.unsafeSign(payload);\n    return encode(signature, Encoding.Signature);\n  }\n}\n","import { Encoded } from '../utils/encoder.js';\nimport { buildTx, buildTxHash, unpackTx } from './builder/index.js';\nimport { Tag } from './builder/constants.js';\nimport { verifySignature } from '../utils/crypto.js';\nimport { getBufferToSign } from '../account/Memory.js';\nimport { IllegalArgumentError, InternalError, TransactionError } from '../utils/errors.js';\nimport Node from '../Node.js';\nimport getTransactionSignerAddress from './transaction-signer.js';\n\n/**\n * Calculates the cost of transaction execution\n * Provides an upper cost of contract-call-related transactions because of `gasLimit`.\n * Also assumes that oracle query fee is 0 unless it is provided in options.\n *\n * The idea is that if you need to show transaction details with some accuracy you can define\n * expense fields that you want to show separately. And to show `getExecutionCost` result as a fee,\n * subtracting all fields shown separately.\n *\n * @example\n * ```vue\n * <template>\n * Amount: {{ txUnpacked.amount }}\n * Name fee: {{ txUnpacked.nameFee }}\n * Other fees: {{ getExecutionCost(txEncoded) - txUnpacked.amount - txUnpacked.nameFee }}\n * </template>\n * ```\n *\n * Doing this way you won't worry to show wrong fee for a transaction you may not support. Because\n * the SDK calculates the overall price of any transaction on its side.\n *\n * @param transaction - Transaction to calculate the cost of\n * @param options - Options\n * @param options.innerTx - Should be provided if transaction wrapped with Tag.PayingForTx\n * @param options.gasUsed - Amount of gas actually used to make calculation more accurate\n * @param options.queryFee - Oracle query fee\n * @param options.isInitiator - Is transaction signer an initiator of state channel\n * @category utils\n */\nexport function getExecutionCost(\n  transaction: Encoded.Transaction,\n  {\n    innerTx,\n    gasUsed,\n    queryFee,\n    isInitiator,\n  }: {\n    innerTx?: 'fee-payer' | 'freeloader';\n    gasUsed?: number;\n    queryFee?: string;\n    isInitiator?: boolean;\n  } = {},\n): bigint {\n  const params = unpackTx(transaction);\n  if (params.tag === Tag.SignedTx) {\n    throw new IllegalArgumentError(\n      \"Transaction shouldn't be a SignedTx, use `getExecutionCostBySignedTx` instead\",\n    );\n  }\n\n  let res = 0n;\n  if ('fee' in params && innerTx !== 'freeloader') {\n    res += BigInt(params.fee);\n  }\n  if (params.tag === Tag.NameClaimTx) {\n    res += BigInt(params.nameFee);\n  }\n  if (params.tag === Tag.OracleQueryTx) {\n    res += BigInt(params.queryFee);\n  }\n  if (params.tag === Tag.OracleRespondTx) {\n    res -= BigInt(queryFee ?? 0);\n  }\n  if (params.tag === Tag.ChannelSettleTx) {\n    if (isInitiator === true) res -= BigInt(params.initiatorAmountFinal);\n    if (isInitiator === false) res -= BigInt(params.responderAmountFinal);\n  }\n  if (\n    (params.tag === Tag.SpendTx ||\n      params.tag === Tag.ContractCreateTx ||\n      params.tag === Tag.ContractCallTx ||\n      params.tag === Tag.ChannelDepositTx) &&\n    innerTx !== 'fee-payer'\n  ) {\n    res += BigInt(params.amount);\n  }\n  if (params.tag === Tag.ContractCreateTx) res += BigInt(params.deposit);\n  if (\n    (params.tag === Tag.ContractCreateTx ||\n      params.tag === Tag.ContractCallTx ||\n      params.tag === Tag.GaAttachTx ||\n      params.tag === Tag.GaMetaTx) &&\n    innerTx !== 'freeloader'\n  ) {\n    res += BigInt(params.gasPrice) * BigInt(gasUsed ?? params.gasLimit);\n  }\n  if (params.tag === Tag.GaMetaTx || params.tag === Tag.PayingForTx) {\n    res += getExecutionCost(\n      buildTx(params.tx.encodedTx),\n      params.tag === Tag.PayingForTx ? { innerTx: 'fee-payer' } : {},\n    );\n  }\n  return res;\n}\n\n/**\n * Calculates the cost of signed transaction execution\n * @param transaction - Transaction to calculate the cost of\n * @param networkId - Network id used to sign the transaction\n * @param options - Options\n * @category utils\n */\nexport function getExecutionCostBySignedTx(\n  transaction: Encoded.Transaction,\n  networkId: string,\n  options?: Omit<Parameters<typeof getExecutionCost>[1], 'innerTx'>,\n): bigint {\n  const params = unpackTx(transaction, Tag.SignedTx);\n  if (params.encodedTx.tag === Tag.GaMetaTx) {\n    return getExecutionCost(buildTx(params.encodedTx), options);\n  }\n\n  const tx = buildTx(params.encodedTx);\n  const address = getTransactionSignerAddress(tx);\n  const [isInnerTx, isNotInnerTx] = [true, false].map((f) =>\n    verifySignature(getBufferToSign(tx, networkId, f), params.signatures[0], address),\n  );\n  if (!isInnerTx && !isNotInnerTx) throw new TransactionError(\"Can't verify signature\");\n  return getExecutionCost(buildTx(params.encodedTx), {\n    ...(isInnerTx && { innerTx: 'freeloader' }),\n    ...options,\n  });\n}\n\n/**\n * Calculates the cost of signed and not signed transaction execution using node\n * @param transaction - Transaction to calculate the cost of\n * @param node - Node to use\n * @param options - Options\n * @param options.isMined - Is transaction already mined or not\n * @category utils\n */\nexport async function getExecutionCostUsingNode(\n  transaction: Encoded.Transaction,\n  node: Node,\n  { isMined, ...options }: { isMined?: boolean } & Parameters<typeof getExecutionCost>[1] = {},\n): Promise<bigint> {\n  let params = unpackTx(transaction);\n  const isSignedTx = params.tag === Tag.SignedTx;\n  const txHash = isSignedTx && isMined === true && buildTxHash(transaction);\n  if (params.tag === Tag.SignedTx) params = params.encodedTx;\n\n  // TODO: set gasUsed for PayingForTx after solving https://github.com/aeternity/aeternity/issues/4087\n  if (\n    options.gasUsed == null &&\n    txHash !== false &&\n    [Tag.ContractCreateTx, Tag.ContractCallTx, Tag.GaAttachTx, Tag.GaMetaTx].includes(params.tag)\n  ) {\n    const { callInfo, gaInfo } = await node.getTransactionInfoByHash(txHash);\n    const combinedInfo = callInfo ?? gaInfo;\n    if (combinedInfo == null) {\n      throw new InternalError(`callInfo and gaInfo is not available for transaction ${txHash}`);\n    }\n    options.gasUsed = combinedInfo.gasUsed;\n  }\n\n  if (options.queryFee == null && Tag.OracleRespondTx === params.tag) {\n    options.queryFee = (await node.getOracleByPubkey(params.oracleId)).queryFee.toString();\n  }\n\n  if (options.isInitiator == null && Tag.ChannelSettleTx === params.tag && isMined !== true) {\n    const { initiatorId } = await node.getChannelByPubkey(params.channelId);\n    options.isInitiator = params.fromId === initiatorId;\n  }\n\n  return isSignedTx\n    ? getExecutionCostBySignedTx(transaction, await node.getNetworkId(), options)\n    : getExecutionCost(transaction, options);\n}\n","import { RestError } from '@azure/core-rest-pipeline';\nimport { hash, isEncoded, verifySignature } from '../utils/crypto.js';\nimport { TxUnpacked } from './builder/schema.generated.js';\nimport { CtVersion, ProtocolToVmAbi } from './builder/field-types/ct-version.js';\nimport { Tag, ConsensusProtocolVersion } from './builder/constants.js';\nimport { buildTx, unpackTx } from './builder/index.js';\nimport { concatBuffers, isAccountNotFoundError } from '../utils/other.js';\nimport { Encoded, Encoding, decode } from '../utils/encoder.js';\nimport Node from '../Node.js';\nimport { Account } from '../apis/node/index.js';\nimport { genAggressiveCacheGetResponsesPolicy } from '../utils/autorest.js';\nimport { UnexpectedTsError } from '../utils/errors.js';\nimport getTransactionSignerAddress from './transaction-signer.js';\nimport { getExecutionCostUsingNode } from './execution-cost.js';\n\nexport interface ValidatorResult {\n  message: string;\n  key: string;\n  checkedKeys: string[];\n}\n\ntype Validator = (\n  tx: TxUnpacked,\n  options: {\n    // TODO: remove after fixing node types\n    account: Account & { id: Encoded.AccountAddress };\n    nodeNetworkId: string;\n    parentTxTypes: Tag[];\n    node: Node;\n    height: number;\n    consensusProtocolVersion: ConsensusProtocolVersion;\n  },\n) => ValidatorResult[] | Promise<ValidatorResult[]>;\n\nconst validators: Validator[] = [];\n\nasync function verifyTransactionInternal(\n  tx: TxUnpacked,\n  node: Node,\n  parentTxTypes: Tag[],\n): Promise<ValidatorResult[]> {\n  const address = getTransactionSignerAddress(buildTx(tx));\n  const [account, { height }, { consensusProtocolVersion, nodeNetworkId }] = await Promise.all([\n    node\n      .getAccountByPubkey(address)\n      .catch((error) => {\n        if (!isAccountNotFoundError(error)) throw error;\n        return { id: address, balance: 0n, nonce: 0 };\n      })\n      // TODO: remove after fixing https://github.com/aeternity/aepp-sdk-js/issues/1537\n      .then((acc) => ({ ...acc, id: acc.id as Encoded.AccountAddress })),\n    node.getCurrentKeyBlockHeight(), // TODO: don't request height on each validation, use caching\n    node.getNodeInfo(),\n  ]);\n\n  return (\n    await Promise.all(\n      validators.map(async (v) =>\n        v(tx, {\n          node,\n          account,\n          height,\n          consensusProtocolVersion,\n          nodeNetworkId,\n          parentTxTypes,\n        }),\n      ),\n    )\n  ).flat();\n}\n\n/**\n * Transaction Validator\n * This function validates some transaction properties,\n * to make sure it can be posted it to the chain\n * @category transaction builder\n * @param transaction - Base64Check-encoded transaction\n * @param nodeNotCached - Node to validate transaction against\n * @returns Array with verification errors\n * @example const errors = await verifyTransaction(transaction, node)\n */\nexport default async function verifyTransaction(\n  transaction: Parameters<typeof unpackTx>[0],\n  nodeNotCached: Node,\n): Promise<ValidatorResult[]> {\n  const pipeline = nodeNotCached.pipeline.clone();\n  pipeline.removePolicy({ name: 'parse-big-int' });\n  const node = new Node(nodeNotCached.$host, {\n    ignoreVersion: true,\n    pipeline,\n    additionalPolicies: [genAggressiveCacheGetResponsesPolicy()],\n  });\n  node._getCachedStatus = async () => nodeNotCached._getCachedStatus();\n  return verifyTransactionInternal(unpackTx(transaction), node, []);\n}\n\nvalidators.push(\n  (tx, { account, nodeNetworkId, parentTxTypes }) => {\n    if (tx.tag !== Tag.SignedTx) return [];\n    const { encodedTx, signatures } = tx;\n    if ((encodedTx ?? signatures) == null) return [];\n    if (signatures.length !== 1) return []; // TODO: Support multisignature like in state channels\n    const prefix = Buffer.from(\n      [nodeNetworkId, ...(parentTxTypes.includes(Tag.PayingForTx) ? ['inner_tx'] : [])].join('-'),\n    );\n    const txBinary = decode(buildTx(encodedTx));\n    const txWithNetworkId = concatBuffers([prefix, txBinary]);\n    const txHashWithNetworkId = concatBuffers([prefix, hash(txBinary)]);\n    if (\n      verifySignature(txWithNetworkId, signatures[0], account.id) ||\n      verifySignature(txHashWithNetworkId, signatures[0], account.id)\n    )\n      return [];\n    return [\n      {\n        message:\n          'Signature cannot be verified, please ensure that you transaction have' +\n          ' the correct prefix and the correct private key for the sender address',\n        key: 'InvalidSignature',\n        checkedKeys: ['encodedTx', 'signatures'],\n      },\n    ];\n  },\n  async (tx, { node, parentTxTypes }) => {\n    let nestedTx;\n    if ('encodedTx' in tx) nestedTx = tx.encodedTx;\n    if ('tx' in tx) nestedTx = tx.tx;\n    if (nestedTx == null) return [];\n    return verifyTransactionInternal(nestedTx, node, [...parentTxTypes, tx.tag]);\n  },\n  (tx, { height }) => {\n    if (!('ttl' in tx)) return [];\n    if (tx.ttl === 0 || tx.ttl > height) return [];\n    return [\n      {\n        message: `TTL ${tx.ttl} is already expired, current height is ${height}`,\n        key: 'ExpiredTTL',\n        checkedKeys: ['ttl'],\n      },\n    ];\n  },\n  async (tx, { account, parentTxTypes, node }) => {\n    if (parentTxTypes.length !== 0) return [];\n    const cost = await getExecutionCostUsingNode(buildTx(tx), node).catch(() => 0n);\n    if (cost <= account.balance) return [];\n    return [\n      {\n        message: `Account balance ${account.balance} is not enough to execute the transaction that costs ${cost}`,\n        key: 'InsufficientBalance',\n        checkedKeys: ['amount', 'fee', 'nameFee', 'gasLimit', 'gasPrice'],\n      },\n    ];\n  },\n  async (tx, { node }) => {\n    if (tx.tag !== Tag.SpendTx || isEncoded(tx.recipientId, Encoding.Name)) return [];\n    const recipient = await node.getAccountByPubkey(tx.recipientId).catch((error) => {\n      if (!isAccountNotFoundError(error)) throw error;\n      return null;\n    });\n    if (recipient == null || recipient.payable === true) return [];\n    return [\n      {\n        message: 'Recipient account is not payable',\n        key: 'RecipientAccountNotPayable',\n        checkedKeys: ['recipientId'],\n      },\n    ];\n  },\n  (tx, { account }) => {\n    let message;\n    if (tx.tag === Tag.SignedTx && account.kind === 'generalized' && tx.signatures.length !== 0) {\n      message = \"Generalized account can't be used to generate SignedTx with signatures\";\n    }\n    if (tx.tag === Tag.GaMetaTx && account.kind === 'basic') {\n      message = \"Basic account can't be used to generate GaMetaTx\";\n    }\n    if (message == null) return [];\n    return [{ message, key: 'InvalidAccountType', checkedKeys: ['tag'] }];\n  },\n  // TODO: revert nonce check\n  // TODO: ensure nonce valid when paying for own tx\n  (tx, { consensusProtocolVersion }) => {\n    const oracleCall = Tag.OracleRegisterTx === tx.tag;\n    const contractCreate = Tag.ContractCreateTx === tx.tag || Tag.GaAttachTx === tx.tag;\n    const contractCall = Tag.ContractCallTx === tx.tag || Tag.GaMetaTx === tx.tag;\n    const type =\n      (oracleCall ? 'oracle-call' : null) ??\n      (contractCreate ? 'contract-create' : null) ??\n      (contractCall ? 'contract-call' : null);\n    if (type == null) return [];\n    const protocol = ProtocolToVmAbi[consensusProtocolVersion][type] as {\n      abiVersion: readonly any[];\n      vmVersion: readonly any[];\n    };\n\n    let ctVersion: Partial<CtVersion> | undefined;\n    if ('abiVersion' in tx) ctVersion = { abiVersion: tx.abiVersion };\n    if ('ctVersion' in tx) ctVersion = tx.ctVersion;\n    if (ctVersion == null) throw new UnexpectedTsError();\n    if (\n      !protocol.abiVersion.includes(ctVersion.abiVersion) ||\n      (contractCreate && !protocol.vmVersion.includes(ctVersion.vmVersion))\n    ) {\n      return [\n        {\n          message: `ABI/VM version ${JSON.stringify(ctVersion)} is wrong, supported is: ${JSON.stringify(protocol)}`,\n          key: 'VmAndAbiVersionMismatch',\n          checkedKeys: ['ctVersion', 'abiVersion'],\n        },\n      ];\n    }\n    return [];\n  },\n  async (tx, { node }) => {\n    if (Tag.ContractCallTx !== tx.tag) return [];\n    // TODO: remove after solving https://github.com/aeternity/aeternity/issues/3669\n    if (tx.contractId.startsWith('nm_')) return [];\n    try {\n      const { active } = await node.getContract(tx.contractId);\n      if (active) return [];\n      return [\n        {\n          message: `Contract ${tx.contractId} is not active`,\n          key: 'ContractNotActive',\n          checkedKeys: ['contractId'],\n        },\n      ];\n    } catch (error) {\n      if (!(error instanceof RestError) || error.response?.bodyAsText == null) throw error;\n      return [\n        {\n          message: JSON.parse(error.response.bodyAsText).reason, // TODO: use parsedBody instead\n          key: 'ContractNotFound',\n          checkedKeys: ['contractId'],\n        },\n      ];\n    }\n  },\n);\n","import verifyTransaction, { ValidatorResult } from './tx/validator.js';\nimport { ensureError } from './utils/other.js';\nimport { TransactionError } from './utils/errors.js';\nimport Node from './Node.js';\nimport { SignedTx } from './apis/node/index.js';\nimport { Encoded } from './utils/encoder.js';\nimport AccountBase from './account/Base.js';\nimport { buildTxHash } from './tx/builder/index.js';\nimport { poll, waitForTxConfirm } from './chain.js';\n\n/**\n * @category exception\n */\nexport class InvalidTxError extends TransactionError {\n  validation: ValidatorResult[];\n\n  transaction: Encoded.Transaction;\n\n  constructor(message: string, validation: ValidatorResult[], transaction: Encoded.Transaction) {\n    super(message);\n    this.name = 'InvalidTxError';\n    this.validation = validation;\n    this.transaction = transaction;\n  }\n}\n\n/**\n * Signs and submits transaction for mining\n * @category chain\n * @param txUnsigned - Transaction to sign and submit\n * @param options - Options\n * @returns Transaction details\n */\nexport async function sendTransaction(\n  txUnsigned: Encoded.Transaction,\n  {\n    onNode,\n    onAccount,\n    verify = true,\n    waitMined = true,\n    confirm,\n    innerTx,\n    ...options\n  }: SendTransactionOptions,\n): Promise<SendTransactionReturnType> {\n  const tx = await onAccount.signTransaction(txUnsigned, {\n    ...options,\n    onNode,\n    innerTx,\n    networkId: await onNode.getNetworkId(),\n  });\n\n  if (innerTx === true) return { hash: buildTxHash(tx), rawTx: tx };\n\n  if (verify) {\n    const validation = await verifyTransaction(tx, onNode);\n    if (validation.length > 0) {\n      const message = `Transaction verification errors: ${validation\n        .map((v: { message: string }) => v.message)\n        .join(', ')}`;\n      throw new InvalidTxError(message, validation, tx);\n    }\n  }\n\n  try {\n    let __queue;\n    try {\n      __queue = onAccount != null ? `tx-${onAccount.address}` : null;\n    } catch (error) {\n      __queue = null;\n    }\n    const { txHash } = await onNode.postTransaction(\n      { tx },\n      {\n        requestOptions: {\n          customHeaders: {\n            // TODO: remove __retry-code after fixing https://github.com/aeternity/aeternity/issues/3803\n            '__retry-code': '400',\n            ...(__queue != null ? { __queue } : {}),\n          },\n        },\n      },\n    );\n\n    if (waitMined) {\n      const pollResult = await poll(txHash, { onNode, ...options });\n      const txData = {\n        ...pollResult,\n        hash: pollResult.hash as Encoded.TxHash,\n        rawTx: tx,\n      };\n      // wait for transaction confirmation\n      if (confirm != null && +confirm > 0) {\n        const c = typeof confirm === 'boolean' ? undefined : confirm;\n        return {\n          ...txData,\n          confirmationHeight: await waitForTxConfirm(txHash, { onNode, confirm: c, ...options }),\n        };\n      }\n      return txData;\n    }\n    return { hash: txHash, rawTx: tx };\n  } catch (error) {\n    ensureError(error);\n    throw Object.assign(error, {\n      rawTx: tx,\n      verifyTx: async () => verifyTransaction(tx, onNode),\n    });\n  }\n}\n\ntype SendTransactionOptionsType = {\n  /**\n   * Node to use\n   */\n  onNode: Node;\n  /**\n   * Account to use\n   */\n  onAccount: AccountBase;\n  /**\n   * Verify transaction before broadcast, throw error if not\n   */\n  verify?: boolean;\n  /**\n   * Ensure that transaction get into block\n   */\n  waitMined?: boolean;\n  /**\n   * Number of micro blocks that should be mined after tx get included\n   */\n  confirm?: boolean | number;\n} & Parameters<typeof poll>[1] &\n  Omit<Parameters<typeof waitForTxConfirm>[1], 'confirm'> &\n  Parameters<AccountBase['signTransaction']>[1];\nexport interface SendTransactionOptions extends SendTransactionOptionsType {}\ninterface SendTransactionReturnType extends Partial<SignedTx> {\n  hash: Encoded.TxHash;\n  // TODO: use `SignedTx.encodedTx` instead\n  rawTx: Encoded.Transaction;\n  confirmationHeight?: number;\n}\n","import canonicalize from 'canonicalize';\nimport AccountBase from '../account/Base.js';\nimport { Encoded, Encoding, decode, encode } from './encoder.js';\nimport { verifySignature } from './crypto.js';\nimport { ArgumentError, InvalidSignatureError } from './errors.js';\n\n// TODO: use Buffer.from(data, 'base64url') after solving https://github.com/feross/buffer/issues/309\nconst toBase64Url = (data: Buffer | Uint8Array | string): string =>\n  Buffer.from(data).toString('base64').replaceAll('/', '_').replaceAll('+', '-').replace(/=+$/, '');\n\nconst fromBase64Url = (data: string): Buffer =>\n  Buffer.from(data.replaceAll('_', '/').replaceAll('-', '+'), 'base64');\n\nconst objectToBase64Url = (data: any): string => toBase64Url(canonicalize(data) ?? '');\n\nconst header = 'eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9'; // objectToBase64Url({ alg: 'EdDSA', typ: 'JWT' })\n\n/**\n * JWT including specific header\n * @category JWT\n */\nexport type Jwt = `${typeof header}.${string}.${string}`;\n\n/**\n * Generate a signed JWT\n * Provide `\"sub_jwk\": undefined` in payload to omit signer public key added by default.\n * @param originalPayload - Payload to sign\n * @param account - Account to sign by\n * @category JWT\n */\nexport async function signJwt(originalPayload: any, account: AccountBase): Promise<Jwt> {\n  const payload = { ...originalPayload };\n  if (!('sub_jwk' in payload)) {\n    payload.sub_jwk = {\n      kty: 'OKP',\n      crv: 'Ed25519',\n      x: toBase64Url(decode(account.address)),\n    };\n  }\n  if (payload.sub_jwk === undefined) delete payload.sub_jwk;\n  const body = `${header}.${objectToBase64Url(payload)}` as const;\n  const signature = await account.unsafeSign(body);\n  return `${body}.${toBase64Url(signature)}`;\n}\n\n/**\n * Unpack JWT. It will check signature if address or \"sub_jwk\" provided.\n * @param jwt - JWT to unpack\n * @param address - Address to check signature\n * @category JWT\n */\nexport function unpackJwt(\n  jwt: Jwt,\n  address?: Encoded.AccountAddress,\n): {\n  /**\n   * JWT payload as object\n   */\n  payload: any;\n  /**\n   * Undefined returned in case signature is not checked\n   */\n  signer: Encoded.AccountAddress | undefined;\n} {\n  const components = jwt.split('.');\n  if (components.length !== 3)\n    throw new ArgumentError('JWT components count', 3, components.length);\n  const [h, payloadEncoded, signature] = components;\n  if (h !== header) throw new ArgumentError('JWT header', header, h);\n  const payload = JSON.parse(fromBase64Url(payloadEncoded).toString());\n  const jwk = payload.sub_jwk ?? {};\n  const signer =\n    jwk.x == null || jwk.kty !== 'OKP' || jwk.crv !== 'Ed25519'\n      ? address\n      : encode(fromBase64Url(jwk.x), Encoding.AccountAddress);\n  if (address != null && signer !== address) {\n    throw new ArgumentError('address', `${signer} (\"sub_jwk\")`, address);\n  }\n  if (\n    signer != null &&\n    !verifySignature(Buffer.from(`${h}.${payloadEncoded}`), fromBase64Url(signature), signer)\n  ) {\n    throw new InvalidSignatureError(`JWT is not signed by ${signer}`);\n  }\n  return { payload, signer };\n}\n\n/**\n * Check is string a JWT or not. Use to validate the user input.\n * @param maybeJwt - A string to check\n * @returns True if argument is a JWT\n * @category JWT\n */\nexport function isJwt(maybeJwt: string): maybeJwt is Jwt {\n  try {\n    unpackJwt(maybeJwt as Jwt);\n    return true;\n  } catch (error) {\n    return false;\n  }\n}\n\n/**\n * Throws an error if argument is not JWT. Use to ensure that a value is JWT.\n * @param maybeJwt - A string to check\n * @category JWT\n */\nexport function ensureJwt(maybeJwt: string): asserts maybeJwt is Jwt {\n  unpackJwt(maybeJwt as Jwt);\n}\n\n/**\n * Check is JWT signed by address from arguments or \"sub_jwk\"\n * @param jwt - JWT to check\n * @param address - Address to check signature\n * @category JWT\n */\nexport function verifyJwt(jwt: Jwt, address?: Encoded.AccountAddress): boolean {\n  try {\n    const { signer } = unpackJwt(jwt, address);\n    return signer != null;\n  } catch (error) {\n    return false;\n  }\n}\n","import SchemaTypes from '../SchemaTypes.js';\nimport address from '../field-types/address.js';\nimport nameId from '../field-types/name-id.js';\nimport shortUIntConst from '../field-types/short-u-int-const.js';\nimport { Encoded, Encoding, decode, encode } from '../../../utils/encoder.js';\n\n/**\n * @category delegation signature\n */\nexport enum DelegationTag {\n  /**\n   * Delegation of all AENS names to a contract\n   */\n  AensWildcard = 1,\n  /**\n   * Delegation of an AENS name to a contract\n   */\n  AensName = 2,\n  /**\n   * Delegation of AENS preclaim to a contract\n   */\n  AensPreclaim = 3,\n  /**\n   * Delegation of oracle operations to a contract\n   */\n  Oracle = 4,\n  /**\n   * Delegation of oracle query to a contract\n   */\n  OracleResponse = 5,\n}\n\nconst oracleAddressField = address(Encoding.OracleAddress);\n/**\n * Oracle query ID to reply by a contract\n */\nconst queryIdField = {\n  serialize(value: Encoded.OracleQueryId): Buffer {\n    return oracleAddressField.serialize(encode(decode(value), Encoding.OracleAddress));\n  },\n  deserialize(value: Buffer): Encoded.OracleQueryId {\n    return encode(decode(oracleAddressField.deserialize(value)), Encoding.OracleQueryId);\n  },\n} as const;\n\n/**\n * Address of a contract to delegate permissions to\n */\nconst contractAddress = address(Encoding.ContractAddress);\n\n/**\n * @see {@link https://github.com/aeternity/protocol/blob/8a9d1d1206174627f6aaef86159dc9c643080653/contracts/fate.md#from-ceres-serialized-signature-data}\n */\nexport const schemas = [\n  {\n    tag: shortUIntConst(DelegationTag.AensWildcard),\n    version: shortUIntConst(1, true),\n    accountAddress: address(Encoding.AccountAddress),\n    contractAddress,\n  },\n  {\n    tag: shortUIntConst(DelegationTag.AensName),\n    version: shortUIntConst(1, true),\n    accountAddress: address(Encoding.AccountAddress),\n    /**\n     * AENS name to manage by a contract\n     */\n    nameId,\n    contractAddress,\n  },\n  {\n    tag: shortUIntConst(DelegationTag.AensPreclaim),\n    version: shortUIntConst(1, true),\n    accountAddress: address(Encoding.AccountAddress),\n    contractAddress,\n  },\n  {\n    tag: shortUIntConst(DelegationTag.Oracle),\n    version: shortUIntConst(1, true),\n    accountAddress: address(Encoding.AccountAddress),\n    contractAddress,\n  },\n  {\n    tag: shortUIntConst(DelegationTag.OracleResponse),\n    version: shortUIntConst(1, true),\n    queryId: queryIdField,\n    contractAddress,\n  },\n] as const;\n\ntype Schemas = SchemaTypes<typeof schemas>;\nexport type DlgParams = Schemas['TxParams'];\nexport type DlgUnpacked = Schemas['TxUnpacked'];\n","import { Encoded, Encoding } from '../../../utils/encoder.js';\nimport { packRecord, unpackRecord } from '../common.js';\nimport { DelegationTag, schemas } from './schema.js';\nimport { DlgParams, DlgUnpacked } from './schema.generated.js';\n\n/**\n * Pack delegation\n * @category delegation signature\n * @param params - Params of delegation\n * @returns Encoded delegation\n */\nexport function packDelegation(params: DlgParams): Encoded.Bytearray {\n  return packRecord(schemas, DelegationTag, params, {}, Encoding.Bytearray);\n}\n\n/**\n * Unpack delegation\n * @category delegation signature\n * @param encoded - Encoded delegation\n * @param expectedTag - Expected delegation signature type\n * @returns Params of delegation\n */\nexport function unpackDelegation<T extends DelegationTag>(\n  encoded: Encoded.Bytearray,\n  expectedTag?: T,\n): DlgUnpacked & { tag: T } {\n  return unpackRecord(schemas, DelegationTag, encoded, expectedTag, {}) as any;\n}\n","/**\n * Aens methods - routines to interact with the æternity naming system\n *\n * The high-level description of the naming system is\n * https://github.com/aeternity/protocol/blob/master/AENS.md in the protocol\n * repository.\n */\n\nimport BigNumber from 'bignumber.js';\nimport { genSalt, isEncoded } from './utils/crypto.js';\nimport { commitmentHash, isAuctionName, produceNameId } from './tx/builder/helpers.js';\nimport { Tag, AensName } from './tx/builder/constants.js';\nimport { Encoded, Encoding } from './utils/encoder.js';\nimport { LogicError } from './utils/errors.js';\nimport { sendTransaction, SendTransactionOptions } from './send-transaction.js';\nimport { Optional } from './utils/other.js';\nimport { buildTxAsync, BuildTxOptions } from './tx/builder/index.js';\nimport Node from './Node.js';\nimport AccountBase from './account/Base.js';\nimport { AddressEncodings } from './tx/builder/field-types/address.js';\n\ninterface NameRevokeOptions\n  extends BuildTxOptions<Tag.NameRevokeTx, 'nameId' | 'accountId'>,\n    Optional<SendTransactionOptions, 'onAccount' | 'onNode'> {}\n\ninterface KeyPointers {\n  [key: string]: Encoded.Generic<AddressEncodings | Encoding.Bytearray>;\n}\n\ninterface NameUpdateOptions\n  extends BuildTxOptions<Tag.NameUpdateTx, 'nameId' | 'accountId' | 'pointers'>,\n    Optional<SendTransactionOptions, 'onAccount' | 'onNode'> {\n  /**\n   * Get the pointers from the node and merge with provided ones. Pointers with the same key will be\n   * overwritten.\n   */\n  extendPointers?: boolean;\n}\n\ninterface NameTransferOptions\n  extends BuildTxOptions<Tag.NameTransferTx, 'nameId' | 'accountId' | 'recipientId'>,\n    Optional<SendTransactionOptions, 'onAccount' | 'onNode'> {}\n\ninterface NamePreclaimOptions\n  extends BuildTxOptions<Tag.NamePreclaimTx, 'accountId' | 'commitmentId'>,\n    Optional<SendTransactionOptions, 'onAccount' | 'onNode'> {}\n\ninterface NameClaimOptions\n  extends BuildTxOptions<Tag.NameClaimTx, 'accountId' | 'name'>,\n    Optional<SendTransactionOptions, 'onAccount' | 'onNode'> {}\n\nclass NotAuctionNameError extends LogicError {\n  constructor(name: AensName, action: string) {\n    super(`Can't ${action} because ${name} is not an auction name`);\n    this.name = 'NotAuctionNameError';\n  }\n}\n\n/**\n * @category AENS\n * @example\n * ```js\n * const name = new Name('test.chain', aeSdk.getContext())\n * ```\n */\nexport default class Name {\n  #salt?: number;\n\n  /**\n   * @param value - AENS name\n   * @param options - Options\n   * @param options.onNode - Node to use\n   * @param options.onAccount - Account to use\n   */\n  constructor(\n    public readonly value: AensName,\n    public options: { onNode: Node; onAccount: AccountBase } & Omit<\n      NameRevokeOptions &\n        NameUpdateOptions &\n        NameTransferOptions &\n        NamePreclaimOptions &\n        NameClaimOptions,\n      'version'\n    >,\n  ) {\n    this.options = options;\n  }\n\n  /**\n   * Name ID encoded as nm_-prefixed string\n   */\n  get id(): Encoded.Name {\n    return produceNameId(this.value);\n  }\n\n  /**\n   * Revoke a name\n   * @param options - Options\n   * @returns mined transaction details\n   * @example\n   * ```js\n   * await name.revoke({ fee, ttl, nonce })\n   * ```\n   */\n  async revoke(options: NameRevokeOptions = {}): ReturnType<typeof sendTransaction> {\n    const opt = { ...this.options, ...options };\n    const tx = await buildTxAsync({\n      _isInternalBuild: true,\n      ...opt,\n      tag: Tag.NameRevokeTx,\n      nameId: this.value,\n      accountId: opt.onAccount.address,\n    });\n    return sendTransaction(tx, opt);\n  }\n\n  /**\n   * Update a name\n   * @param pointers - Map of pointer keys to corresponding addresses\n   * @param options - Options\n   * @example\n   * ```js\n   * const name = 'test.chain'\n   * const channel = 'ch_2519mBs...'\n   * const pointers = {\n   *   account_pubkey: 'ak_asd23dasdas...,',\n   *   contract_pubkey: 'ct_asdf34fasdasd...',\n   *   [getDefaultPointerKey(channel)]: channel,\n   * }\n   * await name.update(pointers, { nameTtl, ttl, fee, nonce, clientTtl })\n   * ```\n   */\n  async update(\n    pointers: KeyPointers,\n    options: NameUpdateOptions = {},\n  ): ReturnType<typeof sendTransaction> {\n    const { extendPointers, ...opt } = { ...this.options, ...options };\n    const allPointers = {\n      ...(extendPointers === true &&\n        Object.fromEntries(\n          (await opt.onNode.getNameEntryByName(this.value)).pointers.map(({ key, id }) => [\n            key,\n            id,\n          ]),\n        )),\n      ...pointers,\n    };\n\n    const hasRawPointers = Object.values(allPointers).some((v) => isEncoded(v, Encoding.Bytearray));\n\n    const tx = await buildTxAsync({\n      _isInternalBuild: true,\n      ...opt,\n      tag: Tag.NameUpdateTx,\n      version: hasRawPointers ? 2 : 1,\n      nameId: this.value,\n      accountId: opt.onAccount.address,\n      pointers: Object.entries(allPointers).map(\n        ([key, id]: [string, Encoded.Generic<AddressEncodings>]) => ({ key, id }),\n      ),\n    });\n    return sendTransaction(tx, opt);\n  }\n\n  /**\n   * Transfer a name to another account\n   * @param address - Recipient account public key\n   * @param options - Options\n   * @returns mined transaction details\n   * @example\n   * ```js\n   * await name.transfer('ak_asd23dasdas...', { ttl, fee, nonce })\n   * ```\n   */\n  async transfer(\n    address: Encoded.AccountAddress,\n    options: NameTransferOptions = {},\n  ): ReturnType<typeof sendTransaction> {\n    const opt = { ...this.options, ...options };\n    const tx = await buildTxAsync({\n      _isInternalBuild: true,\n      ...opt,\n      tag: Tag.NameTransferTx,\n      nameId: this.value,\n      accountId: opt.onAccount.address,\n      recipientId: address,\n    });\n    return sendTransaction(tx, opt);\n  }\n\n  /**\n   * Query the AENS name info from the node and return the object with info\n   * @param options - Options\n   * @example\n   * ```js\n   * const nameEntry = await name.getState()\n   * console.log(nameEntry.owner)\n   * ```\n   */\n  async getState(options: { onNode?: Node } = {}): Promise<\n    Awaited<ReturnType<Node['getNameEntryByName']>> & {\n      id: Encoded.Name;\n      owner: Encoded.AccountAddress;\n    }\n  > {\n    const onNode = options.onNode ?? this.options.onNode;\n    const nameEntry = await onNode.getNameEntryByName(this.value);\n    return {\n      ...nameEntry,\n      id: nameEntry.id as Encoded.Name,\n      owner: nameEntry.owner as Encoded.AccountAddress,\n    };\n  }\n\n  /**\n   * Query the AENS auction info from the node and return the object with info\n   * @param options - Options\n   * @example\n   * ```js\n   * const auctionEntry = await name.getAuctionState()\n   * console.log(auctionEntry.highestBidder)\n   * ```\n   */\n  async getAuctionState(options: { onNode?: Node } = {}): Promise<\n    Awaited<ReturnType<Node['getAuctionEntryByName']>> & {\n      id: Encoded.Name;\n      highestBidder: Encoded.AccountAddress;\n    }\n  > {\n    if (!isAuctionName(this.value)) throw new NotAuctionNameError(this.value, 'get auction state');\n    const onNode = options.onNode ?? this.options.onNode;\n    const nameEntry = await onNode.getAuctionEntryByName(this.value);\n    return {\n      ...nameEntry,\n      id: nameEntry.id as Encoded.Name,\n      highestBidder: nameEntry.highestBidder as Encoded.AccountAddress,\n    };\n  }\n\n  /**\n   *\n   * @param nameTtl - represents in number of blocks (max and default is 180000)\n   * @param options - Options\n   * @returns mined transaction details\n   */\n  async extendTtl(\n    nameTtl?: number,\n    options: Omit<Parameters<Name['update']>[1], 'extendPointers' | 'nameTtl'> = {},\n  ): ReturnType<Name['update']> {\n    return this.update({}, { ...options, nameTtl, extendPointers: true });\n  }\n\n  /**\n   * Claim a name.\n   *\n   * Since the Ceres protocol upgrade, it is possible to claim a name without preclaiming it.\n   * If you preclaim, wait for at least 1 key block to be mined before exposing a name in the\n   * NameClaimTx to ensure that nobody can front-run the claim.\n   *\n   * @param options - options\n   * @returns mined transaction details\n   * @example\n   * ```js\n   * await name.claim({ ttl, fee, nonce, nameFee })\n   * ```\n   */\n  async claim(options: NameClaimOptions = {}): ReturnType<typeof sendTransaction> {\n    const opt = { ...this.options, ...options };\n    const tx = await buildTxAsync({\n      _isInternalBuild: true,\n      nameSalt: this.#salt,\n      ...opt,\n      tag: Tag.NameClaimTx,\n      accountId: opt.onAccount.address,\n      name: this.value,\n    });\n    return sendTransaction(tx, opt);\n  }\n\n  /**\n   * Preclaim a name. This sends a commitment hash (derived from the name and a random salt) to\n   * the node. Preclaiming was required to claim a name before the Ceres protocol upgrade.\n   * After the upgrade, preclaiming is optional but still available for added security if you\n   * want to claim a non-auction name.\n   * @param options - Options\n   * @example\n   * ```js\n   * await name.preclaim({ ttl, fee, nonce })\n   * ```\n   */\n  async preclaim(\n    options: NamePreclaimOptions = {},\n  ): Promise<Awaited<ReturnType<typeof sendTransaction>> & { nameSalt: number }> {\n    const opt = { ...this.options, ...options };\n    const nameSalt = genSalt();\n    const tx = await buildTxAsync({\n      _isInternalBuild: true,\n      ...opt,\n      tag: Tag.NamePreclaimTx,\n      accountId: opt.onAccount.address,\n      commitmentId: commitmentHash(this.value, nameSalt),\n    });\n    const result = await sendTransaction(tx, opt);\n    this.#salt = nameSalt;\n    return { ...result, nameSalt };\n  }\n\n  /**\n   * Bid to name auction\n   * @param nameFee - Name fee (bid fee)\n   * @param options - Options\n   * @returns mined transaction details\n   * @example\n   * ```js\n   * const bidFee = computeBidFee(name.value, { startFee, increment: 0.42 })\n   * await name.bid(213109412839123, { ttl, fee, nonce })\n   * ```\n   */\n  async bid(\n    nameFee: number | string | BigNumber,\n    options: Omit<NameClaimOptions, 'nameFee'> = {},\n  ): ReturnType<typeof sendTransaction> {\n    if (!isAuctionName(this.value)) throw new NotAuctionNameError(this.value, 'make a bid');\n    const opt = { ...this.options, ...options };\n    const tx = await buildTxAsync({\n      _isInternalBuild: true,\n      ...opt,\n      tag: Tag.NameClaimTx,\n      accountId: opt.onAccount.address,\n      nameSalt: 0,\n      name: this.value,\n      nameFee,\n    });\n    return sendTransaction(tx, opt);\n  }\n}\n","import TypeResolver from './TypeResolver.js'\nimport TypeResolveError from './Errors/TypeResolveError.js'\nimport {FateTypeEvent} from './FateTypes.js'\n\nconst isObject = (value) => {\n    return value && typeof value === 'object' && value.constructor === Object\n}\n\nconst isOption = ({type}) => {\n    let key = type\n    let _\n    if (isObject(key)) {\n        [[key, _]] = Object.entries(key)\n    }\n\n    return key === 'option'\n}\n\nclass AciTypeResolver extends TypeResolver {\n    constructor(aci) {\n        super()\n\n        this.aci = aci\n    }\n\n    getCallTypes(contract, funName) {\n        const funcAci = this.getNamespaceAci(contract).functions.find(e => e.name === funName)\n\n        if (funcAci) {\n            const types = funcAci.arguments.map(e => this.resolveType(e.type))\n            const options = funcAci.arguments.filter(isOption)\n            return {\n                types,\n                required: types.length - options.length,\n            }\n        }\n\n        if (funName === 'init') {\n            return {types: [], required: 0}\n        }\n\n        throw new TypeResolveError(`Unknown function ${funName}`)\n    }\n\n    getReturnType(contract, funName) {\n        if (funName === 'init') {\n            return this.resolveType('void')\n        }\n\n        const funcAci = this.getNamespaceAci(contract).functions.find(e => e.name === funName)\n\n        if (!funcAci) {\n            throw new TypeResolveError(`Unknown function ${funName}`)\n        }\n\n        return this.resolveType(funcAci.returns)\n    }\n\n    getEventType(contract, topics) {\n        const aci = this.getNamespaceAci(contract)\n\n        if (!aci.hasOwnProperty('event')) {\n            throw new TypeResolveError('Missing event declaration')\n        }\n\n        return FateTypeEvent(this.resolveType(aci.event), topics)\n    }\n\n    isCustomType(type) {\n        if (typeof type !== 'string') {\n            return false\n        }\n\n        if (this.isStdType(type)) {\n            return false\n        }\n\n        const [namespace, _localType] = type.split('.')\n        const namespaceData = this.getNamespaceAci(namespace)\n\n        return !!namespaceData\n    }\n\n    isStdType(type) {\n        if (type === 'Set.set') {\n            return true\n        }\n\n        return false\n    }\n\n    getNamespaceAci(name) {\n        for (const e of this.aci) {\n            const [[_type, data]] = Object.entries(e)\n            if (data.name === name) {\n                return data\n            }\n        }\n\n        return null\n    }\n\n    resolveTypeDef(type, params = []) {\n        const [namespace, localType] = type.split('.')\n        const namespaceData = this.getNamespaceAci(namespace)\n\n        // not a custom type\n        if (!namespaceData) {\n            throw new TypeResolveError('Unknown namespace for ' + JSON.stringify(type))\n        }\n\n        if (namespaceData.name === type) {\n            return ['contract_pubkey', []]\n        }\n\n        const def = [\n            /**\n             * @deprecated use ACIs generated by aesophia@^7.1.0\n             * TODO remove `type_defs` in next major release\n             */\n            ...namespaceData.typedefs || namespaceData.type_defs,\n            ...namespaceData.state ? [{\n                name: 'state',\n                typedef: namespaceData.state,\n                vars: []\n            }] : []\n        ].find(e => e.name === localType)\n\n        if (!def) {\n            throw new TypeResolveError('Unknown type definition: ' + JSON.stringify(type))\n        }\n\n        const vars = {}\n        def.vars.forEach((e, i) => {\n            const [[_, k]] = Object.entries(e)\n            vars[k] = params[i]\n        })\n\n        const typeDef = vars.hasOwnProperty(def.typedef) ? vars[def.typedef] : def.typedef\n\n        return [typeDef, vars]\n    }\n}\n\nexport default AciTypeResolver\n","import ApiEncoder from './ApiEncoder.js'\nimport CompositeDataFactory from './DataFactory/CompositeDataFactory.js'\nimport CanonicalMapper from './Mapper/CanonicalMapper.js'\n\nclass EventEncoder {\n    constructor() {\n        this._dataFactory = new CompositeDataFactory()\n        this._apiEncoder = new ApiEncoder()\n        this._canonicalMapper = new CanonicalMapper()\n    }\n\n    decodeWithType(data, type) {\n        const binData = this._apiEncoder.decode(data)\n        const event = this._dataFactory.create(type, binData)\n\n        return this._canonicalMapper.toCanonical(event)\n    }\n}\n\nexport default EventEncoder\n","class EncoderError extends Error {\n    constructor(message) {\n        super(message)\n        this.name = 'EncoderError'\n    }\n}\n\nexport default EncoderError\n","import ContractByteArrayEncoder from './ContractByteArrayEncoder.js'\nimport AciTypeResolver from './AciTypeResolver.js'\nimport ApiEncoder from './ApiEncoder.js'\nimport EventEncoder from './EventEncoder.js'\nimport CanonicalMapper from './Mapper/CanonicalMapper.js'\nimport {FateTypeCalldata, FateTypeString} from './FateTypes.js'\nimport EncoderError from './Errors/EncoderError.js'\n\n/**\n * @deprecated Use AciContractCallEncoder\n */\nclass Encoder {\n    /**\n     * Creates contract encoder\n     *\n     * @example\n     * const ACI = require('./Test.json')\n     * const encoder = new Encoder(ACI)\n     *\n     * @param {Object} aci - The contract ACI in a canonical form as POJO.\n    */\n    constructor(aci) {\n        /** @type {ContractByteArrayEncoder} */\n        this._byteArrayEncoder = new ContractByteArrayEncoder()\n\n        /** @type {AciTypeResolver} */\n        this._typeResolver = new AciTypeResolver(aci)\n\n        /** @type {ApiEncoder} */\n        this._apiEncoder = new ApiEncoder()\n\n        /** @type {EventEncoder} */\n        this._eventEncoder = new EventEncoder()\n\n        /** @type {CanonicalMapper} */\n        this._canonicalMapper = new CanonicalMapper()\n    }\n\n    /**\n     * Creates contract calldata\n     *\n     * @example\n     * const encoded = encoder.encode('Test', 'test_string', [\"whoolymoly\"])\n     * console.log(`Encoded data: ${encoded}`)\n     * // Outputs:\n     * // Encoded data: cb_KxHwzCuVGyl3aG9vbHltb2x5zwMSnw==\n     *\n     * @param {string} contract - The contract name as defined in the ACI.\n     * @param {string} funName - The function name as defined in the ACI.\n     * @param {Array} args - An array of call arguments as Javascript data structures. See README.md\n     * @returns {string} Encoded calldata\n    */\n    encode(contract, funName, args) {\n        const {types, required} = this._typeResolver.getCallTypes(contract, funName)\n\n        if (args.length > types.length || args.length < required) {\n            throw new EncoderError(\n                'Non matching number of arguments. '\n                + `${funName} expects between ${required} and ${types.length} number of arguments but got ${args.length}`\n            )\n        }\n\n        // fill in the options arguments\n        while (args.length < types.length) {\n            args.push(undefined)\n        }\n\n        return this._byteArrayEncoder.encode(FateTypeCalldata(funName, types), args)\n    }\n\n    /**\n     * Decodes successful (type = ok) contract call return data\n     *\n     * @example\n     * const decoded = encoder.decode('Test', 'test_string', 'cb_KXdob29seW1vbHlGazSE')\n     * console.log(`Decoded data: ${decoded}`)\n     * // Outputs:\n     * // Decoded data: whoolymoly\n     *\n     * @param {string} contract - The contract name as defined in the ACI.\n     * @param {string} funName - The function name as defined in the ACI.\n     * @param {string} data - The call return value in a canonical format.\n     * @returns {boolean|string|BigInt|Array|Map|Object}\n     *  Decoded value as Javascript data structures. See README.md\n    */\n    decode(contract, funName, data) {\n        const type = this._typeResolver.getReturnType(contract, funName)\n\n        return this._byteArrayEncoder.decodeWithType(data, type)\n    }\n\n    /**\n     * Decodes arbitrary contract bytearray data.\n     *\n     * Note that:\n     * - Record keys are lost\n     * - Variant constructor names are lost\n     * - Any user type information is lost\n     * - STL type information is lost: i.e. Chain, AENS, Set, BLS12_381\n     *\n     * @example\n     * const decoded = encoder.decodeContractByteArray('cb_KXdob29seW1vbHlGazSE')\n     * console.log(`Decoded data: ${decoded}`)\n     * // Outputs:\n     * // Decoded data: whoolymoly\n     *\n     * @param {string} data - Contract bytearray data in a canonical format.\n     * @returns {boolean|string|BigInt|Array|Map|Object}\n     *  Decoded value as Javascript data structures. See README.md\n    */\n    decodeContractByteArray(data) {\n        return this._byteArrayEncoder.decode(data)\n    }\n\n    /* eslint-disable max-len */\n    /**\n     * Decodes a string\n     *\n     *\n     * @example\n     * const error = encoder.decodeString('cb_VHlwZSBlcnJvciBvbiBjYWxsOiBbe2J5dGVzLDw8MjQwLDIsLi4uPj59XSBpcyBub3Qgb2YgdHlwZSBbe2J5dGVzLDMyfV3EtJjU')\n     * console.log('Error: ' + error.toString())\n     * // Outputs:\n     * // Error: Type error on call: [{bytes,<<240,2,...>>}] is not of type [{bytes,32}]\n     *\n     * @param {string} data - The encoded string.\n     * @returns {Uint8Array} Decoded value as byte array.\n    */\n    decodeString(data) {\n        const decoder = new TextDecoder()\n        const bytes = this._apiEncoder.decodeWithType(data, 'contract_bytearray')\n\n        return decoder.decode(bytes)\n    }\n    /* eslint-enable max-len */\n\n    /**\n     * Decodes a FATE string\n     *\n     * @example\n     * const revert = encoder.decodeFateString('cb_OXJlcXVpcmUgZmFpbGVkarP9mg==')\n     * console.log('Revert: ' + revert)\n     * // Outputs:\n     * // Revert: require failed\n     *\n     * @param {string} data - The FATE encoded string.\n     * @returns {string} Decoded string value.\n    */\n    decodeFateString(data) {\n        return this._byteArrayEncoder.decodeWithType(data, FateTypeString())\n    }\n\n    /**\n     * Decodes contract event\n     *\n     * @example\n     * const data = encoder.decodeEvent('Test', 'cb_dHJpZ2dlcmVk1FYuYA==', [\n     *     34853523142692495808479485503424878684430196596020091237715106250497712463899n,\n     *     17\n     * ])\n     * console.log(data)\n     * // Outputs:\n     * // {EventTwo: [17n, 'triggered']}\n     *\n     * @param {string} contract - The contract name as defined in the ACI.\n     * @param {string} encodedData - Event encoded data\n     * @param {Array} topics - A list of event topics.\n     * First element should be the implicit topic that carry the event constructor name.\n     */\n    decodeEvent(contract, data, topics) {\n        const type = this._typeResolver.getEventType(contract, topics)\n\n        return this._eventEncoder.decodeWithType(data, type)\n    }\n}\n\nexport default Encoder\n","import InternalEncoder from '../Encoder.js'\n\n/**\n * @deprecated Use AciContractCallEncoder\n */\nclass Encoder {\n    /**\n     * Creates contract encoder\n     *\n     * @example\n     * const ACI = require('./Test.json')\n     * const encoder = new Encoder(ACI)\n     *\n     * @param {Object} aci - The contract ACI in a canonical form as POJO.\n    */\n    constructor(aci) {\n        this._internalEncoder = new InternalEncoder(aci)\n    }\n\n    /**\n     * Creates contract calldata\n     *\n     * @example\n     * const encoded = encoder.encode('Test', 'test_string', [\"whoolymoly\"])\n     * console.log(`Encoded data: ${encoded}`)\n     * // Outputs:\n     * // Encoded data: cb_KxHwzCuVGyl3aG9vbHltb2x5zwMSnw==\n     *\n     * @param {string} contract - The contract name as defined in the ACI.\n     * @param {string} funName - The function name as defined in the ACI.\n     * @param {Array} args - An array of call arguments as Javascript data structures. See README.md\n     * @returns {string} Encoded calldata\n    */\n    encode(contract, funName, args) {\n        return this._internalEncoder.encode(contract, funName, args)\n    }\n\n    /**\n     * Decodes successful (type = ok) contract call return data\n     *\n     * @example\n     * const decoded = encoder.decode('Test', 'test_string', 'cb_KXdob29seW1vbHlGazSE')\n     * console.log(`Decoded data: ${decoded}`)\n     * // Outputs:\n     * // Decoded data: whoolymoly\n     *\n     * @param {string} contract - The contract name as defined in the ACI.\n     * @param {string} funName - The function name as defined in the ACI.\n     * @param {string} data - The call return value in a canonical format.\n     * @returns {boolean|string|BigInt|Array|Map|Object}\n     *  Decoded value as Javascript data structures. See README.md\n    */\n    decode(contract, funName, data) {\n        return this._internalEncoder.decode(contract, funName, data)\n    }\n\n    /**\n     * Decodes arbitrary contract bytearray data.\n     *\n     * Note that:\n     * - Record keys are lost\n     * - Variant constructor names are lost\n     * - Any user type information is lost\n     * - STL type information is lost: i.e. Chain, AENS, Set, BLS12_381\n     *\n     * @example\n     * const decoded = encoder.decodeContractByteArray('cb_KXdob29seW1vbHlGazSE')\n     * console.log(`Decoded data: ${decoded}`)\n     * // Outputs:\n     * // Decoded data: whoolymoly\n     *\n     * @param {string} data - Contract bytearray data in a canonical format.\n     * @returns {boolean|string|BigInt|Array|Map|Object}\n     *  Decoded value as Javascript data structures. See README.md\n    */\n    decodeContractByteArray(data) {\n        return this._internalEncoder.decodeContractByteArray(data)\n    }\n\n    /* eslint-disable max-len */\n    /**\n     * Decodes a string\n     *\n     *\n     * @example\n     * const error = encoder.decodeString('cb_VHlwZSBlcnJvciBvbiBjYWxsOiBbe2J5dGVzLDw8MjQwLDIsLi4uPj59XSBpcyBub3Qgb2YgdHlwZSBbe2J5dGVzLDMyfV3EtJjU')\n     * console.log('Error: ' + error.toString())\n     * // Outputs:\n     * // Error: Type error on call: [{bytes,<<240,2,...>>}] is not of type [{bytes,32}]\n     *\n     * @param {string} data - The encoded string.\n     * @returns {Uint8Array} Decoded value as byte array.\n    */\n    decodeString(data) {\n        return this._internalEncoder.decodeString(data)\n    }\n    /* eslint-enable max-len */\n\n    /**\n     * Decodes a FATE string\n     *\n     * @example\n     * const revert = encoder.decodeFateString('cb_OXJlcXVpcmUgZmFpbGVkarP9mg==')\n     * console.log('Revert: ' + revert)\n     * // Outputs:\n     * // Revert: require failed\n     *\n     * @param {string} data - The FATE encoded string.\n     * @returns {string} Decoded string value.\n    */\n    decodeFateString(data) {\n        return this._internalEncoder.decodeFateString(data)\n    }\n\n    /**\n     * Decodes contract event\n     *\n     * @example\n     * const data = encoder.decodeEvent('Test', 'cb_dHJpZ2dlcmVk1FYuYA==', [\n     *     34853523142692495808479485503424878684430196596020091237715106250497712463899n,\n     *     17\n     * ])\n     * console.log(data)\n     * // Outputs:\n     * // {EventTwo: [17n, 'triggered']}\n     *\n     * @param {string} contract - The contract name as defined in the ACI.\n     * @param {string} encodedData - Event encoded data\n     * @param {Array} topics - A list of event topics.\n     * First element should be the implicit topic that carry the event constructor name.\n     */\n    decodeEvent(contract, data, topics) {\n        return this._internalEncoder.decodeEvent(contract, data, topics)\n    }\n}\n\nexport default Encoder\n","/**\n * Contract module - routines to interact with the æternity contract\n *\n * High level documentation of the contracts are available at\n * https://github.com/aeternity/protocol/tree/master/contracts and\n */\n\nimport { Encoder as Calldata } from '@aeternity/aepp-calldata';\nimport { Tag, AensName, DRY_RUN_ACCOUNT } from '../tx/builder/constants.js';\nimport {\n  buildContractIdByContractTx,\n  unpackTx,\n  buildTxAsync,\n  BuildTxOptions,\n  buildTxHash,\n} from '../tx/builder/index.js';\nimport { decode, Encoded } from '../utils/encoder.js';\nimport {\n  MissingContractDefError,\n  MissingContractAddressError,\n  InactiveContractError,\n  BytecodeMismatchError,\n  DuplicateContractError,\n  MissingFunctionNameError,\n  InvalidMethodInvocationError,\n  NotPayableFunctionError,\n  TypeError,\n  NodeInvocationError,\n  IllegalArgumentError,\n  NoSuchContractFunctionError,\n  MissingEventDefinitionError,\n  AmbiguousEventDefinitionError,\n  UnexpectedTsError,\n  InternalError,\n  NoWalletConnectedError,\n  ContractError,\n} from '../utils/errors.js';\nimport { hash as calcHash } from '../utils/crypto.js';\nimport {\n  ContractCallObject as NodeContractCallObject,\n  Event as NodeEvent,\n} from '../apis/node/index.js';\nimport CompilerBase, { Aci } from './compiler/Base.js';\nimport Node from '../Node.js';\nimport { getAccount, resolveName, txDryRun } from '../chain.js';\nimport { sendTransaction, SendTransactionOptions } from '../send-transaction.js';\nimport { TxUnpacked } from '../tx/builder/schema.generated.js';\nimport { Optional, isAccountNotFoundError } from '../utils/other.js';\nimport { isName, produceNameId } from '../tx/builder/helpers.js';\n\ntype ContractAci = NonNullable<Aci[0]['contract']>;\ntype FunctionAci = ContractAci['functions'][0];\n\ninterface Event extends NodeEvent {\n  address: Encoded.ContractAddress;\n  data: Encoded.ContractBytearray;\n}\n\nexport interface ContractCallObject extends NodeContractCallObject {\n  returnValue: Encoded.ContractBytearray;\n  log: Event[];\n}\n\ninterface DecodedEvent {\n  name: string;\n  args: unknown[];\n  contract: {\n    name: string;\n    address: Encoded.ContractAddress;\n  };\n}\n\ntype TxData = Awaited<ReturnType<typeof sendTransaction>>;\n\ninterface SendAndProcessReturnType {\n  result?: ContractCallObject;\n  hash: TxData['hash'];\n  tx: TxUnpacked & { tag: Tag.SignedTx | Tag.ContractCallTx | Tag.ContractCreateTx };\n  txData: TxData;\n  rawTx: Encoded.Transaction;\n}\n\n/**\n * @category contract\n */\nexport interface ContractMethodsBase {\n  [key: string]: (...args: any[]) => any;\n}\n\ntype MethodsToContractApi<M extends ContractMethodsBase> = {\n  [Name in keyof M]: M[Name] extends (...args: infer Args) => infer Ret\n    ? (\n        ...args: [\n          ...Args,\n          ...(\n            | []\n            | [\n                Name extends 'init'\n                  ? Parameters<Contract<M>['$deploy']>[1]\n                  : Parameters<Contract<M>['$call']>[2],\n              ]\n          ),\n        ]\n      ) => Promise<\n        Omit<Awaited<ReturnType<Contract<M>['$call']>>, 'decodedResult'> & {\n          // TODO: accurate would be to add `| undefined` because of `waitMined`, but better to drop `waitMined`\n          decodedResult: Ret;\n        }\n      >\n    : never;\n};\n\n/**\n * @category contract\n */\ntype ContractWithMethods<M extends ContractMethodsBase> = Contract<M> & MethodsToContractApi<M>;\n\ntype MethodNames<M extends ContractMethodsBase> = (keyof M & string) | 'init';\n\ntype MethodParameters<M extends ContractMethodsBase, Fn extends MethodNames<M>> = Fn extends 'init'\n  ? M extends { init: any }\n    ? Parameters<M['init']>\n    : []\n  : Parameters<M[Fn]>;\n\ninterface GetContractNameByEventOptions {\n  contractAddressToName?: { [key: Encoded.ContractAddress]: string };\n}\n\ninterface GetCallResultByHashReturnType<M extends ContractMethodsBase, Fn extends MethodNames<M>> {\n  decodedResult: ReturnType<M[Fn]>;\n  decodedEvents?: ReturnType<Contract<M>['$decodeEvents']>;\n}\n\n/**\n * Generate contract ACI object with predefined js methods for contract usage - can be used for\n * creating a reference to already deployed contracts\n * @category contract\n * @param options - Options object\n * @returns JS Contract API\n * @example\n * ```js\n * const contractIns = await Contract.initialize({ ...aeSdk.getContext(), sourceCode })\n * await contractIns.$deploy([321]) or await contractIns.init(321)\n * const callResult = await contractIns.$call('setState', [123])\n * const staticCallResult = await contractIns.$call('setState', [123], { callStatic: true })\n * ```\n * Also you can call contract like: `await contractIns.setState(123, options)`\n * Then sdk decide to make on-chain or static call (dry-run API) transaction based on function is\n * stateful or not\n */\nclass Contract<M extends ContractMethodsBase> {\n  /**\n   * Compile contract\n   * @returns bytecode\n   */\n  async $compile(): Promise<Encoded.ContractBytearray> {\n    if (this.$options.bytecode != null) return this.$options.bytecode;\n    if (this.$options.onCompiler == null)\n      throw new IllegalArgumentError(\"Can't compile without compiler\");\n    if (this.$options.sourceCode != null) {\n      const { bytecode } = await this.$options.onCompiler.compileBySourceCode(\n        this.$options.sourceCode,\n        this.$options.fileSystem,\n      );\n      this.$options.bytecode = bytecode;\n    }\n    if (this.$options.sourceCodePath != null) {\n      const { bytecode } = await this.$options.onCompiler.compile(this.$options.sourceCodePath);\n      this.$options.bytecode = bytecode;\n    }\n    if (this.$options.bytecode == null) {\n      throw new IllegalArgumentError(\"Can't compile without sourceCode and sourceCodePath\");\n    }\n    return this.$options.bytecode;\n  }\n\n  #getCallResult<Fn extends MethodNames<M>>(\n    { returnType, returnValue, log }: ContractCallObject,\n    fnName: Fn,\n    transaction: Encoded.Transaction | undefined,\n    options: Parameters<Contract<M>['$decodeEvents']>[1],\n  ): GetCallResultByHashReturnType<M, Fn> {\n    let message: string;\n    switch (returnType) {\n      case 'ok': {\n        const fnAci = this.#getFunctionAci(fnName);\n        return {\n          decodedResult: this._calldata.decode(this._name, fnAci.name, returnValue),\n          decodedEvents: this.$decodeEvents(log, options),\n        };\n      }\n      case 'revert':\n        message = this._calldata.decodeFateString(returnValue);\n        break;\n      case 'error':\n        message = decode(returnValue).toString();\n        if (/Expected \\d+ arguments, got \\d+/.test(message)) {\n          throw new BytecodeMismatchError('ACI', `. Error provided by node: \"${message}\".`);\n        }\n        if (/Trying to call undefined function: <<\\d+,\\d+,\\d+,\\d+>>/.test(message)) {\n          throw new BytecodeMismatchError(\n            'ACI',\n            `. Error provided by node: \"${message}\", function name: ${fnName}.`,\n          );\n        }\n        break;\n      default:\n        throw new InternalError(`Unknown return type: ${returnType}`);\n    }\n    throw new NodeInvocationError(message, transaction);\n  }\n\n  async #sendAndProcess<Fn extends MethodNames<M>>(\n    tx: Encoded.Transaction,\n    fnName: Fn,\n    options: SendTransactionOptions & Parameters<Contract<M>['$getCallResultByTxHash']>[2],\n  ): Promise<SendAndProcessReturnType & Partial<GetCallResultByHashReturnType<M, Fn>>> {\n    const txData = await sendTransaction(tx, { ...this.$options, ...options });\n    return {\n      hash: txData.hash,\n      tx: unpackTx<Tag.ContractCallTx | Tag.ContractCreateTx>(txData.rawTx),\n      txData,\n      rawTx: txData.rawTx,\n      // TODO: disallow `waitMined: false` to make `decodedResult` required\n      ...(txData.blockHeight != null &&\n        (await this.$getCallResultByTxHash(txData.hash, fnName, options))),\n    };\n  }\n\n  async $getCallResultByTxHash<Fn extends MethodNames<M>>(\n    hash: Encoded.TxHash,\n    fnName: Fn,\n    options?: Parameters<Contract<M>['$decodeEvents']>[1],\n  ): Promise<GetCallResultByHashReturnType<M, Fn> & { result: ContractCallObject }> {\n    const { callInfo } = await this.$options.onNode.getTransactionInfoByHash(hash);\n    if (callInfo == null) {\n      throw new ContractError(`callInfo is not available for transaction ${hash}`);\n    }\n    const callInfoTyped = callInfo as ContractCallObject;\n    return {\n      ...this.#getCallResult(callInfoTyped, fnName, undefined, options),\n      result: callInfoTyped,\n    };\n  }\n\n  async _estimateGas<Fn extends MethodNames<M>>(\n    name: Fn,\n    params: MethodParameters<M, Fn>,\n    options: Omit<Parameters<Contract<M>['$call']>[2], 'callStatic'> = {},\n  ): Promise<number> {\n    const { result } = await this.$call(name, params, { ...options, callStatic: true });\n    if (result == null) throw new UnexpectedTsError();\n    const { gasUsed } = result;\n    // taken from https://github.com/aeternity/aepp-sdk-js/issues/1286#issuecomment-977814771\n    return Math.floor(gasUsed * 1.25);\n  }\n\n  /**\n   * Deploy contract\n   * @param params - Contract init function arguments array\n   * @param options - Options\n   * @returns deploy info\n   */\n  async $deploy(\n    params: MethodParameters<M, 'init'>,\n    options?: Parameters<Contract<M>['$call']>[2] &\n      Partial<BuildTxOptions<Tag.ContractCreateTx, 'ownerId' | 'code' | 'callData'>>,\n  ): Promise<\n    Omit<SendAndProcessReturnType, 'hash'> & {\n      transaction?: Encoded.TxHash;\n      owner?: Encoded.AccountAddress;\n      address?: Encoded.ContractAddress;\n      decodedEvents?: ReturnType<Contract<M>['$decodeEvents']>;\n    }\n  > {\n    const { callStatic, ...opt } = { ...this.$options, ...options };\n    if (this.$options.bytecode == null) await this.$compile();\n    if (callStatic === true) return this.$call('init', params, { ...opt, callStatic });\n    if (this.$options.address != null) throw new DuplicateContractError();\n\n    if (opt.onAccount == null) throw new IllegalArgumentError(\"Can't deploy without account\");\n    const ownerId = opt.onAccount.address;\n    if (this.$options.bytecode == null)\n      throw new IllegalArgumentError(\"Can't deploy without bytecode\");\n    const tx = await buildTxAsync({\n      _isInternalBuild: true,\n      ...opt,\n      tag: Tag.ContractCreateTx,\n      gasLimit: opt.gasLimit ?? (await this._estimateGas('init', params, opt)),\n      callData: this._calldata.encode(this._name, 'init', params),\n      code: this.$options.bytecode,\n      ownerId,\n    });\n    const { hash, ...other } = await this.#sendAndProcess(tx, 'init', {\n      ...opt,\n      onAccount: opt.onAccount,\n    });\n    this.$options.address = buildContractIdByContractTx(other.rawTx);\n    return {\n      ...other,\n      ...(other.result?.log != null && {\n        decodedEvents: this.$decodeEvents(other.result.log, opt),\n      }),\n      owner: ownerId,\n      transaction: hash,\n      address: this.$options.address,\n    };\n  }\n\n  /**\n   * Get function schema from contract ACI object\n   * @param name - Function name\n   * @returns function ACI\n   */\n  #getFunctionAci(name: string): FunctionAci {\n    const fn = this.#aciContract.functions.find((f: { name: string }) => f.name === name);\n    if (fn != null) {\n      return fn;\n    }\n    if (name === 'init') {\n      return {\n        arguments: [],\n        name: 'init',\n        payable: false,\n        returns: 'unit',\n        stateful: true,\n      };\n    }\n    throw new NoSuchContractFunctionError(name);\n  }\n\n  /**\n   * Call contract function\n   * @param fn - Function name\n   * @param params - Array of function arguments\n   * @param options - Array of function arguments\n   * @returns CallResult\n   */\n  async $call<Fn extends MethodNames<M>>(\n    fn: Fn,\n    params: MethodParameters<M, Fn>,\n    options: Partial<BuildTxOptions<Tag.ContractCallTx, 'callerId' | 'contractId' | 'callData'>> &\n      Parameters<Contract<M>['$decodeEvents']>[1] &\n      Optional<SendTransactionOptions, 'onAccount' | 'onNode'> &\n      Omit<Parameters<typeof txDryRun>[2], 'onNode'> & { callStatic?: boolean } = {},\n  ): Promise<SendAndProcessReturnType & Partial<GetCallResultByHashReturnType<M, Fn>>> {\n    const { callStatic, top, ...opt } = { ...this.$options, ...options };\n    const fnAci = this.#getFunctionAci(fn);\n    const { address, name } = this.$options;\n    // TODO: call `produceNameId` on buildTx side\n    const contractId = name != null ? produceNameId(name) : address;\n    const { onNode } = opt;\n\n    if (fn == null) throw new MissingFunctionNameError();\n    if (fn === 'init' && callStatic !== true)\n      throw new InvalidMethodInvocationError('\"init\" can be called only via dryRun');\n    if (fn !== 'init' && opt.amount != null && Number(opt.amount) > 0 && !fnAci.payable) {\n      throw new NotPayableFunctionError(opt.amount, fn);\n    }\n\n    let callerId;\n    try {\n      if (opt.onAccount == null) throw new InternalError('Use fallback account');\n      callerId = opt.onAccount.address;\n    } catch (error) {\n      const useFallbackAccount =\n        callStatic === true &&\n        ((error instanceof TypeError &&\n          error.message ===\n            'Account should be an address (ak-prefixed string), or instance of AccountBase, got undefined instead') ||\n          error instanceof NoWalletConnectedError ||\n          (error instanceof InternalError && error.message === 'Use fallback account'));\n      if (!useFallbackAccount) throw error;\n      callerId = DRY_RUN_ACCOUNT.pub;\n    }\n    const callData = this._calldata.encode(this._name, fn, params);\n\n    if (callStatic === true) {\n      if (opt.nonce == null) {\n        const topOption = top != null && { [typeof top === 'number' ? 'height' : 'hash']: top };\n        const account = await getAccount(callerId, { ...topOption, onNode }).catch((error) => {\n          if (!isAccountNotFoundError(error)) throw error;\n          return { kind: 'basic', nonce: 0 };\n        });\n        opt.nonce = account.kind === 'generalized' ? 0 : account.nonce + 1;\n      }\n\n      const txOpt = { ...opt, onNode, callData };\n      let tx;\n      if (fn === 'init') {\n        if (this.$options.bytecode == null)\n          throw new IllegalArgumentError('Can\\'t dry-run \"init\" without bytecode');\n        tx = await buildTxAsync({\n          ...txOpt,\n          tag: Tag.ContractCreateTx,\n          code: this.$options.bytecode,\n          ownerId: callerId,\n        });\n      } else {\n        if (contractId == null)\n          throw new MissingContractAddressError(\"Can't dry-run contract without address\");\n        tx = await buildTxAsync({\n          ...txOpt,\n          tag: Tag.ContractCallTx,\n          callerId,\n          contractId,\n        });\n      }\n\n      const { callObj, ...dryRunOther } = await txDryRun(tx, callerId, { ...opt, top });\n      if (callObj == null) {\n        throw new InternalError(`callObj is not available for transaction ${tx}`);\n      }\n      const callInfoTyped = callObj as ContractCallObject;\n      return {\n        ...dryRunOther,\n        ...this.#getCallResult(callInfoTyped, fn, tx, opt),\n        tx: unpackTx(tx),\n        result: callInfoTyped,\n        rawTx: tx,\n        hash: buildTxHash(tx),\n        txData: undefined as any,\n      };\n    }\n\n    if (top != null)\n      throw new IllegalArgumentError(\"Can't handle `top` option in on-chain contract call\");\n    if (contractId == null)\n      throw new MissingContractAddressError(\"Can't call contract without address\");\n    const tx = await buildTxAsync({\n      _isInternalBuild: true,\n      ...opt,\n      tag: Tag.ContractCallTx,\n      gasLimit: opt.gasLimit ?? (await this._estimateGas(fn, params, opt)),\n      callerId,\n      contractId,\n      callData,\n    });\n    if (opt.onAccount == null)\n      throw new IllegalArgumentError(\"Can't call contract on chain without account\");\n    return this.#sendAndProcess(tx, fn, { ...opt, onAccount: opt.onAccount });\n  }\n\n  /**\n   * @param ctAddress - Contract address that emitted event\n   * @param nameHash - Hash of emitted event name\n   * @param options - Options\n   * @returns Contract name\n   * @throws {@link MissingEventDefinitionError}\n   * @throws {@link AmbiguousEventDefinitionError}\n   */\n  #getContractNameByEvent(\n    ctAddress: Encoded.ContractAddress,\n    nameHash: BigInt,\n    { contractAddressToName }: GetContractNameByEventOptions,\n  ): string {\n    const addressToName = { ...this.$options.contractAddressToName, ...contractAddressToName };\n    if (addressToName[ctAddress] != null) return addressToName[ctAddress];\n\n    // TODO: consider using a third-party library\n    const isEqual = (a: any, b: any): boolean => JSON.stringify(a) === JSON.stringify(b);\n\n    const contracts = this._aci\n      .map(({ contract }) => contract)\n      .filter((contract) => contract?.event) as ContractAci[];\n    const matchedEvents = contracts\n      .map((contract) => [contract.name, contract.event.variant])\n      .map(([name, events]) =>\n        events.map((event: {}) => [name, Object.keys(event)[0], Object.values(event)[0]]),\n      )\n      .flat()\n      .filter(([, eventName]) => BigInt(`0x${calcHash(eventName).toString('hex')}`) === nameHash)\n      .filter(([, , type], idx, arr) => !arr.slice(0, idx).some((el) => isEqual(el[2], type)));\n    switch (matchedEvents.length) {\n      case 0:\n        throw new MissingEventDefinitionError(nameHash.toString(), ctAddress);\n      case 1:\n        return matchedEvents[0][0];\n      default:\n        throw new AmbiguousEventDefinitionError(ctAddress, matchedEvents);\n    }\n  }\n\n  /**\n   * Decode Events\n   * @param events - Array of encoded events (callRes.result.log)\n   * @param options - Options\n   * @returns DecodedEvents\n   */\n  $decodeEvents(\n    events: Event[],\n    { omitUnknown, ...opt }: { omitUnknown?: boolean } & GetContractNameByEventOptions = {},\n  ): DecodedEvent[] {\n    return events\n      .map((event) => {\n        let contractName;\n        try {\n          contractName = this.#getContractNameByEvent(event.address, event.topics[0], opt);\n        } catch (error) {\n          if ((omitUnknown ?? false) && error instanceof MissingEventDefinitionError) return null;\n          throw error;\n        }\n        const decoded = this._calldata.decodeEvent(contractName, event.data, event.topics);\n        const [name, args] = Object.entries(decoded)[0];\n        return {\n          name,\n          args,\n          contract: {\n            name: contractName,\n            address: event.address,\n          },\n        };\n      })\n      .filter((e: DecodedEvent | null): e is DecodedEvent => e != null);\n  }\n\n  static async initialize<M extends ContractMethodsBase>({\n    onCompiler,\n    onNode,\n    bytecode,\n    aci,\n    address,\n    sourceCodePath,\n    sourceCode,\n    fileSystem,\n    validateBytecode,\n    ...otherOptions\n  }: Omit<ConstructorParameters<typeof Contract>[0], 'aci' | 'address'> & {\n    validateBytecode?: boolean;\n    aci?: Aci;\n    address?: Encoded.ContractAddress | AensName;\n  }): Promise<ContractWithMethods<M>> {\n    if (aci == null && onCompiler != null) {\n      let res;\n      if (sourceCodePath != null) res = await onCompiler.compile(sourceCodePath);\n      if (sourceCode != null) res = await onCompiler.compileBySourceCode(sourceCode, fileSystem);\n      if (res != null) {\n        aci = res.aci;\n        bytecode ??= res.bytecode;\n      }\n    }\n    if (aci == null) throw new MissingContractDefError();\n\n    let name;\n    if (address != null) {\n      address = (await resolveName(address, 'contract_pubkey', {\n        resolveByNode: true,\n        onNode,\n      })) as Encoded.ContractAddress;\n      if (isName(address)) name = address;\n    }\n\n    if (address == null && sourceCode == null && sourceCodePath == null && bytecode == null) {\n      throw new MissingContractAddressError(\"Can't create instance by ACI without address\");\n    }\n\n    if (address != null) {\n      const contract = await onNode.getContract(address);\n      if (contract.active == null) throw new InactiveContractError(address);\n    }\n\n    if (validateBytecode === true) {\n      if (address == null)\n        throw new MissingContractAddressError(\"Can't validate bytecode without contract address\");\n      const onChanBytecode = (await onNode.getContractCode(address)).bytecode;\n      let isValid = false;\n      if (bytecode != null) isValid = bytecode === onChanBytecode;\n      else if (sourceCode != null) {\n        if (onCompiler == null)\n          throw new IllegalArgumentError(\"Can't validate bytecode without compiler\");\n        isValid = await onCompiler.validateBySourceCode(onChanBytecode, sourceCode, fileSystem);\n      } else if (sourceCodePath != null) {\n        if (onCompiler == null)\n          throw new IllegalArgumentError(\"Can't validate bytecode without compiler\");\n        isValid = await onCompiler.validate(onChanBytecode, sourceCodePath);\n      }\n      if (!isValid) {\n        throw new BytecodeMismatchError(\n          (sourceCode ?? sourceCodePath) != null ? 'source code' : 'bytecode',\n        );\n      }\n    }\n\n    return new ContractWithMethods<M>({\n      onCompiler,\n      onNode,\n      sourceCode,\n      sourceCodePath,\n      bytecode,\n      aci,\n      address,\n      name,\n      fileSystem,\n      ...otherOptions,\n    });\n  }\n\n  _aci: Aci;\n\n  readonly #aciContract: ContractAci;\n\n  _name: string;\n\n  _calldata: Calldata;\n\n  $options: Omit<ConstructorParameters<typeof Contract>[0], 'aci'>;\n\n  /**\n   * @param options - Options\n   */\n  constructor({\n    aci,\n    ...otherOptions\n  }: {\n    onCompiler?: CompilerBase;\n    onNode: Node;\n    bytecode?: Encoded.ContractBytearray;\n    aci: Aci;\n    address?: Encoded.ContractAddress;\n    /**\n     * Supported only in Ceres\n     */\n    name?: AensName;\n    sourceCodePath?: Parameters<CompilerBase['compile']>[0];\n    sourceCode?: Parameters<CompilerBase['compileBySourceCode']>[0];\n    fileSystem?: Parameters<CompilerBase['compileBySourceCode']>[1];\n  } & Parameters<Contract<M>['$deploy']>[1]) {\n    this._aci = aci;\n    const aciLast = aci[aci.length - 1];\n    if (aciLast.contract == null) {\n      throw new IllegalArgumentError(\n        `The last 'aci' item should have 'contract' key, got ${Object.keys(aciLast)} keys instead`,\n      );\n    }\n    this.#aciContract = aciLast.contract;\n    this._name = this.#aciContract.name;\n    this._calldata = new Calldata(aci);\n    this.$options = otherOptions;\n\n    /**\n     * Generate proto function based on contract function using Contract ACI schema\n     * All function can be called like:\n     * ```js\n     * await contract.testFunction()\n     * ```\n     * then sdk will decide to use dry-run or send tx\n     * on-chain base on if function stateful or not.\n     * Also, you can manually do that:\n     * ```js\n     * await contract.testFunction({ callStatic: true }) // use call-static (dry-run)\n     * await contract.testFunction({ callStatic: false }) // send tx on-chain\n     * ```\n     */\n    Object.assign(\n      this,\n      Object.fromEntries(\n        this.#aciContract.functions.map(({ name, arguments: aciArgs, stateful }: FunctionAci) => {\n          const callStatic = name !== 'init' && !stateful;\n          return [\n            name,\n            async (...args: any) => {\n              const options = args.length === aciArgs.length + 1 ? args.pop() : {};\n              if (typeof options !== 'object')\n                throw new TypeError(`Options should be an object: ${options}`);\n              if (name === 'init') return this.$deploy(args, { callStatic, ...options });\n              return this.$call(name, args, { callStatic, ...options });\n            },\n          ];\n        }),\n      ),\n    );\n  }\n}\n\ninterface ContractWithMethodsClass {\n  new <M extends ContractMethodsBase>(\n    options: ConstructorParameters<typeof Contract>[0],\n  ): ContractWithMethods<M>;\n  initialize: (typeof Contract)['initialize'];\n}\n\n/**\n * @category contract\n */\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nconst ContractWithMethods: ContractWithMethodsClass = Contract as any;\n\nexport default ContractWithMethods;\n","import { decode, Encoded } from '../utils/encoder.js';\nimport Node from '../Node.js';\n\n/**\n * @category oracle\n */\ntype OracleQueryNode = Awaited<ReturnType<Node['getOracleQueryByPubkeyAndQueryId']>>;\n\n/**\n * @category oracle\n */\nexport interface OracleQuery extends OracleQueryNode {\n  // TODO: type should be corrected in node api\n  id: Encoded.OracleQueryId;\n  decodedQuery: string;\n  decodedResponse: string;\n}\n\nfunction decodeQuery(queryEntry: OracleQueryNode): OracleQuery {\n  return {\n    ...queryEntry,\n    id: queryEntry.id as Encoded.OracleQueryId,\n    decodedQuery: decode(queryEntry.query as Encoded.OracleQuery).toString(),\n    decodedResponse: decode(queryEntry.response as Encoded.OracleResponse).toString(),\n  };\n}\n\n/**\n * This class is needed because `getOracleQuery` would return different values depending on the\n * oracle type.\n * @category oracle\n */\nexport default class OracleBase {\n  /**\n   * @param address - Oracle public key\n   */\n  constructor(\n    public readonly address: Encoded.OracleAddress,\n    public options: { onNode: Node },\n  ) {}\n\n  /**\n   * Get oracle entry from the node\n   * @param options - Options object\n   */\n  async getState(options: { onNode?: Node } = {}): ReturnType<Node['getOracleByPubkey']> {\n    const opt = { ...this.options, ...options };\n    return opt.onNode.getOracleByPubkey(this.address);\n  }\n\n  /**\n   * Get oracle queries from the node\n   * @param options - Options object\n   */\n  async getQueries(options: { onNode?: Node } = {}): Promise<OracleQuery[]> {\n    const opt = { ...this.options, ...options };\n    return (await opt.onNode.getOracleQueriesByPubkey(this.address)).oracleQueries.map(decodeQuery);\n  }\n\n  /**\n   * Get oracle query entry from the node\n   * @param queryId - Oracle query ID\n   * @param options - Options object\n   */\n  async getQuery(\n    queryId: Encoded.OracleQueryId,\n    options: { onNode?: Node } = {},\n  ): Promise<OracleQuery> {\n    const { onNode } = { ...this.options, ...options };\n    const queryEntry = await onNode.getOracleQueryByPubkeyAndQueryId(this.address, queryId);\n    return decodeQuery(queryEntry);\n  }\n}\n","import { buildTxAsync, BuildTxOptions } from '../tx/builder/index.js';\nimport { Tag } from '../tx/builder/constants.js';\nimport { LogicError, UnexpectedTsError } from '../utils/errors.js';\nimport { decode, encode, Encoded, Encoding } from '../utils/encoder.js';\nimport { _getPollInterval } from '../chain.js';\nimport { sendTransaction, SendTransactionOptions } from '../send-transaction.js';\nimport Node from '../Node.js';\nimport AccountBase from '../account/Base.js';\nimport OracleBase, { OracleQuery } from './OracleBase.js';\n\n/**\n * @category oracle\n */\ninterface OracleRegisterOptions\n  extends BuildTxOptions<Tag.OracleRegisterTx, 'accountId' | 'queryFormat' | 'responseFormat'>,\n    Omit<SendTransactionOptions, 'onNode' | 'onAccount'> {}\n\n/**\n * @category oracle\n */\ninterface OracleExtendTtlOptions\n  extends BuildTxOptions<Tag.OracleExtendTx, 'callerId' | 'oracleId'>,\n    Omit<SendTransactionOptions, 'onNode' | 'onAccount'> {}\n\n/**\n * @category oracle\n */\ninterface OracleRespondToQueryOptions\n  extends BuildTxOptions<Tag.OracleRespondTx, 'callerId' | 'oracleId' | 'queryId' | 'response'>,\n    Omit<SendTransactionOptions, 'onNode' | 'onAccount'> {}\n\n/**\n * @category oracle\n */\nexport default class Oracle extends OracleBase {\n  /**\n   * @param account - Account to use as oracle\n   * @param options - Options object\n   */\n  constructor(\n    public readonly account: AccountBase,\n    public override options: OracleRegisterOptions &\n      OracleExtendTtlOptions &\n      Parameters<Oracle['handleQueries']>[1] & { onNode: Node },\n  ) {\n    super(encode(decode(account.address), Encoding.OracleAddress), options);\n  }\n\n  // TODO: support abiVersion other than 0\n  /**\n   * Register oracle\n   * @param queryFormat - Format of query\n   * @param responseFormat - Format of query response\n   * @param options - Options object\n   */\n  async register(\n    queryFormat: string,\n    responseFormat: string,\n    options: OracleRegisterOptions = {},\n  ): ReturnType<typeof sendTransaction> {\n    const opt = { ...this.options, ...options };\n    const oracleRegisterTx = await buildTxAsync({\n      _isInternalBuild: true,\n      ...opt,\n      tag: Tag.OracleRegisterTx,\n      accountId: this.account.address,\n      queryFormat,\n      responseFormat,\n    });\n    return sendTransaction(oracleRegisterTx, { ...opt, onAccount: this.account });\n  }\n\n  /**\n   * Extend oracle ttl\n   * @param options - Options object\n   */\n  async extendTtl(options: OracleExtendTtlOptions = {}): ReturnType<typeof sendTransaction> {\n    const opt = { ...this.options, ...options };\n    const oracleExtendTx = await buildTxAsync({\n      _isInternalBuild: true,\n      ...opt,\n      tag: Tag.OracleExtendTx,\n      oracleId: this.address,\n    });\n    return sendTransaction(oracleExtendTx, { ...opt, onAccount: this.account });\n  }\n\n  /**\n   * Poll for oracle queries\n   * @param onQuery - OnQuery callback\n   * @param options - Options object\n   * @param options.interval - Poll interval (default: 5000)\n   * @returns Callback to stop polling function\n   */\n  pollQueries(\n    onQuery: (query: OracleQuery) => void,\n    options: { interval?: number; includeResponded?: boolean } & Partial<\n      Parameters<typeof _getPollInterval>[1]\n    > = {},\n  ): () => void {\n    const opt = { ...this.options, ...options };\n    const knownQueryIds = new Set();\n\n    let isChecking = false;\n    const checkNewQueries = async (): Promise<void> => {\n      if (isChecking) return;\n      isChecking = true;\n      const filtered = (await this.getQueries(opt))\n        .filter(({ id }) => !knownQueryIds.has(id))\n        .filter((query) => options.includeResponded === true || query.decodedResponse === '');\n      filtered.forEach((query) => knownQueryIds.add(query.id));\n      isChecking = false;\n      await Promise.all(filtered.map((query) => onQuery(query)));\n    };\n\n    checkNewQueries();\n    const idPromise = (async () => {\n      const interval = opt.interval ?? (await _getPollInterval('micro-block', opt));\n      return setInterval(async () => checkNewQueries(), interval);\n    })();\n\n    return async () => {\n      const id = await idPromise;\n      clearInterval(id);\n    };\n  }\n\n  /**\n   * Respond to a query\n   * @param queryId - Oracle query id\n   * @param response - The response to query\n   * @param options - Options object\n   */\n  async respondToQuery(\n    queryId: Encoded.OracleQueryId,\n    response: string,\n    options: OracleRespondToQueryOptions = {},\n  ): ReturnType<typeof sendTransaction> {\n    const opt = { ...this.options, ...options };\n    const oracleRespondTx = await buildTxAsync({\n      _isInternalBuild: true,\n      ...opt,\n      tag: Tag.OracleRespondTx,\n      oracleId: this.address,\n      queryId,\n      response,\n    });\n    return sendTransaction(oracleRespondTx, { ...opt, onAccount: this.account });\n  }\n\n  #handleQueriesPromise?: Promise<void>;\n\n  /**\n   * Respond to queries to oracle based on callback value\n   * @param getResponse - Callback to respond on query\n   * @param options - Options object\n   * @param options.interval - Poll interval (default: 5000)\n   * @returns Callback to stop polling function\n   */\n  handleQueries(\n    getResponse: (q: OracleQuery) => Promise<string> | string,\n    options: Parameters<Oracle['pollQueries']>[1] & OracleRespondToQueryOptions = {},\n  ): () => void {\n    if (this.#handleQueriesPromise != null) {\n      throw new LogicError(\n        'Another query handler already running, it needs to be stopped to run a new one',\n      );\n    }\n    const opt = { ...this.options, ...options };\n\n    let queuePromise = Promise.resolve();\n    const handler = async (q: OracleQuery): Promise<void> => {\n      const response = await getResponse(q);\n      const respondPromise = queuePromise.then(async () =>\n        this.respondToQuery(q.id, response, opt),\n      );\n      queuePromise = respondPromise.then(\n        () => {},\n        () => {},\n      );\n      await respondPromise;\n    };\n\n    this.#handleQueriesPromise = Promise.resolve();\n    const stopPoll = this.pollQueries(async (query: OracleQuery) => {\n      const promise = handler(query);\n      if (this.#handleQueriesPromise == null) throw new UnexpectedTsError();\n      this.#handleQueriesPromise = this.#handleQueriesPromise\n        .then(async () => promise)\n        .then(\n          () => {},\n          () => {},\n        );\n      return promise;\n    }, opt);\n\n    return async () => {\n      stopPoll();\n      await this.#handleQueriesPromise;\n      this.#handleQueriesPromise = undefined;\n    };\n  }\n}\n","import { pause, Optional } from '../utils/other.js';\nimport { oracleQueryId } from '../tx/builder/helpers.js';\nimport { unpackTx, buildTxAsync, BuildTxOptions } from '../tx/builder/index.js';\nimport { Tag } from '../tx/builder/constants.js';\nimport { RequestTimedOutError } from '../utils/errors.js';\nimport { decode, Encoded } from '../utils/encoder.js';\nimport { _getPollInterval, getHeight } from '../chain.js';\nimport { sendTransaction } from '../send-transaction.js';\nimport Node from '../Node.js';\nimport AccountBase from '../account/Base.js';\nimport OracleBase from './OracleBase.js';\n\n/**\n * @category oracle\n */\ninterface OracleClientPostQueryOptions\n  extends Optional<Parameters<typeof sendTransaction>[1], 'onNode' | 'onAccount'>,\n    BuildTxOptions<Tag.OracleQueryTx, 'oracleId' | 'senderId' | 'query'> {}\n\n/**\n * @category oracle\n */\nexport default class OracleClient extends OracleBase {\n  /**\n   * @param address - Oracle public key\n   * @param options - Options object\n   * @param options.onAccount - Account to use\n   * @param options.onNode - Node to use\n   */\n  constructor(\n    address: Encoded.OracleAddress,\n    public override options: { onAccount: AccountBase; onNode: Node } & Parameters<\n      OracleClient['query']\n    >[1],\n  ) {\n    super(address, options);\n  }\n\n  /**\n   * Post query to oracle\n   * @param query - Query to oracle\n   * @param options - Options object\n   * @returns Transaction details and query ID\n   */\n  async postQuery(\n    query: string,\n    options: OracleClientPostQueryOptions = {},\n  ): Promise<Awaited<ReturnType<typeof sendTransaction>> & { queryId: Encoded.OracleQueryId }> {\n    const opt = { ...this.options, ...options };\n    const senderId = opt.onAccount.address;\n\n    const oracleQueryTx = await buildTxAsync({\n      _isInternalBuild: true,\n      ...opt,\n      tag: Tag.OracleQueryTx,\n      oracleId: this.address,\n      senderId,\n      query,\n    });\n    const { nonce } = unpackTx(oracleQueryTx, Tag.OracleQueryTx);\n    return {\n      ...(await sendTransaction(oracleQueryTx, opt)),\n      queryId: oracleQueryId(senderId, nonce, this.address),\n    };\n  }\n\n  /**\n   * Poll for oracle response to query\n   * @param queryId - Oracle Query id\n   * @param options - Options object\n   * @param options.interval - Poll interval\n   * @returns Oracle response\n   */\n  async pollForResponse(\n    queryId: Encoded.OracleQueryId,\n    options: { interval?: number } & Partial<Parameters<typeof _getPollInterval>[1]> = {},\n  ): Promise<string> {\n    const opt = { ...this.options, ...options };\n    const interval = opt.interval ?? (await _getPollInterval('micro-block', opt));\n    let height;\n    let ttl;\n    let response;\n    do {\n      ({ response, ttl } = await this.getQuery(queryId, opt));\n      const responseBuffer = decode(response as Encoded.OracleResponse);\n      if (responseBuffer.length > 0) return responseBuffer.toString();\n      await pause(interval);\n      height = await getHeight({ ...opt, cached: true });\n    } while (ttl >= height);\n    throw new RequestTimedOutError(height);\n  }\n\n  /**\n   * Post query to oracle and wait for response\n   * @param query - Query to oracle\n   * @param options - Options object\n   * @returns Oracle response\n   */\n  async query(\n    query: string,\n    options: OracleClientPostQueryOptions & Parameters<OracleClient['pollForResponse']>[1] = {},\n  ): Promise<string> {\n    const { queryId } = await this.postQuery(query, options);\n    return this.pollForResponse(queryId, options);\n  }\n}\n","import BigNumber from 'bignumber.js';\nimport { getBalance, resolveName } from './chain.js';\nimport { sendTransaction, SendTransactionOptions } from './send-transaction.js';\nimport { buildTxAsync, BuildTxOptions, unpackTx } from './tx/builder/index.js';\nimport { ArgumentError } from './utils/errors.js';\nimport { Encoded } from './utils/encoder.js';\nimport { Tag, AensName } from './tx/builder/constants.js';\n\n// TODO: name verify should not overlap with transaction verify\ntype ResolveNameOptions = Omit<Parameters<typeof resolveName>[2], 'onNode' | 'verify'>;\n\n/**\n * Send coins to another account\n * @category chain\n * @param amount - Amount to spend\n * @param recipientIdOrName - Address or name of recipient account\n * @param options - Options\n * @returns Transaction\n */\nexport async function spend(\n  amount: number | string,\n  recipientIdOrName: Encoded.AccountAddress | Encoded.ContractAddress | AensName,\n  options: SpendOptions,\n): ReturnType<typeof sendTransaction> {\n  return sendTransaction(\n    await buildTxAsync({\n      _isInternalBuild: true,\n      ...options,\n      tag: Tag.SpendTx,\n      senderId: options.onAccount.address,\n      recipientId: await resolveName(recipientIdOrName, 'account_pubkey', options),\n      amount,\n    }),\n    options,\n  );\n}\n\ntype SpendOptionsType = BuildTxOptions<\n  Tag.SpendTx,\n  'senderId' | 'recipientId' | 'amount' | 'onNode'\n> &\n  ResolveNameOptions &\n  SendTransactionOptions;\ninterface SpendOptions extends SpendOptionsType {}\n\n// TODO: Rename to spendFraction\n/**\n * Spend a fraction of coin balance to another account. Useful if needed to drain account balance\n * completely, sending funds to another account (with fraction set to 1).\n * @category chain\n * @param fraction - Fraction of balance to spend (between 0 and 1)\n * @param recipientIdOrName - Address or name of recipient account\n * @param options - Options\n * @example\n * ```js\n * // `fraction` * 100 = % of AE to be transferred (e.g. `0.42` for 42% or `1` for 100%)\n * const { blockHeight } = await aeSdk.transferFunds(\n *   0.42,\n *   'ak_21A27UVVt3hDkBE5J7rhhqnH5YNb4Y1dqo4PnSybrH85pnWo7E',\n * );\n * console.log('Transaction mined at', blockHeight);\n * ```\n */\nexport async function transferFunds(\n  fraction: number | string, // TODO: accept only number\n  recipientIdOrName: AensName | Encoded.AccountAddress | Encoded.ContractAddress,\n  options: TransferFundsOptions,\n): ReturnType<typeof sendTransaction> {\n  if (+fraction < 0 || +fraction > 1) {\n    throw new ArgumentError('fraction', 'a number between 0 and 1', fraction);\n  }\n  const recipientId = await resolveName(recipientIdOrName, 'account_pubkey', options);\n  const senderId = options.onAccount.address;\n  const balance = new BigNumber(await getBalance.bind(options.onAccount)(senderId, options));\n  const desiredAmount = balance.times(fraction).integerValue(BigNumber.ROUND_HALF_UP);\n  const { fee } = unpackTx(\n    await buildTxAsync({\n      _isInternalBuild: true,\n      ...options,\n      tag: Tag.SpendTx,\n      senderId,\n      recipientId,\n      amount: desiredAmount,\n    }),\n    Tag.SpendTx,\n  );\n  // Reducing of the amount may reduce transaction fee, so this is not completely accurate\n  const amount = desiredAmount.plus(fee).gt(balance) ? balance.minus(fee) : desiredAmount;\n  return sendTransaction(\n    await buildTxAsync({\n      _isInternalBuild: true,\n      ...options,\n      tag: Tag.SpendTx,\n      senderId,\n      recipientId,\n      amount,\n    }),\n    options,\n  );\n}\n\ntype TransferFundsOptionsType = BuildTxOptions<\n  Tag.SpendTx,\n  'senderId' | 'recipientId' | 'amount' | 'onNode'\n> &\n  ResolveNameOptions &\n  SendTransactionOptions;\ninterface TransferFundsOptions extends TransferFundsOptionsType {}\n\n/**\n * Submit transaction of another account paying for it (fee and gas)\n * @category chain\n * @param transaction - tx_<base64>-encoded transaction\n * @param options - Options\n * @returns Object Transaction\n */\nexport async function payForTransaction(\n  transaction: Encoded.Transaction,\n  options: PayForTransactionOptions,\n): ReturnType<typeof sendTransaction> {\n  return sendTransaction(\n    await buildTxAsync({\n      _isInternalBuild: true,\n      ...options,\n      tag: Tag.PayingForTx,\n      payerId: options.onAccount.address,\n      tx: transaction,\n    }),\n    options,\n  );\n}\n\ninterface PayForTransactionOptions\n  extends BuildTxOptions<Tag.PayingForTx, 'payerId' | 'tx' | 'onNode'>,\n    SendTransactionOptions {}\n","/**\n * Generalized Account module - routines to use generalized account\n */\n\nimport { ConsensusProtocolVersion, Int, Tag } from '../tx/builder/constants.js';\nimport {\n  buildContractIdByContractTx,\n  buildTx,\n  buildTxAsync,\n  BuildTxOptions,\n  unpackTx,\n} from '../tx/builder/index.js';\nimport { hash } from '../utils/crypto.js';\nimport { decode, encode, Encoded, Encoding } from '../utils/encoder.js';\nimport { ArgumentError, IllegalArgumentError } from '../utils/errors.js';\nimport { concatBuffers } from '../utils/other.js';\nimport Contract from './Contract.js';\nimport Node from '../Node.js';\nimport { getAccount } from '../chain.js';\nimport { sendTransaction, SendTransactionOptions } from '../send-transaction.js';\nimport CompilerBase from './compiler/Base.js';\nimport { packEntry } from '../tx/builder/entry/index.js';\nimport { EntryTag } from '../tx/builder/entry/constants.js';\n\n/**\n * Convert current account to GA\n * @category account generalized\n * @param authFnName - Authorization function name\n * @param args - init arguments\n * @param options - Options\n * @returns General Account Object\n */\nexport async function createGeneralizedAccount(\n  authFnName: string,\n  args: any[],\n  {\n    onAccount,\n    onCompiler,\n    onNode,\n    bytecode,\n    aci,\n    sourceCodePath,\n    sourceCode,\n    fileSystem,\n    ...options\n  }: CreateGeneralizedAccountOptions,\n): Promise<\n  Readonly<{\n    owner: Encoded.AccountAddress;\n    transaction: Encoded.TxHash;\n    rawTx: Encoded.Transaction;\n    gaContractId: Encoded.ContractAddress;\n  }>\n> {\n  const ownerId = onAccount.address;\n  if ((await getAccount(ownerId, { onNode })).kind === 'generalized') {\n    throw new IllegalArgumentError(`Account ${ownerId} is already GA`);\n  }\n\n  const contract = await Contract.initialize<{ init: (...a: any[]) => void }>({\n    onAccount,\n    onCompiler,\n    onNode,\n    bytecode,\n    aci,\n    sourceCodePath,\n    sourceCode,\n    fileSystem,\n  });\n\n  const tx = await buildTxAsync({\n    _isInternalBuild: true,\n    ...options,\n    tag: Tag.GaAttachTx,\n    onNode,\n    code: await contract.$compile(),\n    gasLimit: options.gasLimit ?? (await contract._estimateGas('init', args, options)),\n    ownerId,\n    callData: contract._calldata.encode(contract._name, 'init', args),\n    authFun: hash(authFnName),\n  });\n  const { hash: transaction, rawTx } = await sendTransaction(tx, {\n    onNode,\n    onAccount,\n    onCompiler,\n    ...options,\n  });\n  const contractId = buildContractIdByContractTx(rawTx);\n\n  return Object.freeze({\n    owner: ownerId,\n    transaction,\n    rawTx,\n    gaContractId: contractId,\n  });\n}\n\ninterface CreateGeneralizedAccountOptions\n  extends BuildTxOptions<\n      Tag.GaAttachTx,\n      'authFun' | 'callData' | 'code' | 'ownerId' | 'gasLimit' | 'onNode'\n    >,\n    SendTransactionOptions,\n    Pick<\n      Parameters<typeof Contract.initialize>[0],\n      'bytecode' | 'aci' | 'sourceCodePath' | 'sourceCode' | 'fileSystem'\n    > {\n  onCompiler: CompilerBase;\n  gasLimit?: number;\n}\n\n/**\n * Build a transaction hash the same as `Auth.tx_hash` by GaMetaTx payload\n * @category account generalized\n * @param transaction - tx-encoded transaction\n * @param options - Options\n * @param options.fee - GaMetaTx fee, required in Ceres\n * @param options.gasPrice - GaMetaTx gasPrice, required in Ceres\n * @param options.onNode - Node to use\n * @returns Transaction hash\n */\nexport async function buildAuthTxHash(\n  transaction: Encoded.Transaction,\n  { fee, gasPrice, onNode }: { fee?: Int; gasPrice?: Int; onNode: Node },\n): Promise<Buffer> {\n  const { nodeNetworkId, consensusProtocolVersion } = await onNode.getNodeInfo();\n  let payload = hash(concatBuffers([Buffer.from(nodeNetworkId), decode(transaction)]));\n  if (consensusProtocolVersion === ConsensusProtocolVersion.Ceres) {\n    if (fee == null) throw new ArgumentError('fee', 'provided (in Ceres)', fee);\n    if (gasPrice == null) throw new ArgumentError('gasPrice', 'provided (in Ceres)', gasPrice);\n    payload = hash(\n      decode(\n        packEntry({\n          tag: EntryTag.GaMetaTxAuthData,\n          fee,\n          gasPrice,\n          txHash: encode(payload, Encoding.TxHash),\n        }),\n      ),\n    );\n  }\n  return payload;\n}\n\n/**\n * Build a transaction hash the same as `Auth.tx_hash` by GaMetaTx\n * @category account generalized\n * @param transaction - tx-encoded signed GaMeta transaction\n * @param options - Options\n * @param options.onNode - Node to use\n * @returns Transaction hash\n */\nexport async function buildAuthTxHashByGaMetaTx(\n  transaction: Encoded.Transaction,\n  { onNode }: { onNode: Node },\n): Promise<Buffer> {\n  const txParams = unpackTx(transaction, Tag.SignedTx);\n  if (txParams.encodedTx.tag !== Tag.GaMetaTx) {\n    throw new ArgumentError('transaction', 'to include GaMetaTx', Tag[txParams.encodedTx.tag]);\n  }\n  return buildAuthTxHash(buildTx(txParams.encodedTx.tx.encodedTx), {\n    fee: txParams.encodedTx.fee,\n    gasPrice: txParams.encodedTx.gasPrice,\n    onNode,\n  });\n}\n","import _Symbol from \"core-js-pure/features/symbol/index.js\";\nimport _Symbol$iterator from \"core-js-pure/features/symbol/iterator.js\";\nfunction _typeof(o) {\n  \"@babel/helpers - typeof\";\n\n  return _typeof = \"function\" == typeof _Symbol && \"symbol\" == typeof _Symbol$iterator ? function (o) {\n    return typeof o;\n  } : function (o) {\n    return o && \"function\" == typeof _Symbol && o.constructor === _Symbol && o !== _Symbol.prototype ? \"symbol\" : typeof o;\n  }, _typeof(o);\n}\nexport { _typeof as default };","import _Object$defineProperty from \"core-js-pure/features/object/define-property.js\";\nimport toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n  return (r = toPropertyKey(r)) in e ? _Object$defineProperty(e, r, {\n    value: t,\n    enumerable: !0,\n    configurable: !0,\n    writable: !0\n  }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n  var i = toPrimitive(t, \"string\");\n  return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nimport _Symbol$toPrimitive from \"core-js-pure/features/symbol/to-primitive.js\";\nfunction toPrimitive(t, r) {\n  if (\"object\" != _typeof(t) || !t) return t;\n  var e = t[_Symbol$toPrimitive];\n  if (void 0 !== e) {\n    var i = e.call(t, r || \"default\");\n    if (\"object\" != _typeof(i)) return i;\n    throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n  }\n  return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import * as chainMethods from './chain.js';\nimport { sendTransaction } from './send-transaction.js';\nimport * as spendMethods from './spend.js';\nimport * as contractGaMethods from './contract/ga.js';\nimport { buildTxAsync } from './tx/builder/index.js';\nimport { mapObject, UnionToIntersection } from './utils/other.js';\nimport { wrapWithProxy } from './utils/wrap-proxy.js';\nimport Node from './Node.js';\nimport { TxParamsAsync } from './tx/builder/schema.generated.js';\nimport AccountBase from './account/Base.js';\nimport { Encoded } from './utils/encoder.js';\nimport CompilerBase from './contract/compiler/Base.js';\n\nexport type OnAccount = Encoded.AccountAddress | AccountBase | undefined;\n\nconst methods = {\n  ...chainMethods,\n  sendTransaction,\n  ...spendMethods,\n  ...contractGaMethods,\n} as const;\n\ntype Decrement<Number extends number> = [-1, 0, 1, 2, 3, 4, 5][Number];\ntype GetMethodsOptions<Methods extends { [key: string]: Function }> = {\n  [Name in keyof Methods]: Methods[Name] extends (...args: infer Args) => any\n    ? Args[Decrement<Args['length']>]\n    : never;\n};\ntype MethodsOptions = GetMethodsOptions<typeof methods>;\nexport interface AeSdkMethodsOptions\n  extends Partial<UnionToIntersection<MethodsOptions[keyof MethodsOptions]>> {}\n\nexport interface WrappedOptions {\n  onAccount: AccountBase;\n  onCompiler: CompilerBase;\n  onNode: Node;\n}\n\n/**\n * AeSdkMethods is the composition of:\n * - chain methods\n * - tx methods\n * - aens methods\n * - spend methods\n * - oracle methods\n * - contract methods\n * - contract ga methods\n *\n * While these methods can be used separately, this class provides a handy way to store\n * their context (current account, network, and compiler to use).\n */\nclass AeSdkMethods {\n  _options: AeSdkMethodsOptions = {};\n\n  readonly #wrappedOptions: WrappedOptions;\n\n  /**\n   * @param options - Options\n   */\n  constructor(options: AeSdkMethodsOptions = {}) {\n    Object.assign(this._options, options);\n    this.#wrappedOptions = {\n      onAccount: wrapWithProxy(() => this._options.onAccount),\n      onNode: wrapWithProxy(() => this._options.onNode),\n      onCompiler: wrapWithProxy(() => this._options.onCompiler),\n    };\n  }\n\n  /**\n   * Returns sdk instance options with references to current account, node, compiler.\n   * Used to create an instance (Contract, Oracle) bound to AeSdk state.\n   * @param mergeWith - Merge context with these extra options\n   * @returns Context object\n   */\n  getContext(mergeWith: AeSdkMethodsOptions = {}): AeSdkMethodsOptions & WrappedOptions {\n    return {\n      ...this._options,\n      ...this.#wrappedOptions,\n      ...mergeWith,\n    };\n  }\n\n  // TODO: omit onNode from options, because it is already in context\n  async buildTx(options: TxParamsAsync): Promise<Encoded.Transaction> {\n    // TODO: remove `any` at the same time as AeSdk class\n    return buildTxAsync({ ...(this.getContext() as any), ...options });\n  }\n}\n\ntype RequiredKeys<T> = {\n  [K in keyof T]-?: {} extends Pick<T, K> ? never : K;\n}[keyof T];\n\ntype OptionalIfNotRequired<T extends [any]> = RequiredKeys<T[0]> extends never ? T | [] : T;\n\ntype ReplaceOnAccount<Options> = Options extends { onAccount: any }\n  ? Omit<Options, 'onAccount'> & {\n      /**\n       * Make operation on specific account by providing address (to use account from sdk) or instance\n       * of AccountBase (like AccountMemory)\n       */\n      onAccount: OnAccount;\n    }\n  : Options;\n\ntype MakeOptional<Options> = OptionalIfNotRequired<\n  [Omit<Options, 'onNode' | 'onCompiler' | 'onAccount'> & Partial<ReplaceOnAccount<Options>>]\n>;\n\ntype TransformMethods<Methods extends { [key: string]: Function }> = {\n  [Name in keyof Methods]: Methods[Name] extends (\n    ...args: [...infer Args, infer Options]\n  ) => infer Ret\n    ? (...args: [...Args, ...MakeOptional<Options>]) => Ret\n    : never;\n};\n\ninterface AeSdkMethodsTransformed extends TransformMethods<typeof methods> {}\n\nObject.assign(\n  AeSdkMethods.prototype,\n  mapObject<Function, Function>(methods, ([name, handler]) => [\n    name,\n    function methodWrapper(this: AeSdkMethods, ...args: any[]) {\n      args.length = handler.length;\n      const options = args[args.length - 1];\n      args[args.length - 1] = this.getContext(options);\n      return handler(...args);\n    },\n  ]),\n);\n\ntype AeSdkMethodsTyped = AeSdkMethods & AeSdkMethodsTransformed;\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nconst AeSdkMethodsTyped = AeSdkMethods as new (options?: AeSdkMethodsOptions) => AeSdkMethodsTyped;\nexport default AeSdkMethodsTyped;\n","import Node from './Node.js';\nimport AccountBase from './account/Base.js';\nimport {\n  CompilerError,\n  DuplicateNodeError,\n  NodeNotFoundError,\n  NotImplementedError,\n  TypeError,\n} from './utils/errors.js';\nimport { Encoded } from './utils/encoder.js';\nimport { wrapWithProxy } from './utils/wrap-proxy.js';\nimport CompilerBase from './contract/compiler/Base.js';\nimport AeSdkMethods, { OnAccount, AeSdkMethodsOptions, WrappedOptions } from './AeSdkMethods.js';\n\ntype NodeInfo = Awaited<ReturnType<Node['getNodeInfo']>> & { name: string };\n\n/**\n * Basic AeSdk class implements:\n * - node selector,\n * - integrated compiler support,\n * - wrappers of account methods mapped to the current account.\n */\nexport default class AeSdkBase extends AeSdkMethods {\n  pool: Map<string, Node> = new Map();\n\n  selectedNodeName?: string;\n\n  readonly #wrappedOptions: WrappedOptions;\n\n  /**\n   * @param options - Options\n   * @param options.nodes - Array of nodes\n   */\n  constructor({\n    nodes = [],\n    ...options\n  }: AeSdkMethodsOptions & {\n    nodes?: Array<{ name: string; instance: Node }>;\n  } = {}) {\n    super(options);\n\n    nodes.forEach(({ name, instance }, i) => this.addNode(name, instance, i === 0));\n\n    this.#wrappedOptions = {\n      onNode: wrapWithProxy(() => this.api),\n      onCompiler: wrapWithProxy(() => this.compilerApi),\n      onAccount: wrapWithProxy(() => this._resolveAccount()),\n    };\n  }\n\n  // TODO: consider dropping this getter, because:\n  // compiler is not intended to be used separately any more (functionality limited to sdk needs)\n  // and user creates its instance by himself\n  get compilerApi(): CompilerBase {\n    if (this._options.onCompiler == null) {\n      throw new CompilerError(\"You can't use Compiler API. Compiler is not ready!\");\n    }\n    return this._options.onCompiler;\n  }\n\n  get api(): Node {\n    this.ensureNodeConnected();\n    return this.pool.get(this.selectedNodeName) as Node;\n  }\n\n  /**\n   * Add Node\n   * @param name - Node name\n   * @param node - Node instance\n   * @param select - Select this node as current\n   * @example\n   * ```js\n   * // add and select new node with name 'testNode'\n   * aeSdkBase.addNode('testNode', new Node({ url }), true)\n   * ```\n   */\n  addNode(name: string, node: Node, select = false): void {\n    if (this.pool.has(name)) throw new DuplicateNodeError(name);\n\n    this.pool.set(name, node);\n    if (select || this.selectedNodeName == null) {\n      this.selectNode(name);\n    }\n  }\n\n  /**\n   * Select Node\n   * @param name - Node name\n   * @example\n   * nodePool.selectNode('testNode')\n   */\n  selectNode(name: string): void {\n    if (!this.pool.has(name)) throw new NodeNotFoundError(`Node with name ${name} not in pool`);\n    this.selectedNodeName = name;\n  }\n\n  /**\n   * Check if you have selected node\n   * @example\n   * nodePool.isNodeConnected()\n   */\n  isNodeConnected(): this is AeSdkBase & { selectedNodeName: string } {\n    return this.selectedNodeName != null;\n  }\n\n  protected ensureNodeConnected(): asserts this is AeSdkBase & { selectedNodeName: string } {\n    if (!this.isNodeConnected()) {\n      throw new NodeNotFoundError(\"You can't use Node API. Node is not connected or not defined!\");\n    }\n  }\n\n  /**\n   * Get information about node\n   * @example\n   * ```js\n   * nodePool.getNodeInfo() // { name, version, networkId, protocol, ... }\n   * ```\n   */\n  async getNodeInfo(): Promise<NodeInfo> {\n    this.ensureNodeConnected();\n    return {\n      name: this.selectedNodeName,\n      ...(await this.api.getNodeInfo()),\n    };\n  }\n\n  /**\n   * Get array of available nodes\n   * @example\n   * nodePool.getNodesInPool()\n   */\n  async getNodesInPool(): Promise<NodeInfo[]> {\n    return Promise.all(\n      Array.from(this.pool.entries()).map(async ([name, node]) => ({\n        name,\n        ...(await node.getNodeInfo()),\n      })),\n    );\n  }\n\n  // eslint-disable-next-line class-methods-use-this\n  addresses(): Encoded.AccountAddress[] {\n    return [];\n  }\n\n  /**\n   * Resolves an account\n   * @param account - ak-address, instance of AccountBase, or keypair\n   */\n  _resolveAccount(account: OnAccount = this._options.onAccount): AccountBase {\n    if (typeof account === 'string') throw new NotImplementedError('Address in AccountResolver');\n    if (typeof account === 'object') return account;\n    throw new TypeError(\n      'Account should be an address (ak-prefixed string), ' +\n        `or instance of AccountBase, got ${String(account)} instead`,\n    );\n  }\n\n  get address(): Encoded.AccountAddress {\n    return this._resolveAccount().address;\n  }\n\n  /**\n   * Sign data blob\n   * @param data - Data to sign\n   * @param options - Options\n   * @deprecated Use `unsafeSign` method instead\n   */\n  async sign(\n    data: string | Uint8Array,\n    options: { onAccount?: OnAccount } = {},\n  ): Promise<Uint8Array> {\n    return this.unsafeSign(data, options);\n  }\n\n  /**\n   * Sign data blob\n   * @param data - Data to sign\n   * @param options - Options\n   */\n  async unsafeSign(\n    data: string | Uint8Array,\n    { onAccount, ...options }: { onAccount?: OnAccount } = {},\n  ): Promise<Uint8Array> {\n    return this._resolveAccount(onAccount).unsafeSign(data, options);\n  }\n\n  /**\n   * Sign encoded transaction\n   * @param tx - Transaction to sign\n   * @param options - Options\n   */\n  async signTransaction(\n    tx: Encoded.Transaction,\n    {\n      onAccount,\n      ...options\n    }: { onAccount?: OnAccount } & Parameters<AccountBase['signTransaction']>[1] = {},\n  ): Promise<Encoded.Transaction> {\n    const networkId = this.selectedNodeName !== null ? await this.api.getNetworkId() : undefined;\n    return this._resolveAccount(onAccount).signTransaction(tx, { networkId, ...options });\n  }\n\n  /**\n   * Sign message\n   * @param message - Message to sign\n   * @param options - Options\n   */\n  async signMessage(\n    message: string,\n    {\n      onAccount,\n      ...options\n    }: { onAccount?: OnAccount } & Parameters<AccountBase['signMessage']>[1] = {},\n  ): Promise<Uint8Array> {\n    return this._resolveAccount(onAccount).signMessage(message, options);\n  }\n\n  /**\n   * Sign typed data\n   * @param data - Encoded data to sign\n   * @param aci - Type of data to sign\n   * @param options - Options\n   */\n  async signTypedData(\n    data: Encoded.ContractBytearray,\n    aci: Parameters<AccountBase['signTypedData']>[1],\n    {\n      onAccount,\n      ...options\n    }: { onAccount?: OnAccount } & Parameters<AccountBase['signTypedData']>[2] = {},\n  ): Promise<Encoded.Signature> {\n    return this._resolveAccount(onAccount).signTypedData(data, aci, options);\n  }\n\n  /**\n   * Sign delegation, works only in Ceres\n   * @param delegation - Delegation to sign\n   * @param options - Options\n   */\n  async signDelegation(\n    delegation: Encoded.Bytearray,\n    {\n      onAccount,\n      ...options\n    }: { onAccount?: OnAccount } & Parameters<AccountBase['signDelegation']>[1] = {},\n  ): Promise<Encoded.Signature> {\n    options.networkId ??=\n      this.selectedNodeName !== null ? await this.api.getNetworkId() : undefined;\n    return this._resolveAccount(onAccount).signDelegation(delegation, options);\n  }\n\n  /**\n   * The same as AeSdkMethods:getContext, but it would resolve ak_-prefixed address in\n   * `mergeWith.onAccount` to AccountBase.\n   */\n  override getContext(mergeWith: AeSdkMethodsOptions = {}): AeSdkMethodsOptions & WrappedOptions {\n    return {\n      ...this._options,\n      ...this.#wrappedOptions,\n      ...mergeWith,\n      ...(mergeWith.onAccount != null && {\n        onAccount: this._resolveAccount(mergeWith.onAccount),\n      }),\n    };\n  }\n}\n","import AeSdkBase from './AeSdkBase.js';\nimport { OnAccount } from './AeSdkMethods.js';\nimport AccountBase from './account/Base.js';\nimport { decode, Encoded } from './utils/encoder.js';\nimport { UnavailableAccountError } from './utils/errors.js';\n\nexport default class AeSdk extends AeSdkBase {\n  accounts: { [key: Encoded.AccountAddress]: AccountBase } = {};\n\n  selectedAddress?: Encoded.AccountAddress;\n\n  /**\n   * @param options - Options\n   */\n  constructor({\n    accounts,\n    ...options\n  }: { accounts?: AccountBase[] } & ConstructorParameters<typeof AeSdkBase>[0] = {}) {\n    super(options);\n    accounts?.forEach((account, idx) => this.addAccount(account, { select: idx === 0 }));\n  }\n\n  override _resolveAccount(account: OnAccount = this.selectedAddress): AccountBase {\n    if (typeof account === 'string') {\n      const address = account as Encoded.AccountAddress;\n      decode(address);\n      if (this.accounts[address] == null) throw new UnavailableAccountError(account);\n      account = this.accounts[address];\n    }\n    return super._resolveAccount(account);\n  }\n\n  /**\n   * Get accounts addresses\n   * @example addresses()\n   */\n  override addresses(): Encoded.AccountAddress[] {\n    return Object.keys(this.accounts) as Encoded.AccountAddress[];\n  }\n\n  /**\n   * Add specific account\n   * @param account - Account instance\n   * @param options - Options\n   * @param options.select - Select account\n   * @example addAccount(account)\n   */\n  addAccount(account: AccountBase, { select }: { select?: boolean } = {}): void {\n    const { address } = account;\n    this.accounts[address] = account;\n    if (select === true) this.selectAccount(address);\n  }\n\n  /**\n   * Remove specific account\n   * @param address - Address of account to remove\n   * @example removeAccount(address)\n   */\n  removeAccount(address: Encoded.AccountAddress): void {\n    if (this.accounts[address] == null) throw new UnavailableAccountError(address);\n    delete this.accounts[address]; // eslint-disable-line @typescript-eslint/no-dynamic-delete\n    if (this.selectedAddress === address) delete this.selectedAddress;\n  }\n\n  /**\n   * Select specific account\n   * @param address - Address of account to select\n   * @example selectAccount('ak_xxxxxxxx')\n   */\n  selectAccount(address: Encoded.AccountAddress): void {\n    decode(address);\n    if (this.accounts[address] == null) throw new UnavailableAccountError(address);\n    this.selectedAddress = address;\n  }\n}\n","// eslint-disable-next-line max-classes-per-file\nimport { Encoded } from '../utils/encoder.js';\nimport { BaseError, InternalError } from '../utils/errors.js';\n\n/**\n * @category aepp wallet communication\n */\nexport const enum MESSAGE_DIRECTION {\n  to_waellet = 'to_waellet',\n  to_aepp = 'to_aepp',\n}\n\n/**\n * @category aepp wallet communication\n */\nexport const enum WALLET_TYPE {\n  window = 'window',\n  extension = 'extension',\n}\n\n/**\n * @category aepp wallet communication\n */\nexport const enum SUBSCRIPTION_TYPES {\n  subscribe = 'subscribe',\n  unsubscribe = 'unsubscribe',\n}\n\n/**\n * @category aepp wallet communication\n */\nexport const enum METHODS {\n  readyToConnect = 'connection.announcePresence',\n  updateAddress = 'address.update',\n  address = 'address.get',\n  connect = 'connection.open',\n  unsafeSign = 'data.unsafeSign',\n  sign = 'transaction.sign',\n  signMessage = 'message.sign',\n  signTypedData = 'typedData.sign',\n  signDelegation = 'delegation.sign',\n  subscribeAddress = 'address.subscribe',\n  updateNetwork = 'networkId.update',\n  closeConnection = 'connection.close',\n}\n\n/**\n * @category aepp wallet communication\n */\nexport const enum RPC_STATUS {\n  CONNECTED = 'CONNECTED',\n  DISCONNECTED = 'DISCONNECTED',\n  WAITING_FOR_CONNECTION_REQUEST = 'WAITING_FOR_CONNECTION_REQUEST',\n}\n\ninterface RpcErrorAsJson {\n  code: number;\n  message: string;\n  data?: any;\n}\n\nconst rpcErrors: Array<(new (data?: any) => RpcError) & { code: number }> = [];\n\n/**\n * @category exception\n */\nexport abstract class RpcError extends BaseError {\n  static code: number;\n\n  code!: number;\n\n  data?: any;\n\n  toJSON(): RpcErrorAsJson {\n    return {\n      code: this.code,\n      message: this.message,\n      data: this.data,\n    };\n  }\n\n  static deserialize(json: RpcErrorAsJson): RpcError {\n    const RpcErr = rpcErrors.find((cl) => cl.code === json.code);\n    if (RpcErr == null) throw new InternalError(`Can't find RpcError with code: ${json.code}`);\n    return new RpcErr(json.data);\n  }\n}\n\n/**\n * @category exception\n */\nexport class RpcInvalidTransactionError extends RpcError {\n  static override code = 2;\n\n  override code = 2;\n\n  constructor(data?: any) {\n    super('Invalid transaction');\n    this.data = data;\n    this.name = 'RpcInvalidTransactionError';\n  }\n}\nrpcErrors.push(RpcInvalidTransactionError);\n\n/**\n * @category exception\n */\nexport class RpcRejectedByUserError extends RpcError {\n  static override code = 4;\n\n  override code = 4;\n\n  constructor(data?: any) {\n    super('Operation rejected by user');\n    this.data = data;\n    this.name = 'RpcRejectedByUserError';\n  }\n}\nrpcErrors.push(RpcRejectedByUserError);\n\n/**\n * @category exception\n */\nexport class RpcUnsupportedProtocolError extends RpcError {\n  static override code = 5;\n\n  override code = 5;\n\n  constructor() {\n    super('Unsupported Protocol Version');\n    this.name = 'RpcUnsupportedProtocolError';\n  }\n}\nrpcErrors.push(RpcUnsupportedProtocolError);\n\n/**\n * @category exception\n */\nexport class RpcConnectionDenyError extends RpcError {\n  static override code = 9;\n\n  override code = 9;\n\n  constructor(data?: any) {\n    super('Wallet deny your connection request');\n    this.data = data;\n    this.name = 'RpcConnectionDenyError';\n  }\n}\nrpcErrors.push(RpcConnectionDenyError);\n\n/**\n * @category exception\n */\nexport class RpcNotAuthorizeError extends RpcError {\n  static override code = 10;\n\n  override code = 10;\n\n  constructor() {\n    super('You are not connected to the wallet');\n    this.name = 'RpcNotAuthorizeError';\n  }\n}\nrpcErrors.push(RpcNotAuthorizeError);\n\n/**\n * @category exception\n */\nexport class RpcPermissionDenyError extends RpcError {\n  static override code = 11;\n\n  override code = 11;\n\n  constructor(address: Encoded.AccountAddress) {\n    super(`You are not subscribed for account ${address}`);\n    this.data = address;\n    this.name = 'RpcPermissionDenyError';\n  }\n}\nrpcErrors.push(RpcPermissionDenyError);\n\n/**\n * @category exception\n */\nexport class RpcInternalError extends RpcError {\n  static override code = 12;\n\n  override code = 12;\n\n  constructor() {\n    super('The peer failed to execute your request due to unknown error');\n    this.name = 'RpcInternalError';\n  }\n}\nrpcErrors.push(RpcInternalError);\n\n/**\n * @category exception\n */\nexport class RpcNoNetworkById extends RpcError {\n  static override code = 13;\n\n  override code = 13;\n\n  constructor(networkId: string) {\n    super(`Wallet can't find a network by id \"${networkId}\"`);\n    this.data = networkId;\n    this.name = 'RpcNoNetworkById';\n  }\n}\nrpcErrors.push(RpcNoNetworkById);\n\n/**\n * @category exception\n */\nexport class RpcMethodNotFoundError extends RpcError {\n  static override code = -32601;\n\n  override code = -32601;\n\n  constructor() {\n    super('Method not found');\n    this.name = 'RpcMethodNotFoundError';\n  }\n}\nrpcErrors.push(RpcMethodNotFoundError);\n","import AccountBase from './Base.js';\nimport { METHODS } from '../aepp-wallet-communication/schema.js';\nimport { ArgumentError, UnsupportedProtocolError } from '../utils/errors.js';\nimport { Encoded, Encoding, decode, encode } from '../utils/encoder.js';\nimport RpcClient from '../aepp-wallet-communication/rpc/RpcClient.js';\nimport { AeppApi, WalletApi } from '../aepp-wallet-communication/rpc/types.js';\n\n/**\n * Account provided by wallet\n * @param params - Params\n * @param params.rpcClient - RpcClient instance\n * @param params.address - RPC account address\n * @returns AccountRpc instance\n * @category account\n */\nexport default class AccountRpc extends AccountBase {\n  _rpcClient: RpcClient<WalletApi, AeppApi>;\n\n  override readonly address: Encoded.AccountAddress;\n\n  constructor(rpcClient: RpcClient<WalletApi, AeppApi>, address: Encoded.AccountAddress) {\n    super();\n    this._rpcClient = rpcClient;\n    this.address = address;\n  }\n\n  /**\n   * @deprecated Use `unsafeSign` method instead\n   */\n  async sign(dataRaw: string | Uint8Array): Promise<Uint8Array> {\n    return this.unsafeSign(dataRaw);\n  }\n\n  async unsafeSign(dataRaw: string | Uint8Array): Promise<Uint8Array> {\n    const data = encode(Buffer.from(dataRaw), Encoding.Bytearray);\n    const { signature } = await this._rpcClient.request(METHODS.unsafeSign, {\n      onAccount: this.address,\n      data,\n    });\n    return decode(signature);\n  }\n\n  override async signTransaction(\n    tx: Encoded.Transaction,\n    { innerTx, networkId }: Parameters<AccountBase['signTransaction']>[1] = {},\n  ): Promise<Encoded.Transaction> {\n    if (networkId == null) throw new ArgumentError('networkId', 'provided', networkId);\n    const res = await this._rpcClient.request(METHODS.sign, {\n      onAccount: this.address,\n      tx,\n      returnSigned: true,\n      networkId,\n      innerTx,\n    });\n    if (res.signedTransaction == null) {\n      throw new UnsupportedProtocolError('signedTransaction is missed in wallet response');\n    }\n    return res.signedTransaction;\n  }\n\n  override async signMessage(message: string): Promise<Uint8Array> {\n    const { signature } = await this._rpcClient.request(METHODS.signMessage, {\n      onAccount: this.address,\n      message,\n    });\n    return Buffer.from(signature, 'hex');\n  }\n\n  override async signTypedData(\n    data: Encoded.ContractBytearray,\n    aci: Parameters<AccountBase['signTypedData']>[1],\n    { name, version, contractAddress, networkId }: Parameters<AccountBase['signTypedData']>[2] = {},\n  ): Promise<Encoded.Signature> {\n    const { signature } = await this._rpcClient.request(METHODS.signTypedData, {\n      onAccount: this.address,\n      domain: {\n        name,\n        version,\n        networkId,\n        contractAddress,\n      },\n      aci,\n      data,\n    });\n    return signature;\n  }\n\n  override async signDelegation(delegation: Encoded.Bytearray): Promise<Encoded.Signature> {\n    const { signature } = await this._rpcClient.request(METHODS.signDelegation, {\n      delegation,\n      onAccount: this.address,\n    });\n    return signature;\n  }\n}\n","import { RpcError, RpcInternalError, RpcMethodNotFoundError } from '../schema.js';\nimport BrowserConnection from '../connection/Browser.js';\nimport { InvalidRpcMessageError, MissingCallbackError } from '../../utils/errors.js';\nimport { ensureError } from '../../utils/other.js';\n\ninterface JsonRpcRequest {\n  jsonrpc: '2.0';\n  id: number;\n  method: string;\n  params?: any;\n}\n\ninterface JsonRpcResponse {\n  jsonrpc: '2.0';\n  id: number;\n  method: string;\n  result?: any;\n  error?: {\n    code: number;\n    message: string;\n    data?: any;\n  };\n}\n\ntype RpcApiHandler = (p?: any) => any | undefined;\ntype RpcApi<Api> = { [k in keyof Api]: RpcApiHandler };\ntype WithOrigin<Api extends RpcApi<Api>> = {\n  [k in keyof Api]: (p: Parameters<Api[k]>[0], origin: string) => ReturnType<Api[k]>;\n};\n\n/**\n * Contain functionality for using RPC conection\n * @category aepp wallet communication\n * @param connection - Connection object\n * @param onDisconnect - Disconnect callback\n * @param methods - Object containing handlers for each request by name\n */\nexport default class RpcClient<\n  RemoteApi extends RpcApi<RemoteApi>,\n  LocalApi extends RpcApi<LocalApi>,\n> {\n  connection: BrowserConnection;\n\n  readonly #callbacks = new Map<\n    number,\n    { resolve: (v: any) => void; reject: (e: Error) => void }\n  >();\n\n  #messageId = 0;\n\n  readonly #methods: WithOrigin<LocalApi>;\n\n  constructor(\n    connection: BrowserConnection,\n    onDisconnect: () => void,\n    methods: WithOrigin<LocalApi>,\n  ) {\n    this.connection = connection;\n    this.#methods = methods;\n    connection.connect(this.#handleMessage.bind(this), onDisconnect);\n  }\n\n  async #handleMessage(msg: JsonRpcRequest | JsonRpcResponse, origin: string): Promise<void> {\n    if (msg?.jsonrpc !== '2.0') throw new InvalidRpcMessageError(JSON.stringify(msg));\n    if ('result' in msg || 'error' in msg) {\n      this.#processResponse(msg);\n      return;\n    }\n\n    const request = msg as JsonRpcRequest;\n    let result;\n    let error: Error | undefined;\n    try {\n      if (!(request.method in this.#methods)) throw new RpcMethodNotFoundError();\n      const methodName = request.method as keyof LocalApi;\n      result = await this.#methods[methodName](request.params, origin);\n    } catch (e) {\n      ensureError(e);\n      error = e;\n    }\n    if (request.id != null) {\n      this.#sendResponse(\n        request.id,\n        request.method as keyof LocalApi,\n        result,\n        error == null || error instanceof RpcError ? error : new RpcInternalError(),\n      );\n    }\n    if (error != null && !(error instanceof RpcError)) throw error;\n  }\n\n  #sendRequest(\n    id: number | undefined,\n    method: keyof RemoteApi | keyof LocalApi,\n    params?: any,\n  ): void {\n    this.connection.sendMessage({\n      jsonrpc: '2.0',\n      ...(id != null ? { id } : {}),\n      method,\n      ...(params != null ? { params } : {}),\n    });\n  }\n\n  #sendResponse(\n    id: number,\n    method: keyof RemoteApi | keyof LocalApi, // TODO: remove as far it is not required in JSON RPC\n    result?: any,\n    error?: RpcError,\n  ): void {\n    this.connection.sendMessage({\n      jsonrpc: '2.0',\n      id,\n      method,\n      ...(error != null ? { error: error.toJSON() } : { result }),\n    });\n  }\n\n  /**\n   * Make a request\n   * @param name - Method name\n   * @param params - Method params\n   * @returns Promise which will be resolved after receiving response message\n   */\n  async request<Name extends keyof RemoteApi>(\n    name: Name,\n    params: Parameters<RemoteApi[Name]>[0],\n  ): Promise<ReturnType<RemoteApi[Name]>> {\n    this.#sendRequest((this.#messageId += 1), name, params);\n    return new Promise((resolve, reject) => {\n      this.#callbacks.set(this.#messageId, { resolve, reject });\n    });\n  }\n\n  /**\n   * Make a notification\n   * @param name - Method name\n   * @param params - Method params\n   */\n  notify<Name extends keyof RemoteApi>(name: Name, params: Parameters<RemoteApi[Name]>[0]): void {\n    this.#sendRequest(undefined, name, params);\n  }\n\n  /**\n   * Process response message\n   * @param msg - Message object\n   */\n  #processResponse({ id, error, result }: { id: number; error?: any; result?: any }): void {\n    const callbacks = this.#callbacks.get(id);\n    if (callbacks == null) throw new MissingCallbackError(id);\n    if (error != null) callbacks.reject(RpcError.deserialize(error));\n    else callbacks.resolve(result);\n    this.#callbacks.delete(id);\n  }\n}\n","import AeSdkBase from './AeSdkBase.js';\nimport { OnAccount } from './AeSdkMethods.js';\nimport AccountBase from './account/Base.js';\nimport AccountRpc from './account/Rpc.js';\nimport { decode, Encoded } from './utils/encoder.js';\nimport {\n  Accounts,\n  RPC_VERSION,\n  WalletInfo,\n  Network,\n  WalletApi,\n  AeppApi,\n  Node as NodeRpc,\n  NetworkToSelect,\n} from './aepp-wallet-communication/rpc/types.js';\nimport RpcClient from './aepp-wallet-communication/rpc/RpcClient.js';\nimport { METHODS, SUBSCRIPTION_TYPES } from './aepp-wallet-communication/schema.js';\nimport {\n  AlreadyConnectedError,\n  NoWalletConnectedError,\n  UnsubscribedAccountError,\n  UnAuthorizedAccountError,\n  RpcConnectionError,\n} from './utils/errors.js';\nimport Node from './Node.js';\nimport BrowserConnection from './aepp-wallet-communication/connection/Browser.js';\n\n/**\n * RPC handler for AEPP side\n * Contain functionality for wallet interaction and connect it to sdk\n * @deprecated use WalletConnectorFrame instead\n * @category aepp wallet communication\n */\nexport default class AeSdkAepp extends AeSdkBase {\n  name: string;\n\n  onAddressChange: (a: Accounts) => void;\n\n  onDisconnect: (p: any) => void;\n\n  onNetworkChange: (a: Network) => void;\n\n  rpcClient?: RpcClient<WalletApi, AeppApi>;\n\n  _accounts?: Accounts;\n\n  /**\n   * @param options - Options\n   * @param options.name - Aepp name\n   * @param options.onAddressChange - Call-back function for update address event\n   * @param options.onDisconnect - Call-back function for disconnect event\n   * @param options.onNetworkChange - Call-back function for update network event\n   */\n  constructor({\n    name,\n    onAddressChange = () => {},\n    onDisconnect = () => {},\n    onNetworkChange = () => {},\n    ...other\n  }: {\n    name: string;\n    onAddressChange?: (a: Accounts) => void;\n    onDisconnect?: (p: any) => void;\n    onNetworkChange?: (a: Network) => void;\n  } & ConstructorParameters<typeof AeSdkBase>[0]) {\n    super(other);\n    this.onAddressChange = onAddressChange;\n    this.onDisconnect = onDisconnect;\n    this.onNetworkChange = onNetworkChange;\n    this.name = name;\n  }\n\n  override _resolveAccount(account: OnAccount = this.addresses()[0]): AccountBase {\n    if (typeof account === 'string') {\n      const address = account as Encoded.AccountAddress;\n      decode(address);\n      if (!this.addresses().includes(address)) throw new UnAuthorizedAccountError(address);\n      this._ensureConnected();\n      account = new AccountRpc(this.rpcClient, address);\n    }\n    if (account == null) this._ensureAccountAccess();\n    return super._resolveAccount(account);\n  }\n\n  override addresses(): Encoded.AccountAddress[] {\n    if (this._accounts == null) return [];\n    const current = Object.keys(this._accounts.current)[0];\n    return [\n      ...(current != null ? [current] : []),\n      ...Object.keys(this._accounts.connected),\n    ] as Encoded.AccountAddress[];\n  }\n\n  /**\n   * Connect to wallet\n   * @param connection - Wallet connection object\n   * @param options - Options\n   * @param options.connectNode - Request wallet to bind node\n   * @param options.name - Node name\n   */\n  async connectToWallet(\n    connection: BrowserConnection,\n    { connectNode = false, name = 'wallet-node' }: { connectNode?: boolean; name?: string } = {},\n  ): Promise<WalletInfo & { node?: NodeRpc }> {\n    if (this.rpcClient != null)\n      throw new AlreadyConnectedError('You are already connected to wallet');\n    let disconnectParams: any;\n\n    const updateNetwork = (params: Network): void => {\n      if (connectNode) {\n        if (params.node?.url == null) throw new RpcConnectionError('Missing URLs of the Node');\n        this.pool.delete(name);\n        this.addNode(name, new Node(params.node.url), true);\n      }\n      this.onNetworkChange(params);\n    };\n\n    const client = new RpcClient<WalletApi, AeppApi>(\n      connection,\n      () => {\n        delete this.rpcClient;\n        delete this._accounts;\n        this.onDisconnect(disconnectParams);\n      },\n      {\n        [METHODS.updateAddress]: (params) => {\n          this._accounts = params;\n          this.onAddressChange(params);\n        },\n        [METHODS.updateNetwork]: updateNetwork,\n        [METHODS.closeConnection]: (params) => {\n          disconnectParams = params;\n          client.connection.disconnect();\n        },\n        [METHODS.readyToConnect]: () => {},\n      },\n    );\n    const walletInfo = await client.request(METHODS.connect, {\n      name: this.name,\n      version: RPC_VERSION,\n      connectNode,\n    });\n    updateNetwork(walletInfo);\n    this.rpcClient = client;\n    return walletInfo;\n  }\n\n  /**\n   * Disconnect from wallet\n   */\n  disconnectWallet(): void {\n    this._ensureConnected();\n    this.rpcClient.notify(METHODS.closeConnection, { reason: 'bye' });\n    this.rpcClient.connection.disconnect();\n  }\n\n  /**\n   * Ask addresses from wallet\n   * @returns Addresses from wallet\n   */\n  async askAddresses(): Promise<Encoded.AccountAddress[]> {\n    this._ensureConnected();\n    return this.rpcClient.request(METHODS.address, undefined);\n  }\n\n  /**\n   * Subscribe for addresses from wallet\n   * @param type - Subscription type\n   * @param value - Should be one of 'current' (the selected account), 'connected' (all)\n   * @returns Accounts from wallet\n   */\n  async subscribeAddress(\n    type: SUBSCRIPTION_TYPES,\n    value: 'current' | 'connected',\n  ): Promise<ReturnType<WalletApi[METHODS.subscribeAddress]>> {\n    this._ensureConnected();\n    const result = await this.rpcClient.request(METHODS.subscribeAddress, { type, value });\n    this._accounts = result.address;\n    return result;\n  }\n\n  /**\n   * Ask wallet to select a network\n   */\n  async askToSelectNetwork(network: NetworkToSelect): Promise<void> {\n    this._ensureConnected();\n    await this.rpcClient.request(METHODS.updateNetwork, network);\n  }\n\n  _ensureConnected(): asserts this is AeSdkAepp & {\n    rpcClient: NonNullable<AeSdkAepp['rpcClient']>;\n  } {\n    if (this.rpcClient != null) return;\n    throw new NoWalletConnectedError('You are not connected to Wallet');\n  }\n\n  _ensureAccountAccess(): asserts this is AeSdkAepp & {\n    rpcClient: NonNullable<AeSdkAepp['rpcClient']>;\n  } {\n    this._ensureConnected();\n    if (this.addresses().length !== 0) return;\n    throw new UnsubscribedAccountError();\n  }\n}\n","import { Encoded } from '../../utils/encoder.js';\nimport { Domain, AciValue } from '../../utils/typed-data.js';\nimport { METHODS, SUBSCRIPTION_TYPES, WALLET_TYPE } from '../schema.js';\nimport { SignedTx } from '../../apis/node/index.js';\n\nexport interface WalletInfo {\n  id: string;\n  name: string;\n  networkId: string;\n  origin: string; // TODO: origin needs to be provided by transport\n  type: WALLET_TYPE;\n}\n\nexport interface Accounts {\n  connected: { [pub: Encoded.AccountAddress]: {} };\n  current: { [pub: Encoded.AccountAddress]: {} };\n}\n\nexport interface Node {\n  // TODO: name is not used, can be removed\n  name: string;\n  url: string;\n}\n\nexport interface Network {\n  networkId: string;\n  node?: Node;\n}\n\ntype Icons = Array<{ src: string; sizes?: string; type?: string; purpose?: string }>;\n\nexport const RPC_VERSION = 1;\n\nexport type NetworkToSelect = { networkId: string } | { nodeUrl: string };\n\nexport interface WalletApi {\n  [METHODS.connect]: (p: {\n    name: string;\n    icons?: Icons;\n    version: typeof RPC_VERSION;\n    connectNode: boolean;\n  }) => Promise<WalletInfo & { node?: Node }>;\n\n  [METHODS.closeConnection]: (p: any) => void;\n\n  [METHODS.subscribeAddress]: (p: {\n    type: SUBSCRIPTION_TYPES;\n    value: 'connected' | 'current';\n  }) => Promise<{ subscription: Array<'connected' | 'current'>; address: Accounts }>;\n\n  [METHODS.address]: () => Promise<Encoded.AccountAddress[]>;\n\n  [METHODS.unsafeSign]: (p: {\n    data: Encoded.Bytearray;\n    onAccount: Encoded.AccountAddress;\n  }) => Promise<{ signature: Encoded.Signature }>;\n\n  [METHODS.sign]: (p: {\n    tx: Encoded.Transaction;\n    onAccount: Encoded.AccountAddress;\n    returnSigned: boolean;\n    /**\n     * @deprecated Wallet provided networkId will be used (current network)\n     * required to maintain backward compatibility with wallets using SDK v11.0.1 and below\n     * @see {@link https://github.com/aeternity/aepp-sdk-js/commit/153fd89a52c4eab39fcd659b356b36d32129c1ba}\n     */\n    networkId: string;\n    innerTx?: boolean;\n  }) => Promise<{\n    /**\n     * @deprecated this is not a hash at all, will be removed later at the same time\n     * as dropping ability to broadcast transaction by wallet\n     */\n    transactionHash?: Partial<SignedTx> & {\n      hash: Encoded.TxHash;\n      rawTx: Encoded.Transaction;\n    };\n    signedTransaction?: Encoded.Transaction;\n  }>;\n\n  [METHODS.signMessage]: (p: {\n    message: string;\n    onAccount: Encoded.AccountAddress;\n  }) => Promise<{ signature: string }>;\n\n  [METHODS.signTypedData]: (p: {\n    domain: Domain;\n    aci: AciValue;\n    data: Encoded.ContractBytearray;\n    onAccount: Encoded.AccountAddress;\n  }) => Promise<{ signature: Encoded.Signature }>;\n\n  [METHODS.signDelegation]: (p: {\n    delegation: Encoded.Bytearray;\n    onAccount: Encoded.AccountAddress;\n  }) => Promise<{ signature: Encoded.Signature }>;\n\n  [METHODS.updateNetwork]: (a: NetworkToSelect) => Promise<null>;\n}\n\nexport interface AeppApi {\n  [METHODS.updateAddress]: (a: Accounts) => void;\n  [METHODS.updateNetwork]: (a: Network) => void;\n  [METHODS.readyToConnect]: (w: WalletInfo) => void;\n  [METHODS.closeConnection]: (p: any) => void;\n}\n","import { EventEmitter } from 'eventemitter3';\nimport AccountRpc from '../account/Rpc.js';\nimport { Encoded } from '../utils/encoder.js';\nimport {\n  Accounts,\n  RPC_VERSION,\n  Network,\n  WalletApi,\n  AeppApi,\n  NetworkToSelect,\n} from './rpc/types.js';\nimport RpcClient from './rpc/RpcClient.js';\nimport { METHODS, SUBSCRIPTION_TYPES } from './schema.js';\nimport { NoWalletConnectedError } from '../utils/errors.js';\nimport BrowserConnection from './connection/Browser.js';\n\ninterface EventsBase {\n  accountsChange: (accounts: AccountRpc[]) => void;\n  disconnect: (p: any) => void;\n}\n\nexport default abstract class WalletConnectorFrameBase<T extends {}> extends EventEmitter<\n  EventsBase | T\n> {\n  #rpcClient?: RpcClient<WalletApi, AeppApi>;\n\n  #getRpcClient(): RpcClient<WalletApi, AeppApi> {\n    if (this.#rpcClient == null)\n      throw new NoWalletConnectedError('You are not connected to Wallet');\n    return this.#rpcClient;\n  }\n\n  /**\n   * Is connected to wallet\n   */\n  get isConnected(): boolean {\n    return this.#rpcClient != null;\n  }\n\n  #accounts: AccountRpc[] = [];\n\n  /**\n   * Accounts provided by wallet over subscription\n   */\n  get accounts(): AccountRpc[] {\n    return this.#accounts;\n  }\n\n  protected constructor() {\n    super();\n  }\n\n  protected abstract _updateNetwork(params: Network): void;\n\n  #updateAccounts(params: Accounts): void {\n    const addresses = [\n      ...new Set([...Object.keys(params.current), ...Object.keys(params.connected)]),\n    ] as Encoded.AccountAddress[];\n    this.#accounts = addresses.map((address) => new AccountRpc(this.#getRpcClient(), address));\n    this.emit('accountsChange', this.#accounts);\n  }\n\n  static async _connect(\n    name: string,\n    connection: BrowserConnection,\n    connector: WalletConnectorFrameBase<any>,\n    connectNode: boolean,\n  ): Promise<void> {\n    let disconnectParams: any;\n\n    const client = new RpcClient<WalletApi, AeppApi>(\n      connection,\n      () => {\n        connector.#rpcClient = undefined;\n        connector.#accounts = [];\n        connector.emit('disconnect', disconnectParams);\n      },\n      {\n        [METHODS.updateAddress]: connector.#updateAccounts.bind(connector),\n        [METHODS.updateNetwork]: connector._updateNetwork.bind(connector),\n        [METHODS.closeConnection]: (params) => {\n          disconnectParams = params;\n          client.connection.disconnect();\n        },\n        [METHODS.readyToConnect]: () => {},\n      },\n    );\n    connector.#rpcClient = client;\n    const walletInfo = await connector.#rpcClient.request(METHODS.connect, {\n      name,\n      version: RPC_VERSION,\n      connectNode,\n    });\n    connector._updateNetwork(walletInfo);\n  }\n\n  /**\n   * Disconnect from wallet\n   */\n  disconnect(): void {\n    const client = this.#getRpcClient();\n    client.notify(METHODS.closeConnection, { reason: 'bye' });\n    client.connection.disconnect();\n  }\n\n  /**\n   * Request accounts from wallet\n   */\n  async getAccounts(): Promise<AccountRpc[]> {\n    const client = this.#getRpcClient();\n    const addresses = await client.request(METHODS.address, undefined);\n    return addresses.map((address) => new AccountRpc(client, address));\n  }\n\n  /**\n   * Subscribe for wallet accounts, get account updates adding handler to `accountsChange` event\n   * @param type - Subscription type\n   * @param value - Should be one of 'current' (the selected account), 'connected' (all)\n   * @returns Accounts from wallet\n   */\n  async subscribeAccounts(\n    type: SUBSCRIPTION_TYPES,\n    value: 'current' | 'connected',\n  ): Promise<AccountRpc[]> {\n    const result = await this.#getRpcClient().request(METHODS.subscribeAddress, { type, value });\n    this.#updateAccounts(result.address);\n    return this.#accounts;\n  }\n\n  /**\n   * Ask wallet to select a network\n   */\n  async askToSelectNetwork(network: NetworkToSelect): Promise<void> {\n    await this.#getRpcClient().request(METHODS.updateNetwork, network);\n  }\n}\n","import { Network } from './rpc/types.js';\nimport BrowserConnection from './connection/Browser.js';\nimport WalletConnectorFrameBase from './WalletConnectorFrameBase.js';\n\ninterface EventsNetworkId {\n  networkIdChange: (networkId: string) => void;\n}\n\n/**\n * Connect to wallet as iframe/web-extension\n * @category aepp wallet communication\n */\nexport default class WalletConnectorFrame extends WalletConnectorFrameBase<EventsNetworkId> {\n  #networkId = '';\n\n  /**\n   * The last network id reported by wallet\n   */\n  get networkId(): string {\n    return this.#networkId;\n  }\n\n  protected override _updateNetwork(params: Network): void {\n    this.#networkId = params.networkId;\n    this.emit('networkIdChange', this.#networkId);\n  }\n\n  /**\n   * Connect to wallet\n   * @param name - Aepp name\n   * @param connection - Wallet connection object\n   */\n  static async connect(name: string, connection: BrowserConnection): Promise<WalletConnectorFrame> {\n    const connector = new WalletConnectorFrame();\n    await WalletConnectorFrame._connect(name, connection, connector, false);\n    return connector;\n  }\n}\n","import { Network } from './rpc/types.js';\nimport { RpcConnectionError } from '../utils/errors.js';\nimport Node from '../Node.js';\nimport BrowserConnection from './connection/Browser.js';\nimport WalletConnectorFrameBase from './WalletConnectorFrameBase.js';\n\ninterface EventsWithNode {\n  nodeChange: (node: Node) => void;\n}\n\n/**\n * Connect to wallet as iframe/web-extension, asks wallet to provide node url\n * In comparison with WalletConnectorFrame, this would work better for decentralized applications\n * @category aepp wallet communication\n */\nexport default class WalletConnectorFrameWithNode extends WalletConnectorFrameBase<EventsWithNode> {\n  #node: Node = null as unknown as Node;\n\n  /**\n   * The node instance provided by wallet\n   */\n  get node(): Node {\n    return this.#node;\n  }\n\n  protected override _updateNetwork(params: Network): void {\n    if (params.node?.url == null) throw new RpcConnectionError('Missing URLs of the Node');\n    this.#node = new Node(params.node.url);\n    this.emit('nodeChange', this.#node);\n  }\n\n  /**\n   * Connect to wallet\n   * @param name - Aepp name\n   * @param connection - Wallet connection object\n   */\n  static async connect(\n    name: string,\n    connection: BrowserConnection,\n  ): Promise<WalletConnectorFrameWithNode> {\n    const connector = new WalletConnectorFrameWithNode();\n    await super._connect(name, connection, connector, true);\n    return connector;\n  }\n}\n","import JsonBig from 'json-bigint';\nimport BigNumber from 'bignumber.js';\nimport { mapObject } from './other.js';\n\nconst jsonBig = JsonBig({ storeAsString: true });\n\nconst convertValuesToBigNumbers = (value: any): any => {\n  if (typeof value === 'object' && value !== null && value.constructor === Object) {\n    return mapObject(value, ([k, v]) => [k, convertValuesToBigNumbers(v)]);\n  }\n  if (Array.isArray(value)) {\n    return value.map((item) => convertValuesToBigNumbers(item));\n  }\n  if (typeof value === 'string' && new BigNumber(value).toString(10) === value) {\n    const bn = new BigNumber(value);\n    bn.toJSON = () => bn.toString(10);\n    return bn;\n  }\n  return value;\n};\n\nexport default {\n  stringify: (...args: Parameters<(typeof JsonBig)['stringify']>): string =>\n    jsonBig.stringify(convertValuesToBigNumbers(args[0]), ...args.slice(1)),\n  parse: jsonBig.parse,\n};\n","import nacl from 'tweetnacl';\nimport AeSdk from './AeSdk.js';\nimport verifyTransaction from './tx/validator.js';\nimport RpcClient from './aepp-wallet-communication/rpc/RpcClient.js';\nimport {\n  METHODS,\n  RPC_STATUS,\n  SUBSCRIPTION_TYPES,\n  WALLET_TYPE,\n  RpcInvalidTransactionError,\n  RpcNotAuthorizeError,\n  RpcPermissionDenyError,\n  RpcUnsupportedProtocolError,\n} from './aepp-wallet-communication/schema.js';\nimport { InternalError, UnknownRpcClientError } from './utils/errors.js';\nimport AccountBase from './account/Base.js';\nimport BrowserConnection from './aepp-wallet-communication/connection/Browser.js';\nimport {\n  Accounts,\n  AeppApi,\n  Network,\n  NetworkToSelect,\n  RPC_VERSION,\n  WalletApi,\n  WalletInfo,\n} from './aepp-wallet-communication/rpc/types.js';\nimport { Encoded, Encoding, encode, decode } from './utils/encoder.js';\nimport jsonBig from './utils/json-big.js';\n\ntype RpcClientWallet = RpcClient<AeppApi, WalletApi>;\n\ntype OnConnection = (\n  clientId: string,\n  params: Omit<Parameters<WalletApi[METHODS.connect]>[0], 'version'>,\n  origin: string,\n) => void;\n\ntype OnSubscription = (\n  clientId: string,\n  params: Parameters<WalletApi[METHODS.subscribeAddress]>[0],\n  origin: string,\n) => void;\n\ntype OnDisconnect = (\n  clientId: string,\n  params: Parameters<WalletApi[METHODS.closeConnection]>[0],\n) => void;\n\ntype OnAskAccounts = (clientId: string, params: undefined, origin: string) => void;\n\ntype OnAskToSelectNetwork = (clientId: string, params: NetworkToSelect, origin: string) => void;\n\ninterface RpcClientsInfo {\n  id: string;\n  status: RPC_STATUS;\n  connectNode: boolean;\n  addressSubscription: Set<'connected' | 'current'>;\n  rpc: RpcClientWallet;\n}\n\n/**\n * Contain functionality for aepp interaction and managing multiple aepps\n * @category aepp wallet communication\n */\nexport default class AeSdkWallet extends AeSdk {\n  id: string;\n\n  _type: WALLET_TYPE;\n\n  name: string;\n\n  _clients = new Map<string, RpcClientsInfo>();\n\n  onConnection: OnConnection;\n\n  onSubscription: OnSubscription;\n\n  onDisconnect: OnDisconnect;\n\n  onAskAccounts: OnAskAccounts;\n\n  onAskToSelectNetwork: OnAskToSelectNetwork;\n\n  /**\n   * @param options - Options\n   * @param options.name - Wallet name\n   * @param options.id - Wallet id\n   * @param options.type - Wallet type\n   * @param options.onConnection - Call-back function for incoming AEPP connection\n   * @param options.onSubscription - Call-back function for incoming AEPP account subscription\n   * @param options.onAskAccounts - Call-back function for incoming AEPP get address request\n   * @param options.onAskToSelectNetwork - Call-back function for incoming AEPP select network\n   * request. If the request is fine then this function should change the current network.\n   * @param options.onDisconnect - Call-back function for disconnect event\n   */\n  constructor({\n    name,\n    id,\n    type,\n    onConnection,\n    onSubscription,\n    onDisconnect,\n    onAskAccounts,\n    onAskToSelectNetwork,\n    ...options\n  }: {\n    id: string;\n    type: WALLET_TYPE;\n    name: string;\n    onConnection: OnConnection;\n    onSubscription: OnSubscription;\n    onDisconnect: OnDisconnect;\n    onAskAccounts: OnAskAccounts;\n    onAskToSelectNetwork: OnAskToSelectNetwork;\n  } & ConstructorParameters<typeof AeSdk>[0]) {\n    super(options);\n    this.onConnection = onConnection;\n    this.onSubscription = onSubscription;\n    this.onDisconnect = onDisconnect;\n    this.onAskAccounts = onAskAccounts;\n    this.onAskToSelectNetwork = onAskToSelectNetwork;\n    this.name = name;\n    this.id = id;\n    this._type = type;\n  }\n\n  _getAccountsForClient({ addressSubscription }: RpcClientsInfo): Accounts {\n    const { current, connected } = this.getAccounts();\n    return {\n      current:\n        addressSubscription.has('current') || addressSubscription.has('connected') ? current : {},\n      connected: addressSubscription.has('connected') ? connected : {},\n    };\n  }\n\n  _pushAccountsToApps(): void {\n    if (this._clients == null) return;\n    Array.from(this._clients.keys())\n      .filter((clientId) => this._isRpcClientConnected(clientId))\n      .map((clientId) => this._getClient(clientId))\n      .filter((client) => client.addressSubscription.size !== 0)\n      .forEach((client) =>\n        client.rpc.notify(METHODS.updateAddress, this._getAccountsForClient(client)),\n      );\n  }\n\n  override selectAccount(address: Encoded.AccountAddress): void {\n    super.selectAccount(address);\n    this._pushAccountsToApps();\n  }\n\n  override addAccount(account: AccountBase, options?: Parameters<AeSdk['addAccount']>[1]): void {\n    super.addAccount(account, options);\n    this._pushAccountsToApps();\n  }\n\n  _getNode(): { node: Network['node'] } {\n    this.ensureNodeConnected();\n    return { node: { url: this.api.$host, name: this.selectedNodeName } };\n  }\n\n  override async selectNode(name: string): Promise<void> {\n    super.selectNode(name);\n    const networkId = await this.api.getNetworkId();\n    Array.from(this._clients.keys())\n      .filter((clientId) => this._isRpcClientConnected(clientId))\n      .map((clientId) => this._getClient(clientId))\n      .forEach((client) => {\n        client.rpc.notify(METHODS.updateNetwork, {\n          networkId,\n          ...(client.connectNode && this._getNode()),\n        });\n      });\n  }\n\n  _getClient(clientId: string): RpcClientsInfo {\n    const client = this._clients.get(clientId);\n    if (client == null) throw new UnknownRpcClientError(clientId);\n    return client;\n  }\n\n  _isRpcClientConnected(clientId: string): boolean {\n    return (\n      RPC_STATUS.CONNECTED === this._getClient(clientId).status &&\n      this._getClient(clientId).rpc.connection.isConnected()\n    );\n  }\n\n  _disconnectRpcClient(clientId: string): void {\n    const client = this._getClient(clientId);\n    client.rpc.connection.disconnect();\n    client.status = RPC_STATUS.DISCONNECTED;\n    client.addressSubscription = new Set();\n  }\n\n  /**\n   * Remove specific RpcClient by ID\n   * @param id - Client ID\n   */\n  removeRpcClient(id: string): void {\n    this._disconnectRpcClient(id);\n    this._clients.delete(id);\n  }\n\n  /**\n   * Add new client by AEPP connection\n   * @param clientConnection - AEPP connection object\n   * @returns Client ID\n   */\n  addRpcClient(clientConnection: BrowserConnection): string {\n    // @TODO  detect if aepp has some history based on origin????\n    // if yes use this instance for connection\n    const id = Buffer.from(nacl.randomBytes(8)).toString('base64');\n    let disconnectParams: any;\n    const client: RpcClientsInfo = {\n      id,\n      status: RPC_STATUS.WAITING_FOR_CONNECTION_REQUEST,\n      addressSubscription: new Set(),\n      connectNode: false,\n      rpc: new RpcClient<AeppApi, WalletApi>(\n        clientConnection,\n        () => {\n          this._clients.delete(id);\n          this.onDisconnect(id, disconnectParams); // also related info\n        },\n        {\n          [METHODS.closeConnection]: (params) => {\n            disconnectParams = params;\n            this._disconnectRpcClient(id);\n          },\n          // Store client info and prepare two fn for each client `connect` and `denyConnection`\n          // which automatically prepare and send response for that client\n          [METHODS.connect]: async ({ name, version, icons, connectNode }, origin) => {\n            if (version !== RPC_VERSION) throw new RpcUnsupportedProtocolError();\n\n            await this.onConnection(id, { name, icons, connectNode }, origin);\n            client.status = RPC_STATUS.CONNECTED;\n            client.connectNode = connectNode;\n            return {\n              ...(await this.getWalletInfo()),\n              ...(connectNode && this._getNode()),\n            };\n          },\n          [METHODS.subscribeAddress]: async ({ type, value }, origin) => {\n            if (!this._isRpcClientConnected(id)) throw new RpcNotAuthorizeError();\n\n            switch (type) {\n              case SUBSCRIPTION_TYPES.subscribe:\n                // TODO: remove `type` as it always subscribe\n                await this.onSubscription(id, { type, value }, origin);\n                client.addressSubscription.add(value);\n                break;\n              case SUBSCRIPTION_TYPES.unsubscribe:\n                client.addressSubscription.delete(value);\n                break;\n              default:\n                throw new InternalError(`Unknown subscription type: ${type}`);\n            }\n\n            return {\n              subscription: Array.from(client.addressSubscription),\n              address: this._getAccountsForClient(client),\n            };\n          },\n          [METHODS.address]: async (params, origin) => {\n            if (!this._isRpcClientConnected(id)) throw new RpcNotAuthorizeError();\n            await this.onAskAccounts(id, params, origin);\n            return this.addresses();\n          },\n          [METHODS.sign]: async (\n            { tx, onAccount = this.address, returnSigned, innerTx },\n            origin,\n          ) => {\n            if (!this._isRpcClientConnected(id)) throw new RpcNotAuthorizeError();\n            if (!this.addresses().includes(onAccount)) {\n              throw new RpcPermissionDenyError(onAccount);\n            }\n\n            const parameters = {\n              onAccount,\n              aeppOrigin: origin,\n              aeppRpcClientId: id,\n              innerTx,\n            };\n            if (returnSigned || innerTx === true) {\n              return { signedTransaction: await this.signTransaction(tx, parameters) };\n            }\n            try {\n              return jsonBig.parse(\n                jsonBig.stringify({\n                  transactionHash: await this.sendTransaction(tx, { ...parameters, verify: false }),\n                }),\n              );\n            } catch (error) {\n              const validation = await verifyTransaction(tx, this.api);\n              if (validation.length > 0) throw new RpcInvalidTransactionError(validation);\n              throw error;\n            }\n          },\n          [METHODS.signMessage]: async ({ message, onAccount = this.address }, origin) => {\n            if (!this._isRpcClientConnected(id)) throw new RpcNotAuthorizeError();\n            if (!this.addresses().includes(onAccount)) {\n              throw new RpcPermissionDenyError(onAccount);\n            }\n\n            const parameters = { onAccount, aeppOrigin: origin, aeppRpcClientId: id };\n            return {\n              signature: Buffer.from(await this.signMessage(message, parameters)).toString('hex'),\n            };\n          },\n          [METHODS.signTypedData]: async (\n            { domain, aci, data, onAccount = this.address },\n            origin,\n          ) => {\n            if (!this._isRpcClientConnected(id)) throw new RpcNotAuthorizeError();\n            if (!this.addresses().includes(onAccount)) {\n              throw new RpcPermissionDenyError(onAccount);\n            }\n\n            const parameters = {\n              ...domain,\n              onAccount,\n              aeppOrigin: origin,\n              aeppRpcClientId: id,\n            };\n            return {\n              signature: await this.signTypedData(data, aci, parameters),\n            };\n          },\n          [METHODS.unsafeSign]: async ({ data, onAccount = this.address }, origin) => {\n            if (!this._isRpcClientConnected(id)) throw new RpcNotAuthorizeError();\n            if (!this.addresses().includes(onAccount)) throw new RpcPermissionDenyError(onAccount);\n            const parameters = { onAccount, aeppOrigin: origin, aeppRpcClientId: id };\n            const signature = encode(\n              await this.unsafeSign(decode(data), parameters),\n              Encoding.Signature,\n            );\n            return { signature };\n          },\n          [METHODS.signDelegation]: async ({ delegation, onAccount = this.address }, origin) => {\n            if (!this._isRpcClientConnected(id)) throw new RpcNotAuthorizeError();\n            if (!this.addresses().includes(onAccount)) throw new RpcPermissionDenyError(onAccount);\n            const parameters = { onAccount, aeppOrigin: origin, aeppRpcClientId: id };\n            const signature = await this.signDelegation(delegation, parameters);\n            return { signature };\n          },\n          [METHODS.updateNetwork]: async (params, origin) => {\n            if (!this._isRpcClientConnected(id)) throw new RpcNotAuthorizeError();\n            await this.onAskToSelectNetwork(id, params, origin);\n            return null;\n          },\n        },\n      ),\n    };\n    this._clients.set(id, client);\n    return id;\n  }\n\n  /**\n   * Send shareWalletInfo message to notify AEPP about wallet\n   * @param clientId - ID of RPC client send message to\n   */\n  async shareWalletInfo(clientId: string): Promise<void> {\n    this._getClient(clientId).rpc.notify(METHODS.readyToConnect, await this.getWalletInfo());\n  }\n\n  /**\n   * Get Wallet info object\n   * @returns Object with wallet information\n   */\n  async getWalletInfo(): Promise<WalletInfo> {\n    const { origin } = window.location;\n    return {\n      id: this.id,\n      name: this.name,\n      networkId: await this.api.getNetworkId(),\n      origin: origin === 'file://' ? '*' : origin,\n      type: this._type,\n    };\n  }\n\n  /**\n   * Get Wallet accounts\n   * @returns Object with accounts information (\\{ connected: Object, current: Object \\})\n   */\n  getAccounts(): Accounts {\n    return {\n      current: this.selectedAddress != null ? { [this.selectedAddress]: {} } : {},\n      connected: this.addresses()\n        .filter((a) => a !== this.selectedAddress)\n        .reduce((acc, a) => ({ ...acc, [a]: {} }), {}),\n    };\n  }\n}\n","/**\n * Utilities for hex, bytes, CSPRNG.\n * @module\n */\n/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+.\n// node.js versions earlier than v19 don't declare it in global scope.\n// For node.js, package.json#exports field mapping rewrites import\n// from `crypto` to `cryptoNode`, which imports native module.\n// Makes the utils un-importable in browsers without a bundler.\n// Once node.js 18 is deprecated (2025-04-30), we can just drop the import.\nimport { crypto } from '@noble/hashes/crypto';\n/** Checks if something is Uint8Array. Be careful: nodejs Buffer will return true. */\nexport function isBytes(a) {\n    return a instanceof Uint8Array || (ArrayBuffer.isView(a) && a.constructor.name === 'Uint8Array');\n}\n/** Asserts something is positive integer. */\nexport function anumber(n) {\n    if (!Number.isSafeInteger(n) || n < 0)\n        throw new Error('positive integer expected, got ' + n);\n}\n/** Asserts something is Uint8Array. */\nexport function abytes(b, ...lengths) {\n    if (!isBytes(b))\n        throw new Error('Uint8Array expected');\n    if (lengths.length > 0 && !lengths.includes(b.length))\n        throw new Error('Uint8Array expected of length ' + lengths + ', got length=' + b.length);\n}\n/** Asserts something is hash */\nexport function ahash(h) {\n    if (typeof h !== 'function' || typeof h.create !== 'function')\n        throw new Error('Hash should be wrapped by utils.createHasher');\n    anumber(h.outputLen);\n    anumber(h.blockLen);\n}\n/** Asserts a hash instance has not been destroyed / finished */\nexport function aexists(instance, checkFinished = true) {\n    if (instance.destroyed)\n        throw new Error('Hash instance has been destroyed');\n    if (checkFinished && instance.finished)\n        throw new Error('Hash#digest() has already been called');\n}\n/** Asserts output is properly-sized byte array */\nexport function aoutput(out, instance) {\n    abytes(out);\n    const min = instance.outputLen;\n    if (out.length < min) {\n        throw new Error('digestInto() expects output buffer of length at least ' + min);\n    }\n}\n/** Cast u8 / u16 / u32 to u8. */\nexport function u8(arr) {\n    return new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\n}\n/** Cast u8 / u16 / u32 to u32. */\nexport function u32(arr) {\n    return new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n}\n/** Zeroize a byte array. Warning: JS provides no guarantees. */\nexport function clean(...arrays) {\n    for (let i = 0; i < arrays.length; i++) {\n        arrays[i].fill(0);\n    }\n}\n/** Create DataView of an array for easy byte-level manipulation. */\nexport function createView(arr) {\n    return new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n}\n/** The rotate right (circular right shift) operation for uint32 */\nexport function rotr(word, shift) {\n    return (word << (32 - shift)) | (word >>> shift);\n}\n/** The rotate left (circular left shift) operation for uint32 */\nexport function rotl(word, shift) {\n    return (word << shift) | ((word >>> (32 - shift)) >>> 0);\n}\n/** Is current platform little-endian? Most are. Big-Endian platform: IBM */\nexport const isLE = /* @__PURE__ */ (() => new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44)();\n/** The byte swap operation for uint32 */\nexport function byteSwap(word) {\n    return (((word << 24) & 0xff000000) |\n        ((word << 8) & 0xff0000) |\n        ((word >>> 8) & 0xff00) |\n        ((word >>> 24) & 0xff));\n}\n/** Conditionally byte swap if on a big-endian platform */\nexport const swap8IfBE = isLE\n    ? (n) => n\n    : (n) => byteSwap(n);\n/** @deprecated */\nexport const byteSwapIfBE = swap8IfBE;\n/** In place byte swap for Uint32Array */\nexport function byteSwap32(arr) {\n    for (let i = 0; i < arr.length; i++) {\n        arr[i] = byteSwap(arr[i]);\n    }\n    return arr;\n}\nexport const swap32IfBE = isLE\n    ? (u) => u\n    : byteSwap32;\n// Built-in hex conversion https://caniuse.com/mdn-javascript_builtins_uint8array_fromhex\nconst hasHexBuiltin = /* @__PURE__ */ (() => \n// @ts-ignore\ntypeof Uint8Array.from([]).toHex === 'function' && typeof Uint8Array.fromHex === 'function')();\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, '0'));\n/**\n * Convert byte array to hex string. Uses built-in function, when available.\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nexport function bytesToHex(bytes) {\n    abytes(bytes);\n    // @ts-ignore\n    if (hasHexBuiltin)\n        return bytes.toHex();\n    // pre-caching improves the speed 6x\n    let hex = '';\n    for (let i = 0; i < bytes.length; i++) {\n        hex += hexes[bytes[i]];\n    }\n    return hex;\n}\n// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, A: 65, F: 70, a: 97, f: 102 };\nfunction asciiToBase16(ch) {\n    if (ch >= asciis._0 && ch <= asciis._9)\n        return ch - asciis._0; // '2' => 50-48\n    if (ch >= asciis.A && ch <= asciis.F)\n        return ch - (asciis.A - 10); // 'B' => 66-(65-10)\n    if (ch >= asciis.a && ch <= asciis.f)\n        return ch - (asciis.a - 10); // 'b' => 98-(97-10)\n    return;\n}\n/**\n * Convert hex string to byte array. Uses built-in function, when available.\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nexport function hexToBytes(hex) {\n    if (typeof hex !== 'string')\n        throw new Error('hex string expected, got ' + typeof hex);\n    // @ts-ignore\n    if (hasHexBuiltin)\n        return Uint8Array.fromHex(hex);\n    const hl = hex.length;\n    const al = hl / 2;\n    if (hl % 2)\n        throw new Error('hex string expected, got unpadded hex of length ' + hl);\n    const array = new Uint8Array(al);\n    for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n        const n1 = asciiToBase16(hex.charCodeAt(hi));\n        const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n        if (n1 === undefined || n2 === undefined) {\n            const char = hex[hi] + hex[hi + 1];\n            throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n        }\n        array[ai] = n1 * 16 + n2; // multiply first octet, e.g. 'a3' => 10*16+3 => 160 + 3 => 163\n    }\n    return array;\n}\n/**\n * There is no setImmediate in browser and setTimeout is slow.\n * Call of async fn will return Promise, which will be fullfiled only on\n * next scheduler queue processing step and this is exactly what we need.\n */\nexport const nextTick = async () => { };\n/** Returns control to thread each 'tick' ms to avoid blocking. */\nexport async function asyncLoop(iters, tick, cb) {\n    let ts = Date.now();\n    for (let i = 0; i < iters; i++) {\n        cb(i);\n        // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n        const diff = Date.now() - ts;\n        if (diff >= 0 && diff < tick)\n            continue;\n        await nextTick();\n        ts += diff;\n    }\n}\n/**\n * Converts string to bytes using UTF8 encoding.\n * @example utf8ToBytes('abc') // Uint8Array.from([97, 98, 99])\n */\nexport function utf8ToBytes(str) {\n    if (typeof str !== 'string')\n        throw new Error('string expected');\n    return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n/**\n * Converts bytes to string using UTF8 encoding.\n * @example bytesToUtf8(Uint8Array.from([97, 98, 99])) // 'abc'\n */\nexport function bytesToUtf8(bytes) {\n    return new TextDecoder().decode(bytes);\n}\n/**\n * Normalizes (non-hex) string or Uint8Array to Uint8Array.\n * Warning: when Uint8Array is passed, it would NOT get copied.\n * Keep in mind for future mutable operations.\n */\nexport function toBytes(data) {\n    if (typeof data === 'string')\n        data = utf8ToBytes(data);\n    abytes(data);\n    return data;\n}\n/**\n * Helper for KDFs: consumes uint8array or string.\n * When string is passed, does utf8 decoding, using TextDecoder.\n */\nexport function kdfInputToBytes(data) {\n    if (typeof data === 'string')\n        data = utf8ToBytes(data);\n    abytes(data);\n    return data;\n}\n/** Copies several Uint8Arrays into one. */\nexport function concatBytes(...arrays) {\n    let sum = 0;\n    for (let i = 0; i < arrays.length; i++) {\n        const a = arrays[i];\n        abytes(a);\n        sum += a.length;\n    }\n    const res = new Uint8Array(sum);\n    for (let i = 0, pad = 0; i < arrays.length; i++) {\n        const a = arrays[i];\n        res.set(a, pad);\n        pad += a.length;\n    }\n    return res;\n}\nexport function checkOpts(defaults, opts) {\n    if (opts !== undefined && {}.toString.call(opts) !== '[object Object]')\n        throw new Error('options should be object or undefined');\n    const merged = Object.assign(defaults, opts);\n    return merged;\n}\n/** For runtime check if class implements interface */\nexport class Hash {\n}\n/** Wraps hash function, creating an interface on top of it */\nexport function createHasher(hashCons) {\n    const hashC = (msg) => hashCons().update(toBytes(msg)).digest();\n    const tmp = hashCons();\n    hashC.outputLen = tmp.outputLen;\n    hashC.blockLen = tmp.blockLen;\n    hashC.create = () => hashCons();\n    return hashC;\n}\nexport function createOptHasher(hashCons) {\n    const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n    const tmp = hashCons({});\n    hashC.outputLen = tmp.outputLen;\n    hashC.blockLen = tmp.blockLen;\n    hashC.create = (opts) => hashCons(opts);\n    return hashC;\n}\nexport function createXOFer(hashCons) {\n    const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n    const tmp = hashCons({});\n    hashC.outputLen = tmp.outputLen;\n    hashC.blockLen = tmp.blockLen;\n    hashC.create = (opts) => hashCons(opts);\n    return hashC;\n}\nexport const wrapConstructor = createHasher;\nexport const wrapConstructorWithOpts = createOptHasher;\nexport const wrapXOFConstructorWithOpts = createXOFer;\n/** Cryptographically secure PRNG. Uses internal OS-level `crypto.getRandomValues`. */\nexport function randomBytes(bytesLength = 32) {\n    if (crypto && typeof crypto.getRandomValues === 'function') {\n        return crypto.getRandomValues(new Uint8Array(bytesLength));\n    }\n    // Legacy Node.js compatibility\n    if (crypto && typeof crypto.randomBytes === 'function') {\n        return Uint8Array.from(crypto.randomBytes(bytesLength));\n    }\n    throw new Error('crypto.getRandomValues must be defined');\n}\n//# sourceMappingURL=utils.js.map","/**\n * HMAC: RFC2104 message authentication code.\n * @module\n */\nimport { abytes, aexists, ahash, clean, Hash, toBytes } from \"./utils.js\";\nexport class HMAC extends Hash {\n    constructor(hash, _key) {\n        super();\n        this.finished = false;\n        this.destroyed = false;\n        ahash(hash);\n        const key = toBytes(_key);\n        this.iHash = hash.create();\n        if (typeof this.iHash.update !== 'function')\n            throw new Error('Expected instance of class which extends utils.Hash');\n        this.blockLen = this.iHash.blockLen;\n        this.outputLen = this.iHash.outputLen;\n        const blockLen = this.blockLen;\n        const pad = new Uint8Array(blockLen);\n        // blockLen can be bigger than outputLen\n        pad.set(key.length > blockLen ? hash.create().update(key).digest() : key);\n        for (let i = 0; i < pad.length; i++)\n            pad[i] ^= 0x36;\n        this.iHash.update(pad);\n        // By doing update (processing of first block) of outer hash here we can re-use it between multiple calls via clone\n        this.oHash = hash.create();\n        // Undo internal XOR && apply outer XOR\n        for (let i = 0; i < pad.length; i++)\n            pad[i] ^= 0x36 ^ 0x5c;\n        this.oHash.update(pad);\n        clean(pad);\n    }\n    update(buf) {\n        aexists(this);\n        this.iHash.update(buf);\n        return this;\n    }\n    digestInto(out) {\n        aexists(this);\n        abytes(out, this.outputLen);\n        this.finished = true;\n        this.iHash.digestInto(out);\n        this.oHash.update(out);\n        this.oHash.digestInto(out);\n        this.destroy();\n    }\n    digest() {\n        const out = new Uint8Array(this.oHash.outputLen);\n        this.digestInto(out);\n        return out;\n    }\n    _cloneInto(to) {\n        // Create new instance without calling constructor since key already in state and we don't know it.\n        to || (to = Object.create(Object.getPrototypeOf(this), {}));\n        const { oHash, iHash, finished, destroyed, blockLen, outputLen } = this;\n        to = to;\n        to.finished = finished;\n        to.destroyed = destroyed;\n        to.blockLen = blockLen;\n        to.outputLen = outputLen;\n        to.oHash = oHash._cloneInto(to.oHash);\n        to.iHash = iHash._cloneInto(to.iHash);\n        return to;\n    }\n    clone() {\n        return this._cloneInto();\n    }\n    destroy() {\n        this.destroyed = true;\n        this.oHash.destroy();\n        this.iHash.destroy();\n    }\n}\n/**\n * HMAC: RFC2104 message authentication code.\n * @param hash - function that would be used e.g. sha256\n * @param key - message key\n * @param message - message data\n * @example\n * import { hmac } from '@noble/hashes/hmac';\n * import { sha256 } from '@noble/hashes/sha2';\n * const mac1 = hmac(sha256, 'key', 'message');\n */\nexport const hmac = (hash, key, message) => new HMAC(hash, key).update(message).digest();\nhmac.create = (hash, key) => new HMAC(hash, key);\n//# sourceMappingURL=hmac.js.map","/**\n * PBKDF (RFC 2898). Can be used to create a key from password and salt.\n * @module\n */\nimport { hmac } from \"./hmac.js\";\n// prettier-ignore\nimport { ahash, anumber, asyncLoop, checkOpts, clean, createView, Hash, kdfInputToBytes } from \"./utils.js\";\n// Common prologue and epilogue for sync/async functions\nfunction pbkdf2Init(hash, _password, _salt, _opts) {\n    ahash(hash);\n    const opts = checkOpts({ dkLen: 32, asyncTick: 10 }, _opts);\n    const { c, dkLen, asyncTick } = opts;\n    anumber(c);\n    anumber(dkLen);\n    anumber(asyncTick);\n    if (c < 1)\n        throw new Error('iterations (c) should be >= 1');\n    const password = kdfInputToBytes(_password);\n    const salt = kdfInputToBytes(_salt);\n    // DK = PBKDF2(PRF, Password, Salt, c, dkLen);\n    const DK = new Uint8Array(dkLen);\n    // U1 = PRF(Password, Salt + INT_32_BE(i))\n    const PRF = hmac.create(hash, password);\n    const PRFSalt = PRF._cloneInto().update(salt);\n    return { c, dkLen, asyncTick, DK, PRF, PRFSalt };\n}\nfunction pbkdf2Output(PRF, PRFSalt, DK, prfW, u) {\n    PRF.destroy();\n    PRFSalt.destroy();\n    if (prfW)\n        prfW.destroy();\n    clean(u);\n    return DK;\n}\n/**\n * PBKDF2-HMAC: RFC 2898 key derivation function\n * @param hash - hash function that would be used e.g. sha256\n * @param password - password from which a derived key is generated\n * @param salt - cryptographic salt\n * @param opts - {c, dkLen} where c is work factor and dkLen is output message size\n * @example\n * const key = pbkdf2(sha256, 'password', 'salt', { dkLen: 32, c: Math.pow(2, 18) });\n */\nexport function pbkdf2(hash, password, salt, opts) {\n    const { c, dkLen, DK, PRF, PRFSalt } = pbkdf2Init(hash, password, salt, opts);\n    let prfW; // Working copy\n    const arr = new Uint8Array(4);\n    const view = createView(arr);\n    const u = new Uint8Array(PRF.outputLen);\n    // DK = T1 + T2 + ⋯ + Tdklen/hlen\n    for (let ti = 1, pos = 0; pos < dkLen; ti++, pos += PRF.outputLen) {\n        // Ti = F(Password, Salt, c, i)\n        const Ti = DK.subarray(pos, pos + PRF.outputLen);\n        view.setInt32(0, ti, false);\n        // F(Password, Salt, c, i) = U1 ^ U2 ^ ⋯ ^ Uc\n        // U1 = PRF(Password, Salt + INT_32_BE(i))\n        (prfW = PRFSalt._cloneInto(prfW)).update(arr).digestInto(u);\n        Ti.set(u.subarray(0, Ti.length));\n        for (let ui = 1; ui < c; ui++) {\n            // Uc = PRF(Password, Uc−1)\n            PRF._cloneInto(prfW).update(u).digestInto(u);\n            for (let i = 0; i < Ti.length; i++)\n                Ti[i] ^= u[i];\n        }\n    }\n    return pbkdf2Output(PRF, PRFSalt, DK, prfW, u);\n}\n/**\n * PBKDF2-HMAC: RFC 2898 key derivation function. Async version.\n * @example\n * await pbkdf2Async(sha256, 'password', 'salt', { dkLen: 32, c: 500_000 });\n */\nexport async function pbkdf2Async(hash, password, salt, opts) {\n    const { c, dkLen, asyncTick, DK, PRF, PRFSalt } = pbkdf2Init(hash, password, salt, opts);\n    let prfW; // Working copy\n    const arr = new Uint8Array(4);\n    const view = createView(arr);\n    const u = new Uint8Array(PRF.outputLen);\n    // DK = T1 + T2 + ⋯ + Tdklen/hlen\n    for (let ti = 1, pos = 0; pos < dkLen; ti++, pos += PRF.outputLen) {\n        // Ti = F(Password, Salt, c, i)\n        const Ti = DK.subarray(pos, pos + PRF.outputLen);\n        view.setInt32(0, ti, false);\n        // F(Password, Salt, c, i) = U1 ^ U2 ^ ⋯ ^ Uc\n        // U1 = PRF(Password, Salt + INT_32_BE(i))\n        (prfW = PRFSalt._cloneInto(prfW)).update(arr).digestInto(u);\n        Ti.set(u.subarray(0, Ti.length));\n        await asyncLoop(c - 1, asyncTick, () => {\n            // Uc = PRF(Password, Uc−1)\n            PRF._cloneInto(prfW).update(u).digestInto(u);\n            for (let i = 0; i < Ti.length; i++)\n                Ti[i] ^= u[i];\n        });\n    }\n    return pbkdf2Output(PRF, PRFSalt, DK, prfW, u);\n}\n//# sourceMappingURL=pbkdf2.js.map","/**\n * Internal Merkle-Damgard hash utils.\n * @module\n */\nimport { Hash, abytes, aexists, aoutput, clean, createView, toBytes } from \"./utils.js\";\n/** Polyfill for Safari 14. https://caniuse.com/mdn-javascript_builtins_dataview_setbiguint64 */\nexport function setBigUint64(view, byteOffset, value, isLE) {\n    if (typeof view.setBigUint64 === 'function')\n        return view.setBigUint64(byteOffset, value, isLE);\n    const _32n = BigInt(32);\n    const _u32_max = BigInt(0xffffffff);\n    const wh = Number((value >> _32n) & _u32_max);\n    const wl = Number(value & _u32_max);\n    const h = isLE ? 4 : 0;\n    const l = isLE ? 0 : 4;\n    view.setUint32(byteOffset + h, wh, isLE);\n    view.setUint32(byteOffset + l, wl, isLE);\n}\n/** Choice: a ? b : c */\nexport function Chi(a, b, c) {\n    return (a & b) ^ (~a & c);\n}\n/** Majority function, true if any two inputs is true. */\nexport function Maj(a, b, c) {\n    return (a & b) ^ (a & c) ^ (b & c);\n}\n/**\n * Merkle-Damgard hash construction base class.\n * Could be used to create MD5, RIPEMD, SHA1, SHA2.\n */\nexport class HashMD extends Hash {\n    constructor(blockLen, outputLen, padOffset, isLE) {\n        super();\n        this.finished = false;\n        this.length = 0;\n        this.pos = 0;\n        this.destroyed = false;\n        this.blockLen = blockLen;\n        this.outputLen = outputLen;\n        this.padOffset = padOffset;\n        this.isLE = isLE;\n        this.buffer = new Uint8Array(blockLen);\n        this.view = createView(this.buffer);\n    }\n    update(data) {\n        aexists(this);\n        data = toBytes(data);\n        abytes(data);\n        const { view, buffer, blockLen } = this;\n        const len = data.length;\n        for (let pos = 0; pos < len;) {\n            const take = Math.min(blockLen - this.pos, len - pos);\n            // Fast path: we have at least one block in input, cast it to view and process\n            if (take === blockLen) {\n                const dataView = createView(data);\n                for (; blockLen <= len - pos; pos += blockLen)\n                    this.process(dataView, pos);\n                continue;\n            }\n            buffer.set(data.subarray(pos, pos + take), this.pos);\n            this.pos += take;\n            pos += take;\n            if (this.pos === blockLen) {\n                this.process(view, 0);\n                this.pos = 0;\n            }\n        }\n        this.length += data.length;\n        this.roundClean();\n        return this;\n    }\n    digestInto(out) {\n        aexists(this);\n        aoutput(out, this);\n        this.finished = true;\n        // Padding\n        // We can avoid allocation of buffer for padding completely if it\n        // was previously not allocated here. But it won't change performance.\n        const { buffer, view, blockLen, isLE } = this;\n        let { pos } = this;\n        // append the bit '1' to the message\n        buffer[pos++] = 0b10000000;\n        clean(this.buffer.subarray(pos));\n        // we have less than padOffset left in buffer, so we cannot put length in\n        // current block, need process it and pad again\n        if (this.padOffset > blockLen - pos) {\n            this.process(view, 0);\n            pos = 0;\n        }\n        // Pad until full block byte with zeros\n        for (let i = pos; i < blockLen; i++)\n            buffer[i] = 0;\n        // Note: sha512 requires length to be 128bit integer, but length in JS will overflow before that\n        // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.\n        // So we just write lowest 64 bits of that value.\n        setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);\n        this.process(view, 0);\n        const oview = createView(out);\n        const len = this.outputLen;\n        // NOTE: we do division by 4 later, which should be fused in single op with modulo by JIT\n        if (len % 4)\n            throw new Error('_sha2: outputLen should be aligned to 32bit');\n        const outLen = len / 4;\n        const state = this.get();\n        if (outLen > state.length)\n            throw new Error('_sha2: outputLen bigger than state');\n        for (let i = 0; i < outLen; i++)\n            oview.setUint32(4 * i, state[i], isLE);\n    }\n    digest() {\n        const { buffer, outputLen } = this;\n        this.digestInto(buffer);\n        const res = buffer.slice(0, outputLen);\n        this.destroy();\n        return res;\n    }\n    _cloneInto(to) {\n        to || (to = new this.constructor());\n        to.set(...this.get());\n        const { blockLen, buffer, length, finished, destroyed, pos } = this;\n        to.destroyed = destroyed;\n        to.finished = finished;\n        to.length = length;\n        to.pos = pos;\n        if (length % blockLen)\n            to.buffer.set(buffer);\n        return to;\n    }\n    clone() {\n        return this._cloneInto();\n    }\n}\n/**\n * Initial SHA-2 state: fractional parts of square roots of first 16 primes 2..53.\n * Check out `test/misc/sha2-gen-iv.js` for recomputation guide.\n */\n/** Initial SHA256 state. Bits 0..32 of frac part of sqrt of primes 2..19 */\nexport const SHA256_IV = /* @__PURE__ */ Uint32Array.from([\n    0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19,\n]);\n/** Initial SHA224 state. Bits 32..64 of frac part of sqrt of primes 23..53 */\nexport const SHA224_IV = /* @__PURE__ */ Uint32Array.from([\n    0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939, 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4,\n]);\n/** Initial SHA384 state. Bits 0..64 of frac part of sqrt of primes 23..53 */\nexport const SHA384_IV = /* @__PURE__ */ Uint32Array.from([\n    0xcbbb9d5d, 0xc1059ed8, 0x629a292a, 0x367cd507, 0x9159015a, 0x3070dd17, 0x152fecd8, 0xf70e5939,\n    0x67332667, 0xffc00b31, 0x8eb44a87, 0x68581511, 0xdb0c2e0d, 0x64f98fa7, 0x47b5481d, 0xbefa4fa4,\n]);\n/** Initial SHA512 state. Bits 0..64 of frac part of sqrt of primes 2..19 */\nexport const SHA512_IV = /* @__PURE__ */ Uint32Array.from([\n    0x6a09e667, 0xf3bcc908, 0xbb67ae85, 0x84caa73b, 0x3c6ef372, 0xfe94f82b, 0xa54ff53a, 0x5f1d36f1,\n    0x510e527f, 0xade682d1, 0x9b05688c, 0x2b3e6c1f, 0x1f83d9ab, 0xfb41bd6b, 0x5be0cd19, 0x137e2179,\n]);\n//# sourceMappingURL=_md.js.map","/**\n * Internal helpers for u64. BigUint64Array is too slow as per 2025, so we implement it using Uint32Array.\n * @todo re-check https://issues.chromium.org/issues/42212588\n * @module\n */\nconst U32_MASK64 = /* @__PURE__ */ BigInt(2 ** 32 - 1);\nconst _32n = /* @__PURE__ */ BigInt(32);\nfunction fromBig(n, le = false) {\n    if (le)\n        return { h: Number(n & U32_MASK64), l: Number((n >> _32n) & U32_MASK64) };\n    return { h: Number((n >> _32n) & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 };\n}\nfunction split(lst, le = false) {\n    const len = lst.length;\n    let Ah = new Uint32Array(len);\n    let Al = new Uint32Array(len);\n    for (let i = 0; i < len; i++) {\n        const { h, l } = fromBig(lst[i], le);\n        [Ah[i], Al[i]] = [h, l];\n    }\n    return [Ah, Al];\n}\nconst toBig = (h, l) => (BigInt(h >>> 0) << _32n) | BigInt(l >>> 0);\n// for Shift in [0, 32)\nconst shrSH = (h, _l, s) => h >>> s;\nconst shrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in [1, 32)\nconst rotrSH = (h, l, s) => (h >>> s) | (l << (32 - s));\nconst rotrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotrBH = (h, l, s) => (h << (64 - s)) | (l >>> (s - 32));\nconst rotrBL = (h, l, s) => (h >>> (s - 32)) | (l << (64 - s));\n// Right rotate for shift===32 (just swaps l&h)\nconst rotr32H = (_h, l) => l;\nconst rotr32L = (h, _l) => h;\n// Left rotate for Shift in [1, 32)\nconst rotlSH = (h, l, s) => (h << s) | (l >>> (32 - s));\nconst rotlSL = (h, l, s) => (l << s) | (h >>> (32 - s));\n// Left rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotlBH = (h, l, s) => (l << (s - 32)) | (h >>> (64 - s));\nconst rotlBL = (h, l, s) => (h << (s - 32)) | (l >>> (64 - s));\n// JS uses 32-bit signed integers for bitwise operations which means we cannot\n// simple take carry out of low bit sum by shift, we need to use division.\nfunction add(Ah, Al, Bh, Bl) {\n    const l = (Al >>> 0) + (Bl >>> 0);\n    return { h: (Ah + Bh + ((l / 2 ** 32) | 0)) | 0, l: l | 0 };\n}\n// Addition with more than 2 elements\nconst add3L = (Al, Bl, Cl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0);\nconst add3H = (low, Ah, Bh, Ch) => (Ah + Bh + Ch + ((low / 2 ** 32) | 0)) | 0;\nconst add4L = (Al, Bl, Cl, Dl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0);\nconst add4H = (low, Ah, Bh, Ch, Dh) => (Ah + Bh + Ch + Dh + ((low / 2 ** 32) | 0)) | 0;\nconst add5L = (Al, Bl, Cl, Dl, El) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0);\nconst add5H = (low, Ah, Bh, Ch, Dh, Eh) => (Ah + Bh + Ch + Dh + Eh + ((low / 2 ** 32) | 0)) | 0;\n// prettier-ignore\nexport { add, add3H, add3L, add4H, add4L, add5H, add5L, fromBig, rotlBH, rotlBL, rotlSH, rotlSL, rotr32H, rotr32L, rotrBH, rotrBL, rotrSH, rotrSL, shrSH, shrSL, split, toBig };\n// prettier-ignore\nconst u64 = {\n    fromBig, split, toBig,\n    shrSH, shrSL,\n    rotrSH, rotrSL, rotrBH, rotrBL,\n    rotr32H, rotr32L,\n    rotlSH, rotlSL, rotlBH, rotlBL,\n    add, add3L, add3H, add4L, add4H, add5H, add5L,\n};\nexport default u64;\n//# sourceMappingURL=_u64.js.map","/**\n * SHA2 hash function. A.k.a. sha256, sha384, sha512, sha512_224, sha512_256.\n * SHA256 is the fastest hash implementable in JS, even faster than Blake3.\n * Check out [RFC 4634](https://datatracker.ietf.org/doc/html/rfc4634) and\n * [FIPS 180-4](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf).\n * @module\n */\nimport { Chi, HashMD, Maj, SHA224_IV, SHA256_IV, SHA384_IV, SHA512_IV } from \"./_md.js\";\nimport * as u64 from \"./_u64.js\";\nimport { clean, createHasher, rotr } from \"./utils.js\";\n/**\n * Round constants:\n * First 32 bits of fractional parts of the cube roots of the first 64 primes 2..311)\n */\n// prettier-ignore\nconst SHA256_K = /* @__PURE__ */ Uint32Array.from([\n    0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n    0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n    0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n    0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n    0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n    0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n    0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n    0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\n/** Reusable temporary buffer. \"W\" comes straight from spec. */\nconst SHA256_W = /* @__PURE__ */ new Uint32Array(64);\nexport class SHA256 extends HashMD {\n    constructor(outputLen = 32) {\n        super(64, outputLen, 8, false);\n        // We cannot use array here since array allows indexing by variable\n        // which means optimizer/compiler cannot use registers.\n        this.A = SHA256_IV[0] | 0;\n        this.B = SHA256_IV[1] | 0;\n        this.C = SHA256_IV[2] | 0;\n        this.D = SHA256_IV[3] | 0;\n        this.E = SHA256_IV[4] | 0;\n        this.F = SHA256_IV[5] | 0;\n        this.G = SHA256_IV[6] | 0;\n        this.H = SHA256_IV[7] | 0;\n    }\n    get() {\n        const { A, B, C, D, E, F, G, H } = this;\n        return [A, B, C, D, E, F, G, H];\n    }\n    // prettier-ignore\n    set(A, B, C, D, E, F, G, H) {\n        this.A = A | 0;\n        this.B = B | 0;\n        this.C = C | 0;\n        this.D = D | 0;\n        this.E = E | 0;\n        this.F = F | 0;\n        this.G = G | 0;\n        this.H = H | 0;\n    }\n    process(view, offset) {\n        // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array\n        for (let i = 0; i < 16; i++, offset += 4)\n            SHA256_W[i] = view.getUint32(offset, false);\n        for (let i = 16; i < 64; i++) {\n            const W15 = SHA256_W[i - 15];\n            const W2 = SHA256_W[i - 2];\n            const s0 = rotr(W15, 7) ^ rotr(W15, 18) ^ (W15 >>> 3);\n            const s1 = rotr(W2, 17) ^ rotr(W2, 19) ^ (W2 >>> 10);\n            SHA256_W[i] = (s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16]) | 0;\n        }\n        // Compression function main loop, 64 rounds\n        let { A, B, C, D, E, F, G, H } = this;\n        for (let i = 0; i < 64; i++) {\n            const sigma1 = rotr(E, 6) ^ rotr(E, 11) ^ rotr(E, 25);\n            const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n            const sigma0 = rotr(A, 2) ^ rotr(A, 13) ^ rotr(A, 22);\n            const T2 = (sigma0 + Maj(A, B, C)) | 0;\n            H = G;\n            G = F;\n            F = E;\n            E = (D + T1) | 0;\n            D = C;\n            C = B;\n            B = A;\n            A = (T1 + T2) | 0;\n        }\n        // Add the compressed chunk to the current hash value\n        A = (A + this.A) | 0;\n        B = (B + this.B) | 0;\n        C = (C + this.C) | 0;\n        D = (D + this.D) | 0;\n        E = (E + this.E) | 0;\n        F = (F + this.F) | 0;\n        G = (G + this.G) | 0;\n        H = (H + this.H) | 0;\n        this.set(A, B, C, D, E, F, G, H);\n    }\n    roundClean() {\n        clean(SHA256_W);\n    }\n    destroy() {\n        this.set(0, 0, 0, 0, 0, 0, 0, 0);\n        clean(this.buffer);\n    }\n}\nexport class SHA224 extends SHA256 {\n    constructor() {\n        super(28);\n        this.A = SHA224_IV[0] | 0;\n        this.B = SHA224_IV[1] | 0;\n        this.C = SHA224_IV[2] | 0;\n        this.D = SHA224_IV[3] | 0;\n        this.E = SHA224_IV[4] | 0;\n        this.F = SHA224_IV[5] | 0;\n        this.G = SHA224_IV[6] | 0;\n        this.H = SHA224_IV[7] | 0;\n    }\n}\n// SHA2-512 is slower than sha256 in js because u64 operations are slow.\n// Round contants\n// First 32 bits of the fractional parts of the cube roots of the first 80 primes 2..409\n// prettier-ignore\nconst K512 = /* @__PURE__ */ (() => u64.split([\n    '0x428a2f98d728ae22', '0x7137449123ef65cd', '0xb5c0fbcfec4d3b2f', '0xe9b5dba58189dbbc',\n    '0x3956c25bf348b538', '0x59f111f1b605d019', '0x923f82a4af194f9b', '0xab1c5ed5da6d8118',\n    '0xd807aa98a3030242', '0x12835b0145706fbe', '0x243185be4ee4b28c', '0x550c7dc3d5ffb4e2',\n    '0x72be5d74f27b896f', '0x80deb1fe3b1696b1', '0x9bdc06a725c71235', '0xc19bf174cf692694',\n    '0xe49b69c19ef14ad2', '0xefbe4786384f25e3', '0x0fc19dc68b8cd5b5', '0x240ca1cc77ac9c65',\n    '0x2de92c6f592b0275', '0x4a7484aa6ea6e483', '0x5cb0a9dcbd41fbd4', '0x76f988da831153b5',\n    '0x983e5152ee66dfab', '0xa831c66d2db43210', '0xb00327c898fb213f', '0xbf597fc7beef0ee4',\n    '0xc6e00bf33da88fc2', '0xd5a79147930aa725', '0x06ca6351e003826f', '0x142929670a0e6e70',\n    '0x27b70a8546d22ffc', '0x2e1b21385c26c926', '0x4d2c6dfc5ac42aed', '0x53380d139d95b3df',\n    '0x650a73548baf63de', '0x766a0abb3c77b2a8', '0x81c2c92e47edaee6', '0x92722c851482353b',\n    '0xa2bfe8a14cf10364', '0xa81a664bbc423001', '0xc24b8b70d0f89791', '0xc76c51a30654be30',\n    '0xd192e819d6ef5218', '0xd69906245565a910', '0xf40e35855771202a', '0x106aa07032bbd1b8',\n    '0x19a4c116b8d2d0c8', '0x1e376c085141ab53', '0x2748774cdf8eeb99', '0x34b0bcb5e19b48a8',\n    '0x391c0cb3c5c95a63', '0x4ed8aa4ae3418acb', '0x5b9cca4f7763e373', '0x682e6ff3d6b2b8a3',\n    '0x748f82ee5defb2fc', '0x78a5636f43172f60', '0x84c87814a1f0ab72', '0x8cc702081a6439ec',\n    '0x90befffa23631e28', '0xa4506cebde82bde9', '0xbef9a3f7b2c67915', '0xc67178f2e372532b',\n    '0xca273eceea26619c', '0xd186b8c721c0c207', '0xeada7dd6cde0eb1e', '0xf57d4f7fee6ed178',\n    '0x06f067aa72176fba', '0x0a637dc5a2c898a6', '0x113f9804bef90dae', '0x1b710b35131c471b',\n    '0x28db77f523047d84', '0x32caab7b40c72493', '0x3c9ebe0a15c9bebc', '0x431d67c49c100d4c',\n    '0x4cc5d4becb3e42b6', '0x597f299cfc657e2a', '0x5fcb6fab3ad6faec', '0x6c44198c4a475817'\n].map(n => BigInt(n))))();\nconst SHA512_Kh = /* @__PURE__ */ (() => K512[0])();\nconst SHA512_Kl = /* @__PURE__ */ (() => K512[1])();\n// Reusable temporary buffers\nconst SHA512_W_H = /* @__PURE__ */ new Uint32Array(80);\nconst SHA512_W_L = /* @__PURE__ */ new Uint32Array(80);\nexport class SHA512 extends HashMD {\n    constructor(outputLen = 64) {\n        super(128, outputLen, 16, false);\n        // We cannot use array here since array allows indexing by variable\n        // which means optimizer/compiler cannot use registers.\n        // h -- high 32 bits, l -- low 32 bits\n        this.Ah = SHA512_IV[0] | 0;\n        this.Al = SHA512_IV[1] | 0;\n        this.Bh = SHA512_IV[2] | 0;\n        this.Bl = SHA512_IV[3] | 0;\n        this.Ch = SHA512_IV[4] | 0;\n        this.Cl = SHA512_IV[5] | 0;\n        this.Dh = SHA512_IV[6] | 0;\n        this.Dl = SHA512_IV[7] | 0;\n        this.Eh = SHA512_IV[8] | 0;\n        this.El = SHA512_IV[9] | 0;\n        this.Fh = SHA512_IV[10] | 0;\n        this.Fl = SHA512_IV[11] | 0;\n        this.Gh = SHA512_IV[12] | 0;\n        this.Gl = SHA512_IV[13] | 0;\n        this.Hh = SHA512_IV[14] | 0;\n        this.Hl = SHA512_IV[15] | 0;\n    }\n    // prettier-ignore\n    get() {\n        const { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n        return [Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl];\n    }\n    // prettier-ignore\n    set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl) {\n        this.Ah = Ah | 0;\n        this.Al = Al | 0;\n        this.Bh = Bh | 0;\n        this.Bl = Bl | 0;\n        this.Ch = Ch | 0;\n        this.Cl = Cl | 0;\n        this.Dh = Dh | 0;\n        this.Dl = Dl | 0;\n        this.Eh = Eh | 0;\n        this.El = El | 0;\n        this.Fh = Fh | 0;\n        this.Fl = Fl | 0;\n        this.Gh = Gh | 0;\n        this.Gl = Gl | 0;\n        this.Hh = Hh | 0;\n        this.Hl = Hl | 0;\n    }\n    process(view, offset) {\n        // Extend the first 16 words into the remaining 64 words w[16..79] of the message schedule array\n        for (let i = 0; i < 16; i++, offset += 4) {\n            SHA512_W_H[i] = view.getUint32(offset);\n            SHA512_W_L[i] = view.getUint32((offset += 4));\n        }\n        for (let i = 16; i < 80; i++) {\n            // s0 := (w[i-15] rightrotate 1) xor (w[i-15] rightrotate 8) xor (w[i-15] rightshift 7)\n            const W15h = SHA512_W_H[i - 15] | 0;\n            const W15l = SHA512_W_L[i - 15] | 0;\n            const s0h = u64.rotrSH(W15h, W15l, 1) ^ u64.rotrSH(W15h, W15l, 8) ^ u64.shrSH(W15h, W15l, 7);\n            const s0l = u64.rotrSL(W15h, W15l, 1) ^ u64.rotrSL(W15h, W15l, 8) ^ u64.shrSL(W15h, W15l, 7);\n            // s1 := (w[i-2] rightrotate 19) xor (w[i-2] rightrotate 61) xor (w[i-2] rightshift 6)\n            const W2h = SHA512_W_H[i - 2] | 0;\n            const W2l = SHA512_W_L[i - 2] | 0;\n            const s1h = u64.rotrSH(W2h, W2l, 19) ^ u64.rotrBH(W2h, W2l, 61) ^ u64.shrSH(W2h, W2l, 6);\n            const s1l = u64.rotrSL(W2h, W2l, 19) ^ u64.rotrBL(W2h, W2l, 61) ^ u64.shrSL(W2h, W2l, 6);\n            // SHA256_W[i] = s0 + s1 + SHA256_W[i - 7] + SHA256_W[i - 16];\n            const SUMl = u64.add4L(s0l, s1l, SHA512_W_L[i - 7], SHA512_W_L[i - 16]);\n            const SUMh = u64.add4H(SUMl, s0h, s1h, SHA512_W_H[i - 7], SHA512_W_H[i - 16]);\n            SHA512_W_H[i] = SUMh | 0;\n            SHA512_W_L[i] = SUMl | 0;\n        }\n        let { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n        // Compression function main loop, 80 rounds\n        for (let i = 0; i < 80; i++) {\n            // S1 := (e rightrotate 14) xor (e rightrotate 18) xor (e rightrotate 41)\n            const sigma1h = u64.rotrSH(Eh, El, 14) ^ u64.rotrSH(Eh, El, 18) ^ u64.rotrBH(Eh, El, 41);\n            const sigma1l = u64.rotrSL(Eh, El, 14) ^ u64.rotrSL(Eh, El, 18) ^ u64.rotrBL(Eh, El, 41);\n            //const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n            const CHIh = (Eh & Fh) ^ (~Eh & Gh);\n            const CHIl = (El & Fl) ^ (~El & Gl);\n            // T1 = H + sigma1 + Chi(E, F, G) + SHA512_K[i] + SHA512_W[i]\n            // prettier-ignore\n            const T1ll = u64.add5L(Hl, sigma1l, CHIl, SHA512_Kl[i], SHA512_W_L[i]);\n            const T1h = u64.add5H(T1ll, Hh, sigma1h, CHIh, SHA512_Kh[i], SHA512_W_H[i]);\n            const T1l = T1ll | 0;\n            // S0 := (a rightrotate 28) xor (a rightrotate 34) xor (a rightrotate 39)\n            const sigma0h = u64.rotrSH(Ah, Al, 28) ^ u64.rotrBH(Ah, Al, 34) ^ u64.rotrBH(Ah, Al, 39);\n            const sigma0l = u64.rotrSL(Ah, Al, 28) ^ u64.rotrBL(Ah, Al, 34) ^ u64.rotrBL(Ah, Al, 39);\n            const MAJh = (Ah & Bh) ^ (Ah & Ch) ^ (Bh & Ch);\n            const MAJl = (Al & Bl) ^ (Al & Cl) ^ (Bl & Cl);\n            Hh = Gh | 0;\n            Hl = Gl | 0;\n            Gh = Fh | 0;\n            Gl = Fl | 0;\n            Fh = Eh | 0;\n            Fl = El | 0;\n            ({ h: Eh, l: El } = u64.add(Dh | 0, Dl | 0, T1h | 0, T1l | 0));\n            Dh = Ch | 0;\n            Dl = Cl | 0;\n            Ch = Bh | 0;\n            Cl = Bl | 0;\n            Bh = Ah | 0;\n            Bl = Al | 0;\n            const All = u64.add3L(T1l, sigma0l, MAJl);\n            Ah = u64.add3H(All, T1h, sigma0h, MAJh);\n            Al = All | 0;\n        }\n        // Add the compressed chunk to the current hash value\n        ({ h: Ah, l: Al } = u64.add(this.Ah | 0, this.Al | 0, Ah | 0, Al | 0));\n        ({ h: Bh, l: Bl } = u64.add(this.Bh | 0, this.Bl | 0, Bh | 0, Bl | 0));\n        ({ h: Ch, l: Cl } = u64.add(this.Ch | 0, this.Cl | 0, Ch | 0, Cl | 0));\n        ({ h: Dh, l: Dl } = u64.add(this.Dh | 0, this.Dl | 0, Dh | 0, Dl | 0));\n        ({ h: Eh, l: El } = u64.add(this.Eh | 0, this.El | 0, Eh | 0, El | 0));\n        ({ h: Fh, l: Fl } = u64.add(this.Fh | 0, this.Fl | 0, Fh | 0, Fl | 0));\n        ({ h: Gh, l: Gl } = u64.add(this.Gh | 0, this.Gl | 0, Gh | 0, Gl | 0));\n        ({ h: Hh, l: Hl } = u64.add(this.Hh | 0, this.Hl | 0, Hh | 0, Hl | 0));\n        this.set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl);\n    }\n    roundClean() {\n        clean(SHA512_W_H, SHA512_W_L);\n    }\n    destroy() {\n        clean(this.buffer);\n        this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\n    }\n}\nexport class SHA384 extends SHA512 {\n    constructor() {\n        super(48);\n        this.Ah = SHA384_IV[0] | 0;\n        this.Al = SHA384_IV[1] | 0;\n        this.Bh = SHA384_IV[2] | 0;\n        this.Bl = SHA384_IV[3] | 0;\n        this.Ch = SHA384_IV[4] | 0;\n        this.Cl = SHA384_IV[5] | 0;\n        this.Dh = SHA384_IV[6] | 0;\n        this.Dl = SHA384_IV[7] | 0;\n        this.Eh = SHA384_IV[8] | 0;\n        this.El = SHA384_IV[9] | 0;\n        this.Fh = SHA384_IV[10] | 0;\n        this.Fl = SHA384_IV[11] | 0;\n        this.Gh = SHA384_IV[12] | 0;\n        this.Gl = SHA384_IV[13] | 0;\n        this.Hh = SHA384_IV[14] | 0;\n        this.Hl = SHA384_IV[15] | 0;\n    }\n}\n/**\n * Truncated SHA512/256 and SHA512/224.\n * SHA512_IV is XORed with 0xa5a5a5a5a5a5a5a5, then used as \"intermediary\" IV of SHA512/t.\n * Then t hashes string to produce result IV.\n * See `test/misc/sha2-gen-iv.js`.\n */\n/** SHA512/224 IV */\nconst T224_IV = /* @__PURE__ */ Uint32Array.from([\n    0x8c3d37c8, 0x19544da2, 0x73e19966, 0x89dcd4d6, 0x1dfab7ae, 0x32ff9c82, 0x679dd514, 0x582f9fcf,\n    0x0f6d2b69, 0x7bd44da8, 0x77e36f73, 0x04c48942, 0x3f9d85a8, 0x6a1d36c8, 0x1112e6ad, 0x91d692a1,\n]);\n/** SHA512/256 IV */\nconst T256_IV = /* @__PURE__ */ Uint32Array.from([\n    0x22312194, 0xfc2bf72c, 0x9f555fa3, 0xc84c64c2, 0x2393b86b, 0x6f53b151, 0x96387719, 0x5940eabd,\n    0x96283ee2, 0xa88effe3, 0xbe5e1e25, 0x53863992, 0x2b0199fc, 0x2c85b8aa, 0x0eb72ddc, 0x81c52ca2,\n]);\nexport class SHA512_224 extends SHA512 {\n    constructor() {\n        super(28);\n        this.Ah = T224_IV[0] | 0;\n        this.Al = T224_IV[1] | 0;\n        this.Bh = T224_IV[2] | 0;\n        this.Bl = T224_IV[3] | 0;\n        this.Ch = T224_IV[4] | 0;\n        this.Cl = T224_IV[5] | 0;\n        this.Dh = T224_IV[6] | 0;\n        this.Dl = T224_IV[7] | 0;\n        this.Eh = T224_IV[8] | 0;\n        this.El = T224_IV[9] | 0;\n        this.Fh = T224_IV[10] | 0;\n        this.Fl = T224_IV[11] | 0;\n        this.Gh = T224_IV[12] | 0;\n        this.Gl = T224_IV[13] | 0;\n        this.Hh = T224_IV[14] | 0;\n        this.Hl = T224_IV[15] | 0;\n    }\n}\nexport class SHA512_256 extends SHA512 {\n    constructor() {\n        super(32);\n        this.Ah = T256_IV[0] | 0;\n        this.Al = T256_IV[1] | 0;\n        this.Bh = T256_IV[2] | 0;\n        this.Bl = T256_IV[3] | 0;\n        this.Ch = T256_IV[4] | 0;\n        this.Cl = T256_IV[5] | 0;\n        this.Dh = T256_IV[6] | 0;\n        this.Dl = T256_IV[7] | 0;\n        this.Eh = T256_IV[8] | 0;\n        this.El = T256_IV[9] | 0;\n        this.Fh = T256_IV[10] | 0;\n        this.Fl = T256_IV[11] | 0;\n        this.Gh = T256_IV[12] | 0;\n        this.Gl = T256_IV[13] | 0;\n        this.Hh = T256_IV[14] | 0;\n        this.Hl = T256_IV[15] | 0;\n    }\n}\n/**\n * SHA2-256 hash function from RFC 4634.\n *\n * It is the fastest JS hash, even faster than Blake3.\n * To break sha256 using birthday attack, attackers need to try 2^128 hashes.\n * BTC network is doing 2^70 hashes/sec (2^95 hashes/year) as per 2025.\n */\nexport const sha256 = /* @__PURE__ */ createHasher(() => new SHA256());\n/** SHA2-224 hash function from RFC 4634 */\nexport const sha224 = /* @__PURE__ */ createHasher(() => new SHA224());\n/** SHA2-512 hash function from RFC 4634. */\nexport const sha512 = /* @__PURE__ */ createHasher(() => new SHA512());\n/** SHA2-384 hash function from RFC 4634. */\nexport const sha384 = /* @__PURE__ */ createHasher(() => new SHA384());\n/**\n * SHA2-512/256 \"truncated\" hash function, with improved resistance to length extension attacks.\n * See the paper on [truncated SHA512](https://eprint.iacr.org/2010/548.pdf).\n */\nexport const sha512_256 = /* @__PURE__ */ createHasher(() => new SHA512_256());\n/**\n * SHA2-512/224 \"truncated\" hash function, with improved resistance to length extension attacks.\n * See the paper on [truncated SHA512](https://eprint.iacr.org/2010/548.pdf).\n */\nexport const sha512_224 = /* @__PURE__ */ createHasher(() => new SHA512_224());\n//# sourceMappingURL=sha2.js.map","/**\n * Audited & minimal JS implementation of\n * [BIP39 mnemonic phrases](https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki).\n * @module\n * @example\n```js\nimport * as bip39 from '@scure/bip39';\nimport { wordlist } from '@scure/bip39/wordlists/english';\nconst mn = bip39.generateMnemonic(wordlist);\nconsole.log(mn);\nconst ent = bip39.mnemonicToEntropy(mn, wordlist)\nbip39.entropyToMnemonic(ent, wordlist);\nbip39.validateMnemonic(mn, wordlist);\nawait bip39.mnemonicToSeed(mn, 'password');\nbip39.mnemonicToSeedSync(mn, 'password');\n\n// Wordlists\nimport { wordlist as czech } from '@scure/bip39/wordlists/czech';\nimport { wordlist as english } from '@scure/bip39/wordlists/english';\nimport { wordlist as french } from '@scure/bip39/wordlists/french';\nimport { wordlist as italian } from '@scure/bip39/wordlists/italian';\nimport { wordlist as japanese } from '@scure/bip39/wordlists/japanese';\nimport { wordlist as korean } from '@scure/bip39/wordlists/korean';\nimport { wordlist as portuguese } from '@scure/bip39/wordlists/portuguese';\nimport { wordlist as simplifiedChinese } from '@scure/bip39/wordlists/simplified-chinese';\nimport { wordlist as spanish } from '@scure/bip39/wordlists/spanish';\nimport { wordlist as traditionalChinese } from '@scure/bip39/wordlists/traditional-chinese';\n```\n */\n/*! scure-bip39 - MIT License (c) 2022 Patricio Palladino, Paul Miller (paulmillr.com) */\nimport { pbkdf2, pbkdf2Async } from '@noble/hashes/pbkdf2';\nimport { sha256, sha512 } from '@noble/hashes/sha2';\nimport { abytes, anumber, randomBytes } from '@noble/hashes/utils';\nimport { utils as baseUtils } from '@scure/base';\n// Japanese wordlist\nconst isJapanese = (wordlist) => wordlist[0] === '\\u3042\\u3044\\u3053\\u304f\\u3057\\u3093';\n// Normalization replaces equivalent sequences of characters\n// so that any two texts that are equivalent will be reduced\n// to the same sequence of code points, called the normal form of the original text.\n// https://tonsky.me/blog/unicode/#why-is-a----\nfunction nfkd(str) {\n    if (typeof str !== 'string')\n        throw new TypeError('invalid mnemonic type: ' + typeof str);\n    return str.normalize('NFKD');\n}\nfunction normalize(str) {\n    const norm = nfkd(str);\n    const words = norm.split(' ');\n    if (![12, 15, 18, 21, 24].includes(words.length))\n        throw new Error('Invalid mnemonic');\n    return { nfkd: norm, words };\n}\nfunction aentropy(ent) {\n    abytes(ent, 16, 20, 24, 28, 32);\n}\n/**\n * Generate x random words. Uses Cryptographically-Secure Random Number Generator.\n * @param wordlist imported wordlist for specific language\n * @param strength mnemonic strength 128-256 bits\n * @example\n * generateMnemonic(wordlist, 128)\n * // 'legal winner thank year wave sausage worth useful legal winner thank yellow'\n */\nexport function generateMnemonic(wordlist, strength = 128) {\n    anumber(strength);\n    if (strength % 32 !== 0 || strength > 256)\n        throw new TypeError('Invalid entropy');\n    return entropyToMnemonic(randomBytes(strength / 8), wordlist);\n}\nconst calcChecksum = (entropy) => {\n    // Checksum is ent.length/4 bits long\n    const bitsLeft = 8 - entropy.length / 4;\n    // Zero rightmost \"bitsLeft\" bits in byte\n    // For example: bitsLeft=4 val=10111101 -> 10110000\n    return new Uint8Array([(sha256(entropy)[0] >> bitsLeft) << bitsLeft]);\n};\nfunction getCoder(wordlist) {\n    if (!Array.isArray(wordlist) || wordlist.length !== 2048 || typeof wordlist[0] !== 'string')\n        throw new Error('Wordlist: expected array of 2048 strings');\n    wordlist.forEach((i) => {\n        if (typeof i !== 'string')\n            throw new Error('wordlist: non-string element: ' + i);\n    });\n    return baseUtils.chain(baseUtils.checksum(1, calcChecksum), baseUtils.radix2(11, true), baseUtils.alphabet(wordlist));\n}\n/**\n * Reversible: Converts mnemonic string to raw entropy in form of byte array.\n * @param mnemonic 12-24 words\n * @param wordlist imported wordlist for specific language\n * @example\n * const mnem = 'legal winner thank year wave sausage worth useful legal winner thank yellow';\n * mnemonicToEntropy(mnem, wordlist)\n * // Produces\n * new Uint8Array([\n *   0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,\n *   0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f\n * ])\n */\nexport function mnemonicToEntropy(mnemonic, wordlist) {\n    const { words } = normalize(mnemonic);\n    const entropy = getCoder(wordlist).decode(words);\n    aentropy(entropy);\n    return entropy;\n}\n/**\n * Reversible: Converts raw entropy in form of byte array to mnemonic string.\n * @param entropy byte array\n * @param wordlist imported wordlist for specific language\n * @returns 12-24 words\n * @example\n * const ent = new Uint8Array([\n *   0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,\n *   0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f\n * ]);\n * entropyToMnemonic(ent, wordlist);\n * // 'legal winner thank year wave sausage worth useful legal winner thank yellow'\n */\nexport function entropyToMnemonic(entropy, wordlist) {\n    aentropy(entropy);\n    const words = getCoder(wordlist).encode(entropy);\n    return words.join(isJapanese(wordlist) ? '\\u3000' : ' ');\n}\n/**\n * Validates mnemonic for being 12-24 words contained in `wordlist`.\n */\nexport function validateMnemonic(mnemonic, wordlist) {\n    try {\n        mnemonicToEntropy(mnemonic, wordlist);\n    }\n    catch (e) {\n        return false;\n    }\n    return true;\n}\nconst psalt = (passphrase) => nfkd('mnemonic' + passphrase);\n/**\n * Irreversible: Uses KDF to derive 64 bytes of key data from mnemonic + optional password.\n * @param mnemonic 12-24 words\n * @param passphrase string that will additionally protect the key\n * @returns 64 bytes of key data\n * @example\n * const mnem = 'legal winner thank year wave sausage worth useful legal winner thank yellow';\n * await mnemonicToSeed(mnem, 'password');\n * // new Uint8Array([...64 bytes])\n */\nexport function mnemonicToSeed(mnemonic, passphrase = '') {\n    return pbkdf2Async(sha512, normalize(mnemonic).nfkd, psalt(passphrase), { c: 2048, dkLen: 64 });\n}\n/**\n * Irreversible: Uses KDF to derive 64 bytes of key data from mnemonic + optional password.\n * @param mnemonic 12-24 words\n * @param passphrase string that will additionally protect the key\n * @returns 64 bytes of key data\n * @example\n * const mnem = 'legal winner thank year wave sausage worth useful legal winner thank yellow';\n * mnemonicToSeedSync(mnem, 'password');\n * // new Uint8Array([...64 bytes])\n */\nexport function mnemonicToSeedSync(mnemonic, passphrase = '') {\n    return pbkdf2(sha512, normalize(mnemonic).nfkd, psalt(passphrase), { c: 2048, dkLen: 64 });\n}\n","import Node from '../Node.js';\nimport AccountBase from './Base.js';\n\n/**\n * A factory class that generates instances of AccountBase by index.\n * @category account\n */\nexport default abstract class AccountBaseFactory {\n  /**\n   * Get an instance of AccountBase for a given account index.\n   * @param accountIndex - Index of account\n   */\n  abstract initialize(accountIndex: number): Promise<AccountBase>;\n\n  /**\n   * Discovers accounts in set that already have been used (has any on-chain transactions).\n   * It returns an empty array if none of accounts been used.\n   * If a used account is preceded by an unused account then it would be ignored.\n   * @param node - Instance of Node to get account information from\n   */\n  async discover(node: Node): Promise<AccountBase[]> {\n    let index = 0;\n    const result = [];\n    let account;\n    do {\n      if (account != null) result.push(account);\n      account = await this.initialize(index);\n      index += 1;\n    } while (\n      await node.getAccountByPubkey(account.address).then(\n        () => true,\n        () => false,\n      )\n    );\n    return result;\n  }\n}\n","import { mnemonicToSeed, mnemonicToSeedSync } from '@scure/bip39';\nimport tweetnaclAuth from 'tweetnacl-auth';\nimport AccountBaseFactory from './BaseFactory.js';\nimport AccountMemory from './Memory.js';\nimport { encode, Encoding, Encoded, decode } from '../utils/encoder.js';\nimport { concatBuffers } from '../utils/other.js';\nimport { ArgumentError } from '../utils/errors.js';\n\nexport const ED25519_CURVE = Buffer.from('ed25519 seed');\nconst HARDENED_OFFSET = 0x80000000;\n\ninterface KeyTreeNode {\n  secretKey: Uint8Array;\n  chainCode: Uint8Array;\n}\n\nexport function deriveKey(message: Uint8Array, key: Uint8Array): KeyTreeNode {\n  const I = tweetnaclAuth.full(message, key);\n  const IL = I.slice(0, 32);\n  const IR = I.slice(32);\n  return {\n    secretKey: IL,\n    chainCode: IR,\n  };\n}\n\nexport function derivePathFromKey(key: KeyTreeNode, segments: readonly number[]): KeyTreeNode {\n  return segments.reduce(({ secretKey, chainCode }, segment) => {\n    const indexBuffer = Buffer.allocUnsafe(4);\n    indexBuffer.writeUInt32BE(segment + HARDENED_OFFSET, 0);\n    const data = concatBuffers([Buffer.alloc(1, 0), secretKey, indexBuffer]);\n    return deriveKey(data, chainCode);\n  }, key);\n}\n\ninterface Wallet {\n  secretKey: Encoded.Bytearray;\n  chainCode: Encoded.Bytearray;\n}\n\n/**\n * A factory class that generates instances of AccountMemory based on provided mnemonic phrase.\n * @category account\n */\nexport default class AccountMnemonicFactory extends AccountBaseFactory {\n  #mnemonicOrWalletOrSeed: string | Wallet | Uint8Array;\n\n  /**\n   * @param mnemonicOrWalletOrSeed - BIP39-compatible mnemonic phrase or a wallet/seed derived from\n   * mnemonic\n   */\n  constructor(mnemonicOrWalletOrSeed: string | Wallet | Uint8Array) {\n    super();\n    this.#mnemonicOrWalletOrSeed = mnemonicOrWalletOrSeed;\n  }\n\n  #getWallet(sync: true): Wallet;\n  #getWallet(sync: false): Wallet | Promise<Wallet>;\n  #getWallet(sync: boolean): Wallet | Promise<Wallet> {\n    const setWalletBySeed = (seed: Uint8Array): Wallet => {\n      const masterKey = deriveKey(seed, ED25519_CURVE);\n      const walletKey = derivePathFromKey(masterKey, [44, 457]);\n      this.#mnemonicOrWalletOrSeed = {\n        secretKey: encode(walletKey.secretKey, Encoding.Bytearray),\n        chainCode: encode(walletKey.chainCode, Encoding.Bytearray),\n      };\n      return this.#mnemonicOrWalletOrSeed;\n    };\n\n    if (ArrayBuffer.isView(this.#mnemonicOrWalletOrSeed)) {\n      if (this.#mnemonicOrWalletOrSeed.length !== 64) {\n        throw new ArgumentError('seed length', 64, this.#mnemonicOrWalletOrSeed.length);\n      }\n      return setWalletBySeed(this.#mnemonicOrWalletOrSeed);\n    }\n    if (typeof this.#mnemonicOrWalletOrSeed === 'object') return this.#mnemonicOrWalletOrSeed;\n    return sync\n      ? setWalletBySeed(mnemonicToSeedSync(this.#mnemonicOrWalletOrSeed))\n      : mnemonicToSeed(this.#mnemonicOrWalletOrSeed).then(setWalletBySeed);\n  }\n\n  /**\n   * Get a wallet to initialize AccountMnemonicFactory instead mnemonic phrase.\n   * In comparison with mnemonic, the wallet can be used to derive aeternity accounts only.\n   */\n  async getWallet(): Promise<Wallet> {\n    return this.#getWallet(false);\n  }\n\n  /**\n   * The same as `getWallet` but synchronous.\n   */\n  getWalletSync(): Wallet {\n    return this.#getWallet(true);\n  }\n\n  #getAccountByWallet(accountIndex: number, wallet: Wallet): AccountMemory {\n    const walletKey = {\n      secretKey: decode(wallet.secretKey),\n      chainCode: decode(wallet.chainCode),\n    };\n    const raw = derivePathFromKey(walletKey, [accountIndex, 0, 0]).secretKey;\n    return new AccountMemory(encode(raw, Encoding.AccountSecretKey));\n  }\n\n  /**\n   * Get an instance of AccountMemory for a given account index.\n   * @param accountIndex - Index of account\n   */\n  async initialize(accountIndex: number): Promise<AccountMemory> {\n    const wallet = await this.getWallet();\n    return this.#getAccountByWallet(accountIndex, wallet);\n  }\n\n  /**\n   * The same as `initialize` but synchronous.\n   */\n  initializeSync(accountIndex: number): AccountMemory {\n    const wallet = this.getWalletSync();\n    return this.#getAccountByWallet(accountIndex, wallet);\n  }\n}\n","import AccountBase from './Base.js';\nimport {\n  ArgumentError,\n  InternalError,\n  InvalidAuthDataError,\n  NotImplementedError,\n} from '../utils/errors.js';\nimport { decode, Encoded } from '../utils/encoder.js';\nimport { getAccount } from '../chain.js';\nimport Contract from '../contract/Contract.js';\nimport { buildTxAsync, buildTx } from '../tx/builder/index.js';\nimport { Tag } from '../tx/builder/constants.js';\n\n/**\n * Generalized account class\n * @category account generalized\n */\nexport default class AccountGeneralized extends AccountBase {\n  override readonly address: Encoded.AccountAddress;\n\n  #authFun?: string;\n\n  /**\n   * @param address - Address of generalized account\n   */\n  constructor(address: Encoded.AccountAddress) {\n    super();\n    decode(address);\n    this.address = address;\n  }\n\n  /**\n   * @deprecated Use `unsafeSign` method instead\n   */\n  // eslint-disable-next-line class-methods-use-this\n  override async sign(): Promise<Uint8Array> {\n    return this.unsafeSign();\n  }\n\n  // eslint-disable-next-line class-methods-use-this\n  override async unsafeSign(): Promise<Uint8Array> {\n    throw new NotImplementedError(\"Can't sign using generalized account\");\n  }\n\n  // eslint-disable-next-line class-methods-use-this\n  override async signMessage(): Promise<Uint8Array> {\n    throw new NotImplementedError(\"Can't sign using generalized account\");\n  }\n\n  // eslint-disable-next-line class-methods-use-this\n  override async signTypedData(): Promise<Encoded.Signature> {\n    throw new NotImplementedError(\"Can't sign using generalized account\");\n  }\n\n  // eslint-disable-next-line class-methods-use-this\n  override async signDelegation(): Promise<Encoded.Signature> {\n    throw new NotImplementedError('signing delegation using generalized account');\n  }\n\n  override async signTransaction(\n    tx: Encoded.Transaction,\n    { authData, onCompiler, onNode }: Parameters<AccountBase['signTransaction']>[1],\n  ): Promise<Encoded.Transaction> {\n    if (authData == null || onCompiler == null || onNode == null) {\n      throw new ArgumentError('authData, onCompiler, onNode', 'provided', null);\n    }\n    const { callData, sourceCode, args, fee, gasLimit, gasPrice } =\n      typeof authData === 'function' ? await authData(tx) : authData;\n\n    const authCallData =\n      callData ??\n      (await (async () => {\n        if (this.#authFun == null) {\n          const account = await getAccount(this.address, { onNode });\n          if (account.kind !== 'generalized') {\n            throw new ArgumentError('account kind', 'generalized', account.kind);\n          }\n          this.#authFun = account.authFun;\n        }\n        if (this.#authFun == null) {\n          throw new InternalError('Account in generalised, but authFun not provided');\n        }\n\n        if (sourceCode == null || args == null) {\n          throw new InvalidAuthDataError('Auth data must contain sourceCode and args or callData.');\n        }\n        const contract = await Contract.initialize({ onCompiler, onNode, sourceCode });\n        return contract._calldata.encode(contract._name, this.#authFun, args);\n      })());\n\n    const gaMetaTx = await buildTxAsync({\n      tag: Tag.GaMetaTx,\n      tx: { tag: Tag.SignedTx, encodedTx: decode(tx), signatures: [] },\n      gaId: this.address,\n      authData: authCallData,\n      fee,\n      gasLimit,\n      gasPrice,\n      onNode,\n    });\n    return buildTx({ tag: Tag.SignedTx, encodedTx: decode(gaMetaTx), signatures: [] });\n  }\n}\n","import type Transport from '@ledgerhq/hw-transport';\nimport AccountBase from './Base.js';\nimport { ArgumentError, NotImplementedError } from '../utils/errors.js';\nimport { decode, Encoded } from '../utils/encoder.js';\nimport { buildTx } from '../tx/builder/index.js';\nimport { Tag } from '../tx/builder/constants.js';\n\nexport const CLA = 0xe0;\nexport const GET_ADDRESS = 0x02;\nexport const SIGN_TRANSACTION = 0x04;\nexport const GET_APP_CONFIGURATION = 0x06;\nexport const SIGN_PERSONAL_MESSAGE = 0x08;\n\n/**\n * Ledger wallet account class\n * @category account\n */\nexport default class AccountLedger extends AccountBase {\n  /**\n   * @param transport - Connection to Ledger to use\n   * @param index - Index of account\n   * @param address - Address of account\n   */\n  constructor(\n    readonly transport: Transport,\n    readonly index: number,\n    override readonly address: Encoded.AccountAddress,\n  ) {\n    super();\n    transport.decorateAppAPIMethods(this, ['signTransaction', 'signMessage'], 'w0w');\n  }\n\n  /**\n   * @deprecated Use `unsafeSign` method instead\n   */\n  // eslint-disable-next-line class-methods-use-this\n  override async sign(): Promise<Uint8Array> {\n    return this.unsafeSign();\n  }\n\n  // eslint-disable-next-line class-methods-use-this\n  override async unsafeSign(): Promise<Uint8Array> {\n    throw new NotImplementedError('RAW signing using Ledger HW');\n  }\n\n  // eslint-disable-next-line class-methods-use-this\n  override async signTypedData(): Promise<Encoded.Signature> {\n    throw new NotImplementedError('Typed data signing using Ledger HW');\n  }\n\n  // eslint-disable-next-line class-methods-use-this\n  override async signDelegation(): Promise<Encoded.Signature> {\n    throw new NotImplementedError('signing delegation using Ledger HW');\n  }\n\n  override async signTransaction(\n    tx: Encoded.Transaction,\n    { innerTx, networkId }: { innerTx?: boolean; networkId?: string } = {},\n  ): Promise<Encoded.Transaction> {\n    if (innerTx != null) throw new NotImplementedError('innerTx option in AccountLedger');\n    if (networkId == null) throw new ArgumentError('networkId', 'provided', networkId);\n\n    const rawTx = decode(tx);\n    let offset = 0;\n    const headerLength = 4 + 1 + 4;\n    const networkIdBuffer = Buffer.from(networkId);\n    const toSend = [];\n    while (offset !== rawTx.length) {\n      const maxChunkSize = offset === 0 ? 150 - headerLength - networkIdBuffer.length : 150;\n      const chunkSize = offset + maxChunkSize > rawTx.length ? rawTx.length - offset : maxChunkSize;\n      const buffer = Buffer.alloc(\n        offset === 0 ? headerLength + networkIdBuffer.length + chunkSize : chunkSize,\n      );\n      if (offset === 0) {\n        let bufferOffset = buffer.writeUInt32BE(this.index, 0);\n        bufferOffset = buffer.writeUInt32BE(rawTx.length, bufferOffset);\n        bufferOffset = buffer.writeUInt8(networkIdBuffer.length, bufferOffset);\n        bufferOffset += networkIdBuffer.copy(buffer, bufferOffset, 0, networkIdBuffer.length);\n        rawTx.copy(buffer, bufferOffset, 0, 150 - bufferOffset);\n      } else {\n        rawTx.copy(buffer, 0, offset, offset + chunkSize);\n      }\n      toSend.push(buffer);\n      offset += chunkSize;\n    }\n    const response = await toSend.reduce(\n      async (previous, data, i) => {\n        await previous;\n        return this.transport.send(CLA, SIGN_TRANSACTION, i === 0 ? 0x00 : 0x80, 0x00, data);\n      },\n      Promise.resolve(Buffer.alloc(0)),\n    );\n    const signatures = [response.subarray(0, 64)];\n\n    return buildTx({ tag: Tag.SignedTx, encodedTx: rawTx, signatures });\n  }\n\n  override async signMessage(messageStr: string): Promise<Uint8Array> {\n    let offset = 0;\n    const message = Buffer.from(messageStr);\n    const toSend = [];\n    while (offset !== message.length) {\n      const maxChunkSize = offset === 0 ? 150 - 4 - 4 : 150;\n      const chunkSize =\n        offset + maxChunkSize > message.length ? message.length - offset : maxChunkSize;\n      const buffer = Buffer.alloc(offset === 0 ? 4 + 4 + chunkSize : chunkSize);\n      if (offset === 0) {\n        buffer.writeUInt32BE(this.index, 0);\n        buffer.writeUInt32BE(message.length, 4);\n        message.copy(buffer, 4 + 4, offset, offset + chunkSize);\n      } else {\n        message.copy(buffer, 0, offset, offset + chunkSize);\n      }\n      toSend.push(buffer);\n      offset += chunkSize;\n    }\n    const response = await toSend.reduce(\n      async (previous, data, i) => {\n        await previous;\n        return this.transport.send(CLA, SIGN_PERSONAL_MESSAGE, i === 0 ? 0x00 : 0x80, 0x00, data);\n      },\n      Promise.resolve(Buffer.alloc(0)),\n    );\n    return response.subarray(0, 64);\n  }\n}\n","import type Transport from '@ledgerhq/hw-transport';\nimport AccountLedger, { CLA, GET_ADDRESS, GET_APP_CONFIGURATION } from './Ledger.js';\nimport { UnsupportedVersionError } from '../utils/errors.js';\nimport { Encoded } from '../utils/encoder.js';\nimport semverSatisfies from '../utils/semver-satisfies.js';\nimport AccountBaseFactory from './BaseFactory.js';\n\ninterface AppConfiguration {\n  version: string;\n}\n\n/**\n * A factory class that generates instances of AccountLedger based on provided transport.\n * @category account\n */\nexport default class AccountLedgerFactory extends AccountBaseFactory {\n  /**\n   * @param transport - Connection to Ledger to use\n   */\n  constructor(readonly transport: Transport) {\n    super();\n    transport.decorateAppAPIMethods(this, ['getAddress', 'getAppConfiguration'], 'w0w');\n  }\n\n  #ensureReadyPromise?: Promise<void>;\n\n  // TODO: remove after release Ledger app v1.0.0\n  _enableExperimentalLedgerAppSupport = false;\n\n  /**\n   * It throws an exception if Aeternity app on Ledger has an incompatible version, not opened or\n   * not installed.\n   */\n  async ensureReady(): Promise<void> {\n    const { version } = await this.#getAppConfiguration();\n    const oldApp = [version, '0.4.4', '0.5.0'] as const;\n    const newApp = [version, '1.0.0', '2.0.0'] as const;\n    if (\n      !semverSatisfies(...oldApp) &&\n      (!this._enableExperimentalLedgerAppSupport || !semverSatisfies(...newApp))\n    )\n      throw new UnsupportedVersionError('Aeternity app on Ledger', ...oldApp);\n    this.#ensureReadyPromise = Promise.resolve();\n  }\n\n  async #ensureReady(): Promise<void> {\n    this.#ensureReadyPromise ??= this.ensureReady();\n    return this.#ensureReadyPromise;\n  }\n\n  async #getAppConfiguration(): Promise<AppConfiguration> {\n    let response = await this.transport.send(CLA, GET_APP_CONFIGURATION, 0x00, 0x00);\n    if (response.length === 6) response = response.subarray(1);\n    return {\n      version: [response[0], response[1], response[2]].join('.'),\n    };\n  }\n\n  /**\n   * @returns the version of Aeternity app installed on Ledger wallet\n   */\n  async getAppConfiguration(): Promise<AppConfiguration> {\n    return this.#getAppConfiguration();\n  }\n\n  /**\n   * Get `ak_`-prefixed address for a given account index.\n   * @param accountIndex - Index of account\n   * @param verify - Ask user to confirm address by showing it on the device screen\n   */\n  async getAddress(accountIndex: number, verify = false): Promise<Encoded.AccountAddress> {\n    await this.#ensureReady();\n    const buffer = Buffer.alloc(4);\n    buffer.writeUInt32BE(accountIndex, 0);\n    const response = await this.transport.send(\n      CLA,\n      GET_ADDRESS,\n      verify ? 0x01 : 0x00,\n      0x00,\n      buffer,\n    );\n    const addressLength = response[0];\n    return response.subarray(1, 1 + addressLength).toString('ascii') as Encoded.AccountAddress;\n  }\n\n  /**\n   * Get an instance of AccountLedger for a given account index.\n   * @param accountIndex - Index of account\n   */\n  async initialize(accountIndex: number): Promise<AccountLedger> {\n    return new AccountLedger(this.transport, accountIndex, await this.getAddress(accountIndex));\n  }\n}\n","import type { BaseProvider } from '@metamask/providers';\nimport AccountBase from './Base.js';\nimport { Encoded } from '../utils/encoder.js';\nimport { ArgumentError, InternalError, NotImplementedError } from '../utils/errors.js';\n\nexport const snapId = 'npm:@aeternity-snap/plugin';\n\nexport async function invokeSnap<R>(\n  provider: BaseProvider,\n  method: string,\n  params: unknown,\n  key: string,\n): Promise<R> {\n  const response = await provider.request<{ [k in string]: unknown }>({\n    method: 'wallet_invokeSnap',\n    params: { snapId, request: { method, params } },\n  });\n  if (response == null) throw new InternalError('Empty MetaMask response');\n  if (!(key in response)) {\n    throw new InternalError(`Key ${key} missed in response ${JSON.stringify(response)}`);\n  }\n  return response[key] as R;\n}\n\n/**\n * Account connected to Aeternity Snap for MetaMask\n * https://www.npmjs.com/package/\\@aeternity-snap/plugin\n * @category account\n */\nexport default class AccountMetamask extends AccountBase {\n  /**\n   * @deprecated this class is not intended to provide raw access to the provider\n   */\n  readonly provider: BaseProvider;\n\n  readonly index: number;\n\n  override readonly address: Encoded.AccountAddress;\n\n  /**\n   * @param address - Address of account\n   */\n  constructor(provider: BaseProvider, index: number, address: Encoded.AccountAddress) {\n    super();\n    this.provider = provider;\n    this.index = index;\n    this.address = address;\n  }\n\n  /**\n   * @deprecated Use `unsafeSign` method instead\n   */\n  // eslint-disable-next-line class-methods-use-this\n  override async sign(): Promise<Uint8Array> {\n    return this.unsafeSign();\n  }\n\n  // eslint-disable-next-line class-methods-use-this\n  override async unsafeSign(): Promise<Uint8Array> {\n    throw new NotImplementedError('RAW signing using MetaMask');\n  }\n\n  // eslint-disable-next-line class-methods-use-this\n  override async signTypedData(): Promise<Encoded.Signature> {\n    throw new NotImplementedError('Typed data signing using MetaMask');\n  }\n\n  // eslint-disable-next-line class-methods-use-this\n  override async signDelegation(): Promise<Encoded.Signature> {\n    throw new NotImplementedError('signing delegation using MetaMask');\n  }\n\n  // eslint-disable-next-line class-methods-use-this\n  override async signTransaction(\n    tx: Encoded.Transaction,\n    { innerTx, networkId }: { innerTx?: boolean; networkId?: string } = {},\n  ): Promise<Encoded.Transaction> {\n    if (innerTx != null) throw new NotImplementedError('innerTx option in AccountMetamask');\n    if (networkId == null) throw new ArgumentError('networkId', 'provided', networkId);\n\n    return invokeSnap<Encoded.Transaction>(\n      this.provider,\n      'signTransaction',\n      { derivationPath: [`${this.index}'`, \"0'\", \"0'\"], tx, networkId },\n      'signedTx',\n    );\n  }\n\n  // eslint-disable-next-line class-methods-use-this\n  override async signMessage(message: string): Promise<Uint8Array> {\n    const signature = await invokeSnap<string>(\n      this.provider,\n      'signMessage',\n      {\n        derivationPath: [`${this.index}'`, \"0'\", \"0'\"],\n        message: Buffer.from(message).toString('base64'),\n      },\n      'signature',\n    );\n    return Buffer.from(signature, 'base64');\n  }\n}\n","import type { BaseProvider } from '@metamask/providers';\nimport {\n  InternalError,\n  UnsupportedPlatformError,\n  UnsupportedVersionError,\n} from '../utils/errors.js';\nimport { Encoded } from '../utils/encoder.js';\nimport semverSatisfies from '../utils/semver-satisfies.js';\nimport AccountBaseFactory from './BaseFactory.js';\nimport AccountMetamask, { invokeSnap, snapId } from './Metamask.js';\n\nconst snapMinVersion = '0.0.9';\nconst snapMaxVersion = '0.1.0';\nconst metamaskVersionPrefix = 'MetaMask/v';\n\ninterface SnapDetails {\n  blocked: boolean;\n  enabled: boolean;\n  id: typeof snapId;\n  version: string;\n  initialPermissions: Record<string, unknown>;\n}\n\n/**\n * A factory class that generates instances of AccountMetamask.\n * @see {@link https://www.npmjs.com/package/@aeternity-snap/plugin | Aeternity snap}\n * @category account\n */\nexport default class AccountMetamaskFactory extends AccountBaseFactory {\n  // TODO: remove after removing `provider`\n  #provider: BaseProvider | undefined;\n\n  /**\n   * @deprecated this class is not intended to provide raw access to the provider\n   */\n  get provider(): BaseProvider {\n    if (this.#provider == null) throw new UnsupportedPlatformError('Metamask is not detected yet');\n    return this.#provider;\n  }\n\n  async #getMetamaskAsInjected(): Promise<BaseProvider | undefined> {\n    if (!('ethereum' in window) || window.ethereum == null) return;\n    const provider = window.ethereum as BaseProvider;\n    const version = await provider.request<string>({ method: 'web3_clientVersion' });\n    if (version == null) throw new InternalError(\"Can't get Ethereum Provider version\");\n    if (!version.startsWith(metamaskVersionPrefix)) return;\n    return provider;\n  }\n\n  async #getMetamaskOverEip6963(): Promise<BaseProvider | undefined> {\n    setTimeout(() => window.dispatchEvent(new Event('eip6963:requestProvider')));\n    return new Promise<BaseProvider | undefined>((resolve) => {\n      const handler = (\n        event: CustomEvent<{ info: { rdns: string }; provider: BaseProvider }>,\n      ): void => {\n        if (event.detail.info.rdns !== 'io.metamask') return;\n        window.removeEventListener('eip6963:announceProvider', handler);\n        resolve(event.detail.provider);\n      };\n      window.addEventListener('eip6963:announceProvider', handler);\n      setTimeout(() => {\n        window.removeEventListener('eip6963:announceProvider', handler);\n        resolve(undefined);\n      }, 500);\n    });\n  }\n\n  #providerPromise: Promise<BaseProvider> | undefined;\n\n  async #getProvider(): Promise<BaseProvider> {\n    this.#providerPromise ??= (async () => {\n      this.#provider ??=\n        (await this.#getMetamaskAsInjected()) ?? (await this.#getMetamaskOverEip6963());\n      if (this.#provider == null) {\n        throw new UnsupportedPlatformError(\n          \"Can't find a Metamask extension as an injected provider and over EIP-6963. Ensure that Metamask is installed or setup a provider.\",\n        );\n      }\n      const version = await this.#provider.request<string>({ method: 'web3_clientVersion' });\n      if (version == null) throw new InternalError(\"Can't get Ethereum Provider version\");\n      const args = [version.slice(metamaskVersionPrefix.length), '12.2.4'] as const;\n      if (!semverSatisfies(...args)) throw new UnsupportedVersionError('Metamask', ...args);\n      return this.#provider;\n    })();\n    return this.#providerPromise;\n  }\n\n  /**\n   * @param provider - Connection to MetaMask to use\n   */\n  constructor(provider?: BaseProvider) {\n    super();\n    this.#provider = provider;\n    if (this.#provider == null && window == null) {\n      throw new UnsupportedPlatformError(\n        'Window object not found, you can run AccountMetamaskFactory only in browser or setup a provider',\n      );\n    }\n  }\n\n  /**\n   * Request MetaMask to install Aeternity snap.\n   * @deprecated use `requestSnap` instead\n   */\n  async installSnap(): Promise<SnapDetails> {\n    const provider = await this.#getProvider();\n    const details = (await provider.request({\n      method: 'wallet_requestSnaps',\n      params: { [snapId]: { version: snapMinVersion } },\n    })) as { [key in typeof snapId]: SnapDetails };\n    return details[snapId];\n  }\n\n  /**\n   * Request MetaMask to install Aeternity snap or connect it to the current aepp.\n   * MetaMask can have only one Aeternity snap version installed at a time.\n   * This method is intended to upgrade the snap to a specified version if needed by the aepp.\n   * If Aeternity snap is installed but wasn't used by the aepp, then the user still needs to approve the connection.\n   * If the currently installed version corresponds to the version range, then the snap won't be upgraded.\n   * To downgrade the snap, the user must manually uninstall the current version.\n   * @param version - Snap version range (e.g. `1`, `0.1.*`, `^0.0.9`, `~0.0.9`; `>=0.0.9 <0.1.0`)\n   * (default: a version range supported by sdk)\n   */\n  async requestSnap(version = `>=${snapMinVersion} <${snapMaxVersion}`): Promise<SnapDetails> {\n    const provider = await this.#getProvider();\n    const details = (await provider.request({\n      method: 'wallet_requestSnaps',\n      params: { [snapId]: { version } },\n    })) as { [key in typeof snapId]: SnapDetails };\n    return details[snapId];\n  }\n\n  /**\n   * It throws an exception if MetaMask or Aeternity snap has an incompatible version or is not\n   * installed or is not connected to the aepp.\n   * @deprecated use `requestSnap` instead\n   */\n  async ensureReady(): Promise<void> {\n    const snapVersion = await this.getSnapVersion();\n    const args = [snapVersion, snapMinVersion, snapMaxVersion] as const;\n    if (!semverSatisfies(...args))\n      throw new UnsupportedVersionError('Aeternity snap in MetaMask', ...args);\n  }\n\n  /**\n   * @returns the version of snap installed in MetaMask\n   */\n  async getSnapVersion(): Promise<string> {\n    const provider = await this.#getProvider();\n    const snaps = (await provider.request({ method: 'wallet_getSnaps' })) as Record<\n      string,\n      { version: string }\n    >;\n    const version = snaps[snapId]?.version;\n    if (version == null)\n      throw new UnsupportedPlatformError(\n        'Aeternity snap is not installed to MetaMask or not connected to this aepp',\n      );\n    return version;\n  }\n\n  /**\n   * Get an instance of AccountMetaMask for a given account index.\n   * @param accountIndex - Index of account\n   */\n  async initialize(accountIndex: number): Promise<AccountMetamask> {\n    await this.requestSnap();\n    const provider = await this.#getProvider();\n    const address = await invokeSnap<Encoded.AccountAddress>(\n      provider,\n      'getPublicKey',\n      { derivationPath: [`${accountIndex}'`, \"0'\", \"0'\"] },\n      'publicKey',\n    );\n    return new AccountMetamask(provider, accountIndex, address);\n  }\n}\n","import { Encoded } from '../../utils/encoder.js';\n\ninterface FunctionAci {\n  arguments: any[];\n  name: string;\n  payable: boolean;\n  returns: any;\n  stateful: boolean;\n}\n\nexport type Aci = Array<{\n  contract?: {\n    name: string;\n    event?: any;\n    functions: FunctionAci[];\n    kind: string; // known values: 'contract_main'\n    payable: boolean;\n    typedefs: any[];\n  };\n}>;\n\nexport type CompileResult = Promise<{\n  bytecode: Encoded.ContractBytearray;\n  aci: Aci;\n  warnings: Array<{\n    message: string;\n    pos: {\n      file?: string;\n      line: number;\n      col: number;\n    };\n  }>;\n}>;\n\n/**\n * A base class for all compiler implementations\n * @category contract\n */\nexport default abstract class CompilerBase {\n  /**\n   * Compile contract by contract's path\n   * Available only in Node.js\n   * @param path - Path to contract source code\n   * @returns ACI and bytecode\n   */\n  abstract compile(path: string): CompileResult;\n\n  /**\n   * Compile contract by contract's source code\n   * @param sourceCode - Contract source code as string\n   * @param fileSystem - A map of contract filename to the corresponding contract source code to\n   * include into the main contract\n   * @example\n   * ```js\n   * {\n   *   'library.aes': 'namespace TestLib =\\n  function sum(x: int, y: int) : int = x + y'\n   * }\n   * ```\n   * @returns ACI and bytecode\n   */\n  abstract compileBySourceCode(\n    sourceCode: string,\n    fileSystem?: Record<string, string>,\n  ): CompileResult;\n\n  /**\n   * Generate contract's ACI by contract's path\n   * Available only in Node.js\n   * @param path - Path to contract source code\n   * @returns ACI\n   */\n  abstract generateAci(path: string): Promise<Aci>;\n\n  /**\n   * Generate contract's ACI by contract's source code\n   * @param sourceCode - Contract source code as string\n   * @param fileSystem - A map of contract filename to the corresponding contract source code to\n   * include into the main contract\n   * @example\n   * ```js\n   * {\n   *   'library.aes': 'namespace TestLib =\\n  function sum(x: int, y: int) : int = x + y'\n   * }\n   * ```\n   * @returns ACI\n   */\n  abstract generateAciBySourceCode(\n    sourceCode: string,\n    fileSystem?: Record<string, string>,\n  ): Promise<Aci>;\n\n  /**\n   * Verify that a contract bytecode is the result of compiling the given source code\n   * Available only in Node.js\n   * @param bytecode - Contract bytecode to verify\n   * @param path - Path to contract source code\n   * @returns ACI and bytecode\n   */\n  abstract validate(bytecode: Encoded.ContractBytearray, path: string): Promise<boolean>;\n\n  /**\n   * Verify that a contract bytecode is the result of compiling the given source code\n   * @param bytecode - Contract bytecode to verify\n   * @param sourceCode - Contract source code as string\n   * @param fileSystem - A map of contract filename to the corresponding contract source code to\n   * include into the main contract\n   * @example\n   * ```js\n   * {\n   *   'library.aes': 'namespace TestLib =\\n  function sum(x: int, y: int) : int = x + y'\n   * }\n   * ```\n   */\n  abstract validateBySourceCode(\n    bytecode: Encoded.ContractBytearray,\n    sourceCode: string,\n    fileSystem?: Record<string, string>,\n  ): Promise<boolean>;\n\n  /**\n   * @returns Compiler version\n   */\n  abstract version(): Promise<string>;\n}\n","import * as coreClient from \"@azure/core-client\";\n\nexport const Contract: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"Contract\",\n    modelProperties: {\n      code: {\n        serializedName: \"code\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      options: {\n        serializedName: \"options\",\n        type: {\n          name: \"Composite\",\n          className: \"CompileOpts\",\n        },\n      },\n    },\n  },\n};\n\nexport const CompileOpts: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"CompileOpts\",\n    modelProperties: {\n      fileSystem: {\n        serializedName: \"file_system\",\n        type: {\n          name: \"Dictionary\",\n          value: { type: { name: \"any\" } },\n        },\n      },\n      srcFile: {\n        serializedName: \"src_file\",\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const CompilerError: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"CompilerError\",\n    modelProperties: {\n      type: {\n        serializedName: \"type\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      pos: {\n        serializedName: \"pos\",\n        type: {\n          name: \"Composite\",\n          className: \"ErrorPos\",\n        },\n      },\n      message: {\n        serializedName: \"message\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      context: {\n        serializedName: \"context\",\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const ErrorPos: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"ErrorPos\",\n    modelProperties: {\n      file: {\n        serializedName: \"file\",\n        type: {\n          name: \"String\",\n        },\n      },\n      line: {\n        serializedName: \"line\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      col: {\n        serializedName: \"col\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const CompileResult: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"CompileResult\",\n    modelProperties: {\n      bytecode: {\n        serializedName: \"bytecode\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      aci: {\n        serializedName: \"aci\",\n        required: true,\n        type: {\n          name: \"Sequence\",\n          element: {\n            type: {\n              name: \"Dictionary\",\n              value: { type: { name: \"any\" } },\n            },\n          },\n        },\n      },\n      warnings: {\n        serializedName: \"warnings\",\n        required: true,\n        type: {\n          name: \"Sequence\",\n          element: {\n            type: {\n              name: \"Composite\",\n              className: \"CompilerError\",\n            },\n          },\n        },\n      },\n    },\n  },\n};\n\nexport const SophiaCallResultInput: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"SophiaCallResultInput\",\n    modelProperties: {\n      source: {\n        serializedName: \"source\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      options: {\n        serializedName: \"options\",\n        type: {\n          name: \"Composite\",\n          className: \"CompileOpts\",\n        },\n      },\n      function: {\n        serializedName: \"function\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      callResult: {\n        serializedName: \"call-result\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      callValue: {\n        serializedName: \"call-value\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const BytecodeCallResultInput: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"BytecodeCallResultInput\",\n    modelProperties: {\n      bytecode: {\n        serializedName: \"bytecode\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      function: {\n        serializedName: \"function\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      callResult: {\n        serializedName: \"call-result\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      callValue: {\n        serializedName: \"call-value\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const DecodedCallresult: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"DecodedCallresult\",\n    modelProperties: {\n      function: {\n        serializedName: \"function\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      result: {\n        serializedName: \"result\",\n        required: true,\n        type: {\n          name: \"Dictionary\",\n          value: { type: { name: \"any\" } },\n        },\n      },\n    },\n  },\n};\n\nexport const FunctionCallInput: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"FunctionCallInput\",\n    modelProperties: {\n      source: {\n        serializedName: \"source\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      options: {\n        serializedName: \"options\",\n        type: {\n          name: \"Composite\",\n          className: \"CompileOpts\",\n        },\n      },\n      function: {\n        serializedName: \"function\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      arguments: {\n        serializedName: \"arguments\",\n        required: true,\n        type: {\n          name: \"Sequence\",\n          element: {\n            type: {\n              name: \"String\",\n            },\n          },\n        },\n      },\n    },\n  },\n};\n\nexport const Calldata: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"Calldata\",\n    modelProperties: {\n      calldata: {\n        serializedName: \"calldata\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const DecodeCalldataBytecode: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"DecodeCalldataBytecode\",\n    modelProperties: {\n      calldata: {\n        serializedName: \"calldata\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      bytecode: {\n        serializedName: \"bytecode\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const DecodedCalldata: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"DecodedCalldata\",\n    modelProperties: {\n      function: {\n        serializedName: \"function\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      arguments: {\n        serializedName: \"arguments\",\n        required: true,\n        type: {\n          name: \"Sequence\",\n          element: {\n            type: {\n              name: \"Dictionary\",\n              value: { type: { name: \"any\" } },\n            },\n          },\n        },\n      },\n    },\n  },\n};\n\nexport const ErrorModel: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"ErrorModel\",\n    modelProperties: {\n      reason: {\n        serializedName: \"reason\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const DecodeCalldataSource: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"DecodeCalldataSource\",\n    modelProperties: {\n      source: {\n        serializedName: \"source\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      options: {\n        serializedName: \"options\",\n        type: {\n          name: \"Composite\",\n          className: \"CompileOpts\",\n        },\n      },\n      calldata: {\n        serializedName: \"calldata\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      function: {\n        serializedName: \"function\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const ByteCodeInput: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"ByteCodeInput\",\n    modelProperties: {\n      bytecode: {\n        serializedName: \"bytecode\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const FateAssembler: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"FateAssembler\",\n    modelProperties: {\n      fateAssembler: {\n        serializedName: \"fate-assembler\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const ValidateByteCodeInput: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"ValidateByteCodeInput\",\n    modelProperties: {\n      bytecode: {\n        serializedName: \"bytecode\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      source: {\n        serializedName: \"source\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      options: {\n        serializedName: \"options\",\n        type: {\n          name: \"Composite\",\n          className: \"CompileOpts\",\n        },\n      },\n    },\n  },\n};\n\nexport const CompilerVersion: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"CompilerVersion\",\n    modelProperties: {\n      version: {\n        serializedName: \"version\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const ApiVersion: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"ApiVersion\",\n    modelProperties: {\n      apiVersion: {\n        serializedName: \"api-version\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const SophiaBinaryData: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"SophiaBinaryData\",\n    modelProperties: {\n      sophiaType: {\n        serializedName: \"sophia-type\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      data: {\n        serializedName: \"data\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const SophiaJsonData: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"SophiaJsonData\",\n    modelProperties: {\n      data: {\n        serializedName: \"data\",\n        required: true,\n        type: {\n          name: \"Dictionary\",\n          value: { type: { name: \"any\" } },\n        },\n      },\n    },\n  },\n};\n","import { OperationParameter, OperationURLParameter } from \"@azure/core-client\";\nimport {\n  Contract as ContractMapper,\n  SophiaCallResultInput as SophiaCallResultInputMapper,\n  BytecodeCallResultInput as BytecodeCallResultInputMapper,\n  FunctionCallInput as FunctionCallInputMapper,\n  DecodeCalldataBytecode as DecodeCalldataBytecodeMapper,\n  DecodeCalldataSource as DecodeCalldataSourceMapper,\n  ByteCodeInput as ByteCodeInputMapper,\n  ValidateByteCodeInput as ValidateByteCodeInputMapper,\n} from \"../models/mappers.js\";\n\nexport const contentType: OperationParameter = {\n  parameterPath: [\"options\", \"contentType\"],\n  mapper: {\n    defaultValue: \"application/json\",\n    isConstant: true,\n    serializedName: \"Content-Type\",\n    type: {\n      name: \"String\",\n    },\n  },\n};\n\nexport const body: OperationParameter = {\n  parameterPath: \"body\",\n  mapper: ContractMapper,\n};\n\nexport const accept: OperationParameter = {\n  parameterPath: \"accept\",\n  mapper: {\n    defaultValue: \"application/json\",\n    isConstant: true,\n    serializedName: \"Accept\",\n    type: {\n      name: \"String\",\n    },\n  },\n};\n\nexport const $host: OperationURLParameter = {\n  parameterPath: \"$host\",\n  mapper: {\n    serializedName: \"$host\",\n    required: true,\n    type: {\n      name: \"String\",\n    },\n  },\n  skipEncoding: true,\n};\n\nexport const body1: OperationParameter = {\n  parameterPath: \"body\",\n  mapper: SophiaCallResultInputMapper,\n};\n\nexport const body2: OperationParameter = {\n  parameterPath: \"body\",\n  mapper: BytecodeCallResultInputMapper,\n};\n\nexport const body3: OperationParameter = {\n  parameterPath: \"body\",\n  mapper: FunctionCallInputMapper,\n};\n\nexport const body4: OperationParameter = {\n  parameterPath: \"body\",\n  mapper: DecodeCalldataBytecodeMapper,\n};\n\nexport const body5: OperationParameter = {\n  parameterPath: \"body\",\n  mapper: DecodeCalldataSourceMapper,\n};\n\nexport const body6: OperationParameter = {\n  parameterPath: \"body\",\n  mapper: ByteCodeInputMapper,\n};\n\nexport const body7: OperationParameter = {\n  parameterPath: \"body\",\n  mapper: ValidateByteCodeInputMapper,\n};\n","import * as coreClient from \"@azure/core-client\";\nimport * as Parameters from \"./models/parameters.js\";\nimport * as Mappers from \"./models/mappers.js\";\nimport {\n  CompilerOptionalParams,\n  Contract,\n  GenerateACIOptionalParams,\n  GenerateACIResponse,\n  CompileContractOptionalParams,\n  CompileContractResponse,\n  SophiaCallResultInput,\n  DecodeCallResultOptionalParams,\n  DecodeCallResultResponse,\n  BytecodeCallResultInput,\n  DecodeCallResultBytecodeOptionalParams,\n  DecodeCallResultBytecodeResponse,\n  FunctionCallInput,\n  EncodeCalldataOptionalParams,\n  EncodeCalldataResponse,\n  DecodeCalldataBytecode,\n  DecodeCalldataBytecodeOptionalParams,\n  DecodeCalldataBytecodeResponse,\n  DecodeCalldataSource,\n  DecodeCalldataSourceOptionalParams,\n  DecodeCalldataSourceResponse,\n  ByteCodeInput,\n  GetFateAssemblerCodeOptionalParams,\n  GetFateAssemblerCodeResponse,\n  ValidateByteCodeInput,\n  ValidateByteCodeOptionalParams,\n  GetCompilerVersionOptionalParams,\n  GetCompilerVersionResponse,\n  VersionOptionalParams,\n  VersionResponse,\n  ApiVersionOptionalParams,\n  ApiVersionResponse,\n  ApiOptionalParams,\n  ApiResponse,\n} from \"./models/index.js\";\n\nexport class Compiler extends coreClient.ServiceClient {\n  readonly $host: string;\n\n  /**\n   * Initializes a new instance of the Compiler class.\n   * @param $host server parameter\n   * @param options The parameter options\n   */\n  constructor($host: string, options?: CompilerOptionalParams) {\n    if ($host === undefined) {\n      throw new Error(\"'$host' cannot be null\");\n    }\n\n    // Initializing default values for options\n    if (!options) {\n      options = {};\n    }\n    const defaults: CompilerOptionalParams = {\n      requestContentType: \"application/json; charset=utf-8\",\n    };\n\n    const packageDetails = `azsdk-js-compiler/1.0.0-beta.1`;\n    const userAgentPrefix =\n      options.userAgentOptions && options.userAgentOptions.userAgentPrefix\n        ? `${options.userAgentOptions.userAgentPrefix} ${packageDetails}`\n        : `${packageDetails}`;\n\n    const optionsWithDefaults = {\n      ...defaults,\n      ...options,\n      userAgentOptions: {\n        userAgentPrefix,\n      },\n      endpoint: options.endpoint ?? options.baseUri ?? \"{$host}\",\n    };\n    super(optionsWithDefaults);\n    // Parameter assignments\n    this.$host = $host;\n  }\n\n  /**\n   * Generate an Aeternity Contract Interface (ACI) for contract\n   * @param body contract code\n   * @param options The options parameters.\n   */\n  generateACI(\n    body: Contract,\n    options?: GenerateACIOptionalParams,\n  ): Promise<GenerateACIResponse> {\n    return this.sendOperationRequest(\n      { body, options },\n      generateACIOperationSpec,\n    );\n  }\n\n  /**\n   * Compile a sophia contract from source and return byte code and ACI\n   * @param body contract code\n   * @param options The options parameters.\n   */\n  compileContract(\n    body: Contract,\n    options?: CompileContractOptionalParams,\n  ): Promise<CompileContractResponse> {\n    return this.sendOperationRequest(\n      { body, options },\n      compileContractOperationSpec,\n    );\n  }\n\n  /**\n   * Decode the result of contract call\n   * @param body Binary data in Sophia ABI format\n   * @param options The options parameters.\n   */\n  decodeCallResult(\n    body: SophiaCallResultInput,\n    options?: DecodeCallResultOptionalParams,\n  ): Promise<DecodeCallResultResponse> {\n    return this.sendOperationRequest(\n      { body, options },\n      decodeCallResultOperationSpec,\n    );\n  }\n\n  /**\n   * Decode the result of contract call from Bytecode\n   * @param body Call result + compiled contract\n   * @param options The options parameters.\n   */\n  decodeCallResultBytecode(\n    body: BytecodeCallResultInput,\n    options?: DecodeCallResultBytecodeOptionalParams,\n  ): Promise<DecodeCallResultBytecodeResponse> {\n    return this.sendOperationRequest(\n      { body, options },\n      decodeCallResultBytecodeOperationSpec,\n    );\n  }\n\n  /**\n   * Encode Sophia function call according to sophia ABI.\n   * @param body Sophia function call - contract code + function name + arguments\n   * @param options The options parameters.\n   */\n  encodeCalldata(\n    body: FunctionCallInput,\n    options?: EncodeCalldataOptionalParams,\n  ): Promise<EncodeCalldataResponse> {\n    return this.sendOperationRequest(\n      { body, options },\n      encodeCalldataOperationSpec,\n    );\n  }\n\n  /**\n   * Identify function name and arguments in Calldata for a compiled contract\n   * @param body Calldata + compiled contract\n   * @param options The options parameters.\n   */\n  decodeCalldataBytecode(\n    body: DecodeCalldataBytecode,\n    options?: DecodeCalldataBytecodeOptionalParams,\n  ): Promise<DecodeCalldataBytecodeResponse> {\n    return this.sendOperationRequest(\n      { body, options },\n      decodeCalldataBytecodeOperationSpec,\n    );\n  }\n\n  /**\n   * Identify function name and arguments in Calldata for a (partial) contract\n   * @param body Calldata + contract (stub) code\n   * @param options The options parameters.\n   */\n  decodeCalldataSource(\n    body: DecodeCalldataSource,\n    options?: DecodeCalldataSourceOptionalParams,\n  ): Promise<DecodeCalldataSourceResponse> {\n    return this.sendOperationRequest(\n      { body, options },\n      decodeCalldataSourceOperationSpec,\n    );\n  }\n\n  /**\n   * Get FATE assembler code from bytecode\n   * @param body contract byte array\n   * @param options The options parameters.\n   */\n  getFateAssemblerCode(\n    body: ByteCodeInput,\n    options?: GetFateAssemblerCodeOptionalParams,\n  ): Promise<GetFateAssemblerCodeResponse> {\n    return this.sendOperationRequest(\n      { body, options },\n      getFateAssemblerCodeOperationSpec,\n    );\n  }\n\n  /**\n   * Verify that an encoded byte array is the result of compiling a given contract\n   * @param body contract byte array and source code\n   * @param options The options parameters.\n   */\n  validateByteCode(\n    body: ValidateByteCodeInput,\n    options?: ValidateByteCodeOptionalParams,\n  ): Promise<void> {\n    return this.sendOperationRequest(\n      { body, options },\n      validateByteCodeOperationSpec,\n    );\n  }\n\n  /**\n   * Extract compiler version from bytecode\n   * @param body contract byte array\n   * @param options The options parameters.\n   */\n  getCompilerVersion(\n    body: ByteCodeInput,\n    options?: GetCompilerVersionOptionalParams,\n  ): Promise<GetCompilerVersionResponse> {\n    return this.sendOperationRequest(\n      { body, options },\n      getCompilerVersionOperationSpec,\n    );\n  }\n\n  /**\n   * Get the version of the underlying Sophia compiler version\n   * @param options The options parameters.\n   */\n  version(options?: VersionOptionalParams): Promise<VersionResponse> {\n    return this.sendOperationRequest({ options }, versionOperationSpec);\n  }\n\n  /**\n   * Get the version of the API\n   * @param options The options parameters.\n   */\n  apiVersion(options?: ApiVersionOptionalParams): Promise<ApiVersionResponse> {\n    return this.sendOperationRequest({ options }, apiVersionOperationSpec);\n  }\n\n  /**\n   * Get the Api description\n   * @param options The options parameters.\n   */\n  api(options?: ApiOptionalParams): Promise<ApiResponse> {\n    return this.sendOperationRequest({ options }, apiOperationSpec);\n  }\n}\n// Operation Specifications\nconst serializer = coreClient.createSerializer(Mappers, /* isXml */ false);\n\nconst generateACIOperationSpec: coreClient.OperationSpec = {\n  path: \"/aci\",\n  httpMethod: \"POST\",\n  responses: {\n    200: {\n      bodyMapper: {\n        type: {\n          name: \"Sequence\",\n          element: {\n            type: { name: \"Dictionary\", value: { type: { name: \"any\" } } },\n          },\n        },\n      },\n    },\n    400: {\n      bodyMapper: {\n        type: {\n          name: \"Sequence\",\n          element: { type: { name: \"Composite\", className: \"CompilerError\" } },\n        },\n      },\n      isError: true,\n    },\n  },\n  requestBody: Parameters.body,\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.contentType, Parameters.accept],\n  mediaType: \"json\",\n  serializer,\n};\nconst compileContractOperationSpec: coreClient.OperationSpec = {\n  path: \"/compile\",\n  httpMethod: \"POST\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.CompileResult,\n    },\n    400: {\n      bodyMapper: {\n        type: {\n          name: \"Sequence\",\n          element: { type: { name: \"Composite\", className: \"CompilerError\" } },\n        },\n      },\n      isError: true,\n    },\n  },\n  requestBody: Parameters.body,\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.contentType, Parameters.accept],\n  mediaType: \"json\",\n  serializer,\n};\nconst decodeCallResultOperationSpec: coreClient.OperationSpec = {\n  path: \"/decode-call-result\",\n  httpMethod: \"POST\",\n  responses: {\n    200: {\n      bodyMapper: { type: { name: \"any\" } },\n    },\n    400: {\n      bodyMapper: {\n        type: {\n          name: \"Sequence\",\n          element: { type: { name: \"Composite\", className: \"CompilerError\" } },\n        },\n      },\n      isError: true,\n    },\n  },\n  requestBody: Parameters.body1,\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.contentType, Parameters.accept],\n  mediaType: \"json\",\n  serializer,\n};\nconst decodeCallResultBytecodeOperationSpec: coreClient.OperationSpec = {\n  path: \"/decode-call-result/bytecode\",\n  httpMethod: \"POST\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.DecodedCallresult,\n    },\n    400: {\n      bodyMapper: {\n        type: {\n          name: \"Sequence\",\n          element: { type: { name: \"Composite\", className: \"CompilerError\" } },\n        },\n      },\n      isError: true,\n    },\n  },\n  requestBody: Parameters.body2,\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.contentType, Parameters.accept],\n  mediaType: \"json\",\n  serializer,\n};\nconst encodeCalldataOperationSpec: coreClient.OperationSpec = {\n  path: \"/encode-calldata\",\n  httpMethod: \"POST\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.Calldata,\n    },\n    400: {\n      bodyMapper: {\n        type: {\n          name: \"Sequence\",\n          element: { type: { name: \"Composite\", className: \"CompilerError\" } },\n        },\n      },\n      isError: true,\n    },\n  },\n  requestBody: Parameters.body3,\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.contentType, Parameters.accept],\n  mediaType: \"json\",\n  serializer,\n};\nconst decodeCalldataBytecodeOperationSpec: coreClient.OperationSpec = {\n  path: \"/decode-calldata/bytecode\",\n  httpMethod: \"POST\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.DecodedCalldata,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n  },\n  requestBody: Parameters.body4,\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.contentType, Parameters.accept],\n  mediaType: \"json\",\n  serializer,\n};\nconst decodeCalldataSourceOperationSpec: coreClient.OperationSpec = {\n  path: \"/decode-calldata/source\",\n  httpMethod: \"POST\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.DecodedCalldata,\n    },\n    400: {\n      bodyMapper: {\n        type: {\n          name: \"Sequence\",\n          element: { type: { name: \"Composite\", className: \"CompilerError\" } },\n        },\n      },\n      isError: true,\n    },\n  },\n  requestBody: Parameters.body5,\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.contentType, Parameters.accept],\n  mediaType: \"json\",\n  serializer,\n};\nconst getFateAssemblerCodeOperationSpec: coreClient.OperationSpec = {\n  path: \"/fate-assembler\",\n  httpMethod: \"POST\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.FateAssembler,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n  },\n  requestBody: Parameters.body6,\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.contentType, Parameters.accept],\n  mediaType: \"json\",\n  serializer,\n};\nconst validateByteCodeOperationSpec: coreClient.OperationSpec = {\n  path: \"/validate-byte-code\",\n  httpMethod: \"POST\",\n  responses: {\n    200: {},\n    400: {\n      bodyMapper: {\n        type: {\n          name: \"Sequence\",\n          element: { type: { name: \"Composite\", className: \"CompilerError\" } },\n        },\n      },\n      isError: true,\n    },\n  },\n  requestBody: Parameters.body7,\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.contentType, Parameters.accept],\n  mediaType: \"json\",\n  serializer,\n};\nconst getCompilerVersionOperationSpec: coreClient.OperationSpec = {\n  path: \"/compiler-version\",\n  httpMethod: \"POST\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.CompilerVersion,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n  },\n  requestBody: Parameters.body6,\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.contentType, Parameters.accept],\n  mediaType: \"json\",\n  serializer,\n};\nconst versionOperationSpec: coreClient.OperationSpec = {\n  path: \"/version\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.CompilerVersion,\n    },\n    500: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n  },\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst apiVersionOperationSpec: coreClient.OperationSpec = {\n  path: \"/api-version\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.ApiVersion,\n    },\n    500: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n  },\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst apiOperationSpec: coreClient.OperationSpec = {\n  path: \"/api\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: {\n        type: { name: \"Dictionary\", value: { type: { name: \"any\" } } },\n      },\n    },\n    400: {\n      bodyMapper: Mappers.ErrorModel,\n      isError: true,\n    },\n  },\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\n","import {\n  RestError,\n  userAgentPolicyName,\n  setClientRequestIdPolicyName,\n} from '@azure/core-rest-pipeline';\nimport { OperationOptions } from '@azure/core-client';\nimport {\n  Compiler as CompilerApi,\n  ErrorModel,\n  CompilerError as CompilerErrorApi,\n} from '../../apis/compiler/index.js';\nimport { genErrorFormatterPolicy, genVersionCheckPolicy } from '../../utils/autorest.js';\nimport CompilerBase, { Aci, CompileResult } from './Base.js';\nimport { Encoded } from '../../utils/encoder.js';\nimport { CompilerError, NotImplementedError } from '../../utils/errors.js';\n\ntype GeneralCompilerError = ErrorModel & {\n  info?: object;\n  parameter?: string;\n};\n\n/**\n * Contract Compiler over HTTP\n *\n * This class include api call's related to contract compiler functionality.\n * @category contract\n * @example CompilerHttp('COMPILER_URL')\n */\nexport default class CompilerHttp extends CompilerBase {\n  readonly api: CompilerApi;\n\n  /**\n   * @param compilerUrl - Url for compiler API\n   * @param options - Options\n   * @param options.ignoreVersion - Print warning instead of throwing exception if compiler version\n   * is not supported, use with caution\n   */\n  constructor(compilerUrl: string, { ignoreVersion = false }: { ignoreVersion?: boolean } = {}) {\n    super();\n\n    let version: string | undefined;\n    const getVersion = async (opts: OperationOptions): Promise<string> => {\n      if (version != null) return version;\n      version = (await this.api.apiVersion(opts)).apiVersion;\n      return version;\n    };\n\n    this.api = new CompilerApi(compilerUrl, {\n      allowInsecureConnection: true,\n      additionalPolicies: [\n        genVersionCheckPolicy('compiler', getVersion, '8.0.0', '9.0.0', ignoreVersion),\n        genErrorFormatterPolicy((body: GeneralCompilerError | CompilerErrorApi[]) => {\n          let message = '';\n          if ('reason' in body) {\n            message += ` ${body.reason}${\n              body.parameter != null ? ` in ${body.parameter}` : ''\n              // TODO: revising after improving documentation https://github.com/aeternity/aesophia_http/issues/78\n            }${body.info != null ? ` (${JSON.stringify(body.info)})` : ''}`;\n          }\n          if (Array.isArray(body)) {\n            message += `\\n${body\n              .map(\n                (e) =>\n                  `${e.type}:${e.pos.line}:${e.pos.col}: ${e.message}${e.context != null ? ` (${e.context})` : ''}`,\n              )\n              .join('\\n')}`;\n          }\n          return message;\n        }),\n      ],\n    });\n    this.api.pipeline.removePolicy({ name: userAgentPolicyName });\n    this.api.pipeline.removePolicy({ name: setClientRequestIdPolicyName });\n  }\n\n  async compileBySourceCode(\n    sourceCode: string,\n    fileSystem?: Record<string, string>,\n  ): CompileResult {\n    try {\n      const cmpOut = await this.api.compileContract({ code: sourceCode, options: { fileSystem } });\n      const warnings = cmpOut.warnings.map(({ type, ...warning }) => warning);\n      const res = { ...cmpOut, warnings };\n      // TODO: should be fixed when the compiledAci interface gets updated\n      return res as Awaited<CompileResult>;\n    } catch (error) {\n      if (error instanceof RestError && error.statusCode === 400) {\n        throw new CompilerError(error.message);\n      }\n      throw error;\n    }\n  }\n\n  // eslint-disable-next-line class-methods-use-this, @typescript-eslint/no-unused-vars\n  async compile(path: string): CompileResult {\n    throw new NotImplementedError('File system access, use CompilerHttpNode instead');\n  }\n\n  async generateAciBySourceCode(\n    sourceCode: string,\n    fileSystem?: Record<string, string>,\n  ): Promise<Aci> {\n    try {\n      return await this.api.generateACI({ code: sourceCode, options: { fileSystem } });\n    } catch (error) {\n      if (error instanceof RestError && error.statusCode === 400) {\n        throw new CompilerError(error.message);\n      }\n      throw error;\n    }\n  }\n\n  // eslint-disable-next-line class-methods-use-this, @typescript-eslint/no-unused-vars\n  async generateAci(path: string): Promise<Aci> {\n    throw new NotImplementedError('File system access, use CompilerHttpNode instead');\n  }\n\n  async validateBySourceCode(\n    bytecode: Encoded.ContractBytearray,\n    sourceCode: string,\n    fileSystem?: Record<string, string>,\n  ): Promise<boolean> {\n    try {\n      await this.api.validateByteCode({ bytecode, source: sourceCode, options: { fileSystem } });\n      return true;\n    } catch {\n      return false;\n    }\n  }\n\n  // eslint-disable-next-line class-methods-use-this, @typescript-eslint/no-unused-vars\n  async validate(bytecode: Encoded.ContractBytearray, path: string): Promise<boolean> {\n    throw new NotImplementedError('File system access, use CompilerHttpNode instead');\n  }\n\n  async version(): Promise<string> {\n    return (await this.api.version()).version;\n  }\n}\n","/**\n * Convert string from snake_case to PascalCase\n * @param s - String to convert\n * @returns Converted string\n */\nexport function snakeToPascal(s: string): string {\n  return s.replace(/_./g, (match) => match[1].toUpperCase());\n}\n\n/**\n * Convert string from PascalCase to snake_case\n * @param s - String to convert\n * @returns Converted string\n */\nexport function pascalToSnake(s: string): string {\n  return s.replace(/[A-Z]/g, (match) => `_${match.toLowerCase()}`);\n}\n","import { default as websocket, ICloseEvent } from 'websocket';\nimport BigNumber from 'bignumber.js';\nimport type Channel from './Base.js';\nimport JsonBig from '../utils/json-big.js';\nimport { pascalToSnake } from '../utils/string.js';\nimport { Encoded } from '../utils/encoder.js';\nimport {\n  BaseError,\n  ChannelCallError,\n  ChannelPingTimedOutError,\n  UnexpectedTsError,\n  UnknownChannelStateError,\n  ChannelIncomingMessageError,\n  ChannelError,\n} from '../utils/errors.js';\nimport { buildContractId } from '../tx/builder/helpers.js';\nimport { ensureError } from '../utils/other.js';\n\nconst { w3cwebsocket: W3CWebSocket } = websocket;\n\nexport interface ChannelEvents {\n  statusChanged: (status: ChannelStatus) => void;\n  stateChanged: (tx: Encoded.Transaction | '') => void;\n  depositLocked: () => void;\n  ownDepositLocked: () => void;\n  withdrawLocked: () => void;\n  ownWithdrawLocked: () => void;\n  peerDisconnected: () => void;\n  channelReestablished: () => void;\n  error: (error: Error) => void;\n  onChainTx: (tx: Encoded.Transaction, details: { info: string; type: string }) => void;\n  message: (message: string | Object) => void;\n  newContract: (contractAddress: Encoded.ContractAddress) => void;\n}\n\nexport interface ChannelAction {\n  guard: (channel: Channel, state?: ChannelFsm) => boolean;\n  action: (channel: Channel, state?: ChannelFsm) => ChannelFsm;\n}\n\ninterface SignOptions {\n  updates?: any[];\n  [k: string]: any;\n}\nexport type SignTxWithTag = (\n  tag: string,\n  tx: Encoded.Transaction,\n  options?: SignOptions,\n) => Promise<Encoded.Transaction>;\n// TODO: SignTx shouldn't return number or null\nexport type SignTx = (\n  tx: Encoded.Transaction,\n  options?: SignOptions,\n) => Promise<Encoded.Transaction | number | null>;\n\n/**\n * @see {@link https://github.com/aeternity/protocol/blob/6734de2e4c7cce7e5e626caa8305fb535785131d/node/api/channels_api_usage.md#channel-establishing-parameters}\n */\ninterface CommonChannelOptions {\n  /**\n   * Channel url (for example: \"ws://localhost:3001\")\n   */\n  url: string;\n\n  /**\n   * Initiator's public key\n   */\n  initiatorId: Encoded.AccountAddress;\n  /**\n   * Responder's public key\n   */\n  responderId: Encoded.AccountAddress;\n  /**\n   * Amount of blocks for disputing a solo close\n   */\n  lockPeriod: number;\n  /**\n   * Initial deposit in favour of the responder by the initiator\n   */\n  pushAmount: BigNumber | number;\n  /**\n   * Amount of coins the initiator has committed to the channel\n   */\n  initiatorAmount: BigNumber | number;\n  /**\n   * Amount of coins the responder has committed to the channel\n   */\n  responderAmount: BigNumber | number;\n  /**\n   * The minimum amount both peers need to maintain\n   */\n  channelReserve?: BigNumber | number;\n  /**\n   * Minimum block height to include the channel_create_tx\n   */\n  ttl?: number;\n  /**\n   * The port of the responder's node\n   */\n  port: number;\n  /**\n   * How to calculate minimum depth (default: txfee)\n   */\n  minimumDepthStrategy?: 'txfee' | 'plain';\n  /**\n   * The minimum amount of blocks to be mined\n   */\n  minimumDepth?: number;\n  /**\n   * The fee to be used for the channel open transaction\n   */\n  fee?: BigNumber | number;\n  /**\n   * Used for the fee computation of the channel open transaction\n   */\n  gasPrice?: BigNumber | number;\n\n  signedTx?: Encoded.Transaction;\n  /**\n   * Existing channel id (required if reestablishing a channel)\n   */\n  existingChannelId?: Encoded.Channel;\n  /**\n   * Existing FSM id (required if reestablishing a channel)\n   */\n  existingFsmId?: Encoded.Bytearray;\n  /**\n   * Needs to be provided if reconnecting with calling `leave` before\n   */\n  // TODO: remove after solving https://github.com/aeternity/aeternity/issues/4399\n  reestablish?: boolean;\n  /**\n   * The time waiting for a new event to be initiated (default: 600000)\n   */\n  timeoutIdle?: number;\n  /**\n   * The time waiting for the initiator to produce the create channel transaction after the noise\n   * session had been established (default: 120000)\n   */\n  timeoutFundingCreate?: number;\n  /**\n   * The time frame the other client has to sign an off-chain update after our client had initiated\n   * and signed it. This applies only for double signed on-chain intended updates: channel create\n   * transaction, deposit, withdrawal and etc. (default: 120000)\n   */\n  timeoutFundingSign?: number;\n  /**\n   * The time frame the other client has to confirm an on-chain transaction reaching maturity\n   * (passing minimum depth) after the local node has detected this. This applies only for double\n   * signed on-chain intended updates: channel create transaction, deposit, withdrawal and etc.\n   * (default: 360000)\n   */\n  timeoutFundingLock?: number;\n  /**\n   * The time frame the client has to return a signed off-chain update or to decline it.\n   * This applies for all off-chain updates (default: 500000)\n   */\n  timeoutSign?: number;\n  /**\n   * The time frame the other client has to react to an event. This applies for all off-chain\n   * updates that are not meant to land on-chain, as well as some special cases: opening a noise\n   * connection, mutual closing acknowledgement and reestablishing an existing channel\n   * (default: 120000)\n   */\n  timeoutAccept?: number;\n  /**\n   * the time frame the responder has to accept an incoming noise session.\n   * Applicable only for initiator (default: timeout_accept's value)\n   */\n  timeoutInitialized?: number;\n  /**\n   * The time frame the initiator has to start an outgoing noise session to the responder's node.\n   * Applicable only for responder (default: timeout_idle's value)\n   */\n  timeoutAwaitingOpen?: number;\n  /**\n   * Log websocket communication and state changes\n   */\n  debug?: boolean;\n  /**\n   * Function which verifies and signs transactions\n   */\n  sign: SignTxWithTag;\n}\n\nexport type ChannelOptions = CommonChannelOptions &\n  (\n    | {\n        /**\n         * Participant role\n         */\n        role: 'initiator';\n        /**\n         * Host of the responder's node\n         */\n        host: string;\n      }\n    | {\n        /**\n         * Participant role\n         */\n        role: 'responder';\n      }\n  );\n\nexport interface ChannelHandler extends Function {\n  enter?: Function;\n}\n\nexport interface ChannelState {\n  signedTx: Encoded.Transaction;\n  resolve: (r?: any) => void;\n  reject: (e: BaseError) => void;\n  sign: SignTx;\n  handler?: ChannelHandler;\n  /**\n   * Called when transaction has been posted on chain\n   */\n  onOnChainTx?: (tx: Encoded.Transaction) => void;\n  onOwnWithdrawLocked?: () => void;\n  onWithdrawLocked?: () => void;\n  onOwnDepositLocked?: () => void;\n  onDepositLocked?: () => void;\n  closeTx?: string;\n}\n\nexport interface ChannelFsm {\n  handler: ChannelHandler;\n  state?:\n    | ChannelState\n    | {\n        resolve: Function;\n        reject: Function;\n      };\n}\n\nexport interface ChannelMessage {\n  id?: number;\n  method: string;\n  params: any;\n  payload?: any;\n  data?: any;\n  error?: ChannelMessageError;\n}\n\ninterface ChannelMessageError {\n  code: number;\n  message: string;\n  data: [\n    {\n      message: string;\n      code: number;\n    },\n  ];\n  request: ChannelMessage;\n}\n\n// Send ping message every 10 seconds\nconst PING_TIMEOUT_MS = 10000;\n// Close connection if pong message is not received within 15 seconds\nconst PONG_TIMEOUT_MS = 15000;\n\nexport function emit<E extends keyof ChannelEvents>(\n  channel: Channel,\n  ...args: [E, ...Parameters<ChannelEvents[E]>]\n): void {\n  const [eventName, ...rest] = args;\n  channel._eventEmitter.emit(eventName, ...rest);\n}\n\nfunction enterState(channel: Channel, nextState: ChannelFsm): void {\n  if (nextState == null) {\n    throw new UnknownChannelStateError();\n  }\n  channel._debug('enter state', nextState.handler.name);\n  channel._fsm = nextState;\n  if (nextState?.handler?.enter != null) {\n    nextState.handler.enter(channel);\n  }\n  // eslint-disable-next-line @typescript-eslint/no-use-before-define\n  void dequeueAction(channel);\n}\n\n// TODO: rewrite to enum\nexport type ChannelStatus =\n  | 'connecting'\n  | 'connected'\n  | 'accepted'\n  | 'halfSigned'\n  | 'signed'\n  | 'open'\n  | 'closing'\n  | 'closed'\n  | 'died'\n  | 'disconnected';\n\nexport function changeStatus(channel: Channel, newStatus: ChannelStatus, debug?: unknown): void {\n  channel._debug(newStatus, `(prev. ${channel._status})`, debug ?? '');\n  if (newStatus === channel._status) return;\n  channel._status = newStatus;\n  emit(channel, 'statusChanged', newStatus);\n}\n\nexport function changeState(channel: Channel, newState: Encoded.Transaction | ''): void {\n  channel._state = newState;\n  emit(channel, 'stateChanged', newState);\n}\n\nfunction send(channel: Channel, message: ChannelMessage): void {\n  channel._debug('send message', message.method, message.params);\n  channel._websocket.send(JsonBig.stringify({ jsonrpc: '2.0', ...message }));\n}\n\nexport function notify(channel: Channel, method: string, params: object = {}): void {\n  send(channel, { method, params });\n}\n\nasync function dequeueAction(channel: Channel): Promise<void> {\n  if (channel._isActionQueueLocked) return;\n  const queue = channel._actionQueue;\n  if (queue.length === 0) return;\n  const index = queue.findIndex((action) => action.guard(channel, channel._fsm));\n  if (index === -1) return;\n  channel._actionQueue = queue.filter((_, i) => index !== i);\n  channel._isActionQueueLocked = true;\n  const nextState: ChannelFsm = await queue[index].action(channel, channel._fsm);\n  channel._isActionQueueLocked = false;\n  enterState(channel, nextState);\n}\n\nexport async function enqueueAction(\n  channel: Channel,\n  guard: ChannelAction['guard'],\n  action: () => { handler: ChannelHandler; state?: Partial<ChannelState> },\n): Promise<any> {\n  const promise = new Promise((resolve, reject) => {\n    channel._actionQueue.push({\n      guard,\n      action() {\n        const res = action();\n        return { ...res, state: { ...res.state, resolve, reject } };\n      },\n    });\n  });\n  void dequeueAction(channel);\n  return promise;\n}\n\nasync function handleMessage(channel: Channel, message: ChannelMessage): Promise<void> {\n  const { handler, state: st } = channel._fsm;\n  const nextState = await Promise.resolve(handler(channel, message, st));\n  enterState(channel, nextState);\n  // TODO: emit message and handler name (?) to move this code to Contract constructor\n  if (\n    message?.params?.data?.updates?.[0]?.op === 'OffChainNewContract' &&\n    // if name is channelOpen, the contract was created by other participant\n    nextState?.handler.name === 'channelOpen'\n  ) {\n    const round = channel.round();\n    if (round == null) throw new UnexpectedTsError('Round is null');\n    const owner = message?.params?.data?.updates?.[0]?.owner;\n    emit(channel, 'newContract', buildContractId(owner, round + 1));\n  }\n}\n\nasync function dequeueMessage(channel: Channel): Promise<void> {\n  if (channel._isMessageQueueLocked) return;\n  channel._isMessageQueueLocked = true;\n  while (channel._messageQueue.length > 0) {\n    const message = channel._messageQueue.shift();\n    if (message == null) throw new UnexpectedTsError();\n    try {\n      await handleMessage(channel, message);\n    } catch (error) {\n      ensureError(error);\n      emit(channel, 'error', new ChannelIncomingMessageError(error, message));\n    }\n  }\n  channel._isMessageQueueLocked = false;\n}\n\nexport function disconnect(channel: Channel): void {\n  channel._websocket.close();\n  clearTimeout(channel._pingTimeoutId);\n}\n\nfunction ping(channel: Channel): void {\n  clearTimeout(channel._pingTimeoutId);\n  channel._pingTimeoutId = setTimeout(() => {\n    notify(channel, 'channels.system', { action: 'ping' });\n    channel._pingTimeoutId = setTimeout(() => {\n      disconnect(channel);\n      emit(channel, 'error', new ChannelPingTimedOutError());\n    }, PONG_TIMEOUT_MS);\n  }, PING_TIMEOUT_MS);\n}\n\nfunction onMessage(channel: Channel, data: string): void {\n  const message = JsonBig.parse(data);\n  channel._debug('received message', message.method, message.params);\n  if (message.id != null) {\n    const callback = channel._rpcCallbacks.get(message.id);\n    if (callback == null) {\n      emit(channel, 'error', new ChannelError(`Can't find callback by id: ${message.id}`));\n      return;\n    }\n    try {\n      callback(message);\n    } finally {\n      channel._rpcCallbacks.delete(message.id);\n    }\n    return;\n  }\n  if (message.method === 'channels.message') {\n    emit(channel, 'message', message.params.data.message);\n    return;\n  }\n  if (message.method === 'channels.system.pong') {\n    if (message.params.channel_id === channel._channelId || channel._channelId == null) {\n      ping(channel);\n    }\n    return;\n  }\n  channel._messageQueue.push(message);\n  void dequeueMessage(channel);\n}\n\nexport async function call(channel: Channel, method: string, params: any): Promise<any> {\n  return new Promise((resolve, reject) => {\n    const id = channel._nextRpcMessageId;\n    channel._nextRpcMessageId += 1;\n    channel._rpcCallbacks.set(\n      id,\n      (message: { result: PromiseLike<any>; error?: ChannelMessageError }) => {\n        if (message.error != null) {\n          const details = message.error.data[0].message ?? '';\n          reject(new ChannelCallError(message.error.message + details));\n        } else resolve(message.result);\n      },\n    );\n    send(channel, { method, id, params });\n  });\n}\n\nexport async function initialize(\n  channel: Channel,\n  connectionHandler: Function,\n  openHandler: Function,\n  { url, ...channelOptions }: ChannelOptions,\n): Promise<void> {\n  channel._options = { url, ...channelOptions };\n\n  const wsUrl = new URL(url);\n  Object.entries(channelOptions)\n    .filter(([key]) => !['sign', 'debug'].includes(key))\n    .forEach(([key, value]) => wsUrl.searchParams.set(pascalToSnake(key), value.toString()));\n  wsUrl.searchParams.set('protocol', 'json-rpc');\n  changeStatus(channel, 'connecting');\n  channel._websocket = new W3CWebSocket(wsUrl.toString());\n  await new Promise<void>((resolve, reject) => {\n    Object.assign(channel._websocket, {\n      onerror: reject,\n      onopen: async (event: Event) => {\n        resolve();\n        changeStatus(channel, 'connected', event);\n        enterState(channel, { handler: connectionHandler });\n        ping(channel);\n      },\n      onclose: (event: ICloseEvent) => {\n        changeStatus(channel, 'disconnected', event);\n        clearTimeout(channel._pingTimeoutId);\n      },\n      onmessage: ({ data }: { data: string }) => onMessage(channel, data),\n    });\n  });\n}\n","/* eslint-disable consistent-return */\n/* eslint-disable default-case */\n/* eslint-disable @typescript-eslint/no-use-before-define */\nimport {\n  ChannelState,\n  changeStatus,\n  changeState,\n  notify,\n  emit,\n  disconnect,\n  ChannelMessage,\n  ChannelFsm,\n  SignTx,\n  ChannelStatus,\n  ChannelEvents,\n} from './internal.js';\nimport { unpackTx, buildTx } from '../tx/builder/index.js';\nimport { decode, Encoded } from '../utils/encoder.js';\nimport {\n  IllegalArgumentError,\n  InsufficientBalanceError,\n  ChannelConnectionError,\n  UnexpectedChannelMessageError,\n  ChannelError,\n} from '../utils/errors.js';\nimport type Channel from './Base.js';\nimport { Tag } from '../tx/builder/constants.js';\nimport { snakeToPascal } from '../utils/string.js';\n\nexport async function appendSignature(\n  tx: Encoded.Transaction,\n  signFn: SignTx,\n): Promise<Encoded.Transaction | number | null> {\n  const { signatures, encodedTx } = unpackTx(tx, Tag.SignedTx);\n  const payloadTx = buildTx(encodedTx);\n  const result = await signFn(payloadTx);\n  if (typeof result === 'string') {\n    const { signatures: signatures2 } = unpackTx(result, Tag.SignedTx);\n    return buildTx({\n      tag: Tag.SignedTx,\n      signatures: signatures.concat(signatures2),\n      encodedTx: decode(payloadTx),\n    });\n  }\n  return result;\n}\n\nexport async function signAndNotify(\n  channel: Channel,\n  method: string,\n  data: {\n    tx?: Encoded.Transaction;\n    signed_tx?: Encoded.Transaction;\n  },\n  signFn: SignTx,\n): Promise<boolean> {\n  let signedTx;\n  if (data.tx != null) signedTx = await signFn(data.tx);\n  else if (data.signed_tx != null) signedTx = await appendSignature(data.signed_tx, signFn);\n  else throw new ChannelError(\"Can't find transaction in message\");\n  const isError = typeof signedTx !== 'string';\n  const key = data.tx != null ? 'tx' : 'signed_tx';\n  notify(channel, method, isError ? { error: signedTx ?? 1 } : { [key]: signedTx });\n  return isError;\n}\n\nexport function handleUnexpectedMessage(\n  _channel: Channel,\n  message: ChannelMessage,\n  state: ChannelState,\n): ChannelFsm {\n  state?.reject?.(\n    Object.assign(\n      new UnexpectedChannelMessageError(\n        `Unexpected message received:\\n\\n${JSON.stringify(message)}`,\n      ),\n      { wsMessage: message },\n    ),\n  );\n  return { handler: channelOpen };\n}\n\nexport function awaitingCompletion(\n  channel: Channel,\n  message: ChannelMessage,\n  state: ChannelState,\n  onSuccess?: typeof handleUnexpectedMessage,\n): ChannelFsm {\n  if (onSuccess != null && message.method === 'channels.update') {\n    return onSuccess(channel, message, state);\n  }\n  if (message.method === 'channels.conflict') {\n    state.resolve({\n      accepted: false,\n      errorCode: message.params.data.error_code,\n      errorMessage: message.params.data.error_msg,\n    });\n    return { handler: channelOpen };\n  }\n  if (message.method === 'channels.info') {\n    if (message.params.data.event === 'aborted_update') {\n      state.resolve({ accepted: false });\n      return { handler: channelOpen };\n    }\n  }\n  if (message.error != null) {\n    const codes = message.error.data.map((d) => d.code);\n    if (codes.includes(1001)) {\n      state.reject(new InsufficientBalanceError('Insufficient balance'));\n    } else if (codes.includes(1002)) {\n      state.reject(new IllegalArgumentError('Amount cannot be negative'));\n    } else {\n      state.reject(new ChannelConnectionError(message.error.message));\n    }\n    return { handler: channelOpen };\n  }\n  return handleUnexpectedMessage(channel, message, state);\n}\n\nexport function awaitingConnection(\n  channel: Channel,\n  message: ChannelMessage,\n): ChannelFsm | undefined {\n  if (message.method === 'channels.info') {\n    const channelInfoStatus: string = message.params.data.event;\n\n    let nextStatus: ChannelStatus | null = null;\n    if (channelInfoStatus === 'channel_accept') nextStatus = 'accepted';\n    if (channelInfoStatus === 'funding_created') nextStatus = 'halfSigned';\n    if (nextStatus != null) {\n      changeStatus(channel, nextStatus);\n      return { handler: awaitingChannelCreateTx };\n    }\n\n    if (message.params.data.event === 'channel_reestablished') {\n      return { handler: awaitingOpenConfirmation };\n    }\n    if (message.params.data.event === 'fsm_up') {\n      channel._fsmId = message.params.data.fsm_id;\n      return { handler: awaitingConnection };\n    }\n    return { handler: awaitingConnection };\n  }\n  if (message.method === 'channels.error') {\n    emit(channel, 'error', new ChannelConnectionError(message?.payload?.message));\n    return { handler: channelClosed };\n  }\n}\n\nexport async function awaitingReestablish(\n  channel: Channel,\n  message: ChannelMessage,\n  state: ChannelState,\n): Promise<ChannelFsm> {\n  if (message.method === 'channels.info' && message.params.data.event === 'fsm_up') {\n    channel._fsmId = message.params.data.fsm_id;\n    return {\n      handler: function awaitingChannelReestablished(\n        _: Channel,\n        message2: ChannelMessage,\n        state2: ChannelState,\n      ): ChannelFsm | undefined {\n        if (\n          message2.method === 'channels.info' &&\n          message2.params.data.event === 'channel_reestablished'\n        )\n          return { handler: awaitingOpenConfirmation };\n        return handleUnexpectedMessage(channel, message2, state2);\n      },\n    };\n  }\n  return handleUnexpectedMessage(channel, message, state);\n}\n\nexport async function awaitingReconnection(\n  channel: Channel,\n  message: ChannelMessage,\n  state: ChannelState,\n): Promise<ChannelFsm> {\n  if (message.method === 'channels.info' && message.params.data.event === 'fsm_up') {\n    channel._fsmId = message.params.data.fsm_id;\n    const { signedTx } = await channel.state();\n    changeState(channel, signedTx == null ? '' : buildTx(signedTx));\n    return { handler: channelOpen };\n  }\n  return handleUnexpectedMessage(channel, message, state);\n}\n\nexport async function awaitingChannelCreateTx(\n  channel: Channel,\n  message: ChannelMessage,\n): Promise<ChannelFsm | undefined> {\n  const tag = channel._options.role === 'initiator' ? 'initiator_sign' : 'responder_sign';\n  if (message.method === `channels.sign.${tag}`) {\n    await signAndNotify(channel, `channels.${tag}`, message.params.data, async (tx) =>\n      channel._options.sign(tag, tx),\n    );\n    return { handler: awaitingOnChainTx };\n  }\n}\n\nexport function awaitingOnChainTx(\n  channel: Channel,\n  message: ChannelMessage,\n): ChannelFsm | undefined {\n  function awaitingBlockInclusion(_: Channel, message2: ChannelMessage): ChannelFsm | undefined {\n    if (message2.method === 'channels.info') {\n      switch (message2.params.data.event) {\n        case 'funding_created':\n        case 'own_funding_locked':\n          return { handler: awaitingBlockInclusion };\n        case 'funding_locked':\n          return { handler: awaitingOpenConfirmation };\n      }\n    }\n    if (message2.method === 'channels.on_chain_tx') {\n      emit(channel, 'onChainTx', message2.params.data.tx, {\n        info: message2.params.data.info,\n        type: message2.params.data.type,\n      });\n      return { handler: awaitingBlockInclusion };\n    }\n  }\n\n  if (message.method === 'channels.on_chain_tx') {\n    const { info } = message.params.data;\n    const { role } = channel._options;\n    if (\n      (info === 'funding_signed' && role === 'initiator') ||\n      (info === 'funding_created' && role === 'responder')\n    ) {\n      return { handler: awaitingBlockInclusion };\n    }\n  }\n  if (\n    message.method === 'channels.info' &&\n    message.params.data.event === 'funding_signed' &&\n    channel._options.role === 'initiator'\n  ) {\n    channel._channelId = message.params.channel_id;\n    changeStatus(channel, 'signed');\n    return { handler: awaitingOnChainTx };\n  }\n}\n\nfunction awaitingOpenConfirmation(\n  channel: Channel,\n  message: ChannelMessage,\n  state: ChannelState,\n): ChannelFsm | undefined {\n  if (message.method === 'channels.info' && message.params.data.event === 'open') {\n    channel._channelId = message.params.channel_id;\n    return {\n      handler: function awaitingChannelsUpdate(\n        _: Channel,\n        message2: ChannelMessage,\n        state2: ChannelState,\n      ): ChannelFsm | undefined {\n        if (message2.method === 'channels.update') {\n          changeState(channel, message2.params.data.state);\n          return { handler: channelOpen };\n        }\n        return handleUnexpectedMessage(channel, message2, state2);\n      },\n    };\n  }\n  return handleUnexpectedMessage(channel, message, state);\n}\n\nexport async function channelOpen(\n  channel: Channel,\n  message: ChannelMessage,\n  state: ChannelState,\n): Promise<ChannelFsm | undefined> {\n  switch (message.method) {\n    case 'channels.info':\n      switch (message.params.data.event) {\n        case 'update':\n        case 'withdraw_created':\n        case 'deposit_created':\n          return { handler: awaitingTxSignRequest };\n        case 'own_withdraw_locked':\n        case 'withdraw_locked':\n        case 'own_deposit_locked':\n        case 'deposit_locked':\n        case 'peer_disconnected':\n        case 'channel_reestablished':\n        case 'open':\n          // TODO: Better handling of peer_disconnected event.\n          //\n          //       We should enter intermediate state where offchain transactions\n          //       are blocked until channel is reestablished.\n          emit(channel, snakeToPascal(message.params.data.event) as keyof ChannelEvents);\n          return { handler: channelOpen };\n        case 'fsm_up':\n          channel._fsmId = message.params.data.fsm_id;\n          return { handler: channelOpen };\n        case 'timeout':\n        case 'close_mutual':\n          return { handler: channelOpen };\n        case 'closing':\n          changeStatus(channel, 'closing');\n          return { handler: channelOpen };\n        case 'closed_confirmed':\n          changeStatus(channel, 'closed');\n          return { handler: channelClosed };\n        case 'died':\n          changeStatus(channel, 'died');\n          return { handler: channelClosed };\n        case 'shutdown':\n          return { handler: channelOpen };\n      }\n      break;\n    case 'channels.on_chain_tx':\n      emit(channel, 'onChainTx', message.params.data.tx, {\n        info: message.params.data.info,\n        type: message.params.data.type,\n      });\n      return { handler: channelOpen };\n    case 'channels.leave':\n      // TODO: emit event\n      return { handler: channelOpen };\n    case 'channels.update':\n      changeState(channel, message.params.data.state);\n      return { handler: channelOpen };\n    case 'channels.sign.shutdown_sign_ack':\n      return awaitingTxSignRequest(channel, message, state);\n  }\n}\nchannelOpen.enter = (channel: Channel) => {\n  changeStatus(channel, 'open');\n};\n\nasync function awaitingTxSignRequest(\n  channel: Channel,\n  message: ChannelMessage,\n  state: ChannelState,\n): Promise<ChannelFsm> {\n  const [, tag] = message.method.match(/^channels\\.sign\\.([^.]+)$/) ?? [];\n  if (tag == null) return handleUnexpectedMessage(channel, message, state);\n  const isError = await signAndNotify(channel, `channels.${tag}`, message.params.data, async (tx) =>\n    channel._options.sign(tag, tx, { updates: message.params.data.updates }),\n  );\n\n  function awaitingUpdateConflict(_: Channel, message2: ChannelMessage): ChannelFsm {\n    if (message2.error != null) {\n      return { handler: awaitingUpdateConflict, state };\n    }\n    if (message2.method === 'channels.conflict') {\n      return { handler: channelOpen };\n    }\n    return handleUnexpectedMessage(channel, message2, state);\n  }\n  return isError ? { handler: awaitingUpdateConflict, state } : { handler: channelOpen };\n}\n\nexport async function awaitingShutdownTx(\n  channel: Channel,\n  message: ChannelMessage,\n  state: ChannelState,\n): Promise<ChannelFsm> {\n  if (message.method !== 'channels.sign.shutdown_sign') {\n    return handleUnexpectedMessage(channel, message, state);\n  }\n  await signAndNotify(channel, 'channels.shutdown_sign', message.params.data, async (tx) =>\n    state.sign(tx),\n  );\n  return {\n    handler(_: Channel, message2: ChannelMessage): ChannelFsm {\n      if (message2.method !== 'channels.on_chain_tx') {\n        return handleUnexpectedMessage(channel, message2, state);\n      }\n      // state.resolve(message.params.data.tx)\n      return { handler: channelClosed, state };\n    },\n    state,\n  };\n}\n\nexport function awaitingLeave(\n  channel: Channel,\n  message: ChannelMessage,\n  state: ChannelState,\n): ChannelFsm {\n  if (message.method === 'channels.leave') {\n    state.resolve({ channelId: message.params.channel_id, signedTx: message.params.data.state });\n    disconnect(channel);\n    return { handler: channelClosed };\n  }\n  if (message.method === 'channels.error') {\n    state.reject(new ChannelConnectionError(message.data.message));\n    return { handler: channelOpen };\n  }\n  return handleUnexpectedMessage(channel, message, state);\n}\n\nexport function channelClosed(\n  _channel: Channel,\n  message: ChannelMessage,\n  state: ChannelState,\n): ChannelFsm {\n  if (state == null) return { handler: channelClosed };\n  if (message.params.data.event === 'closing') return { handler: channelClosed, state };\n  if (message.params.data.info === 'channel_closed') {\n    state.closeTx = message.params.data.tx;\n    return { handler: channelClosed, state };\n  }\n  if (message.params.data.event === 'closed_confirmed') {\n    state.resolve(state.closeTx);\n    return { handler: channelClosed };\n  }\n  return { handler: channelClosed, state };\n}\n","import EventEmitter from 'events';\nimport { w3cwebsocket as W3CWebSocket } from 'websocket';\nimport { snakeToPascal } from '../utils/string.js';\nimport { unpackTx } from '../tx/builder/index.js';\nimport { Tag } from '../tx/builder/constants.js';\nimport * as handlers from './handlers.js';\nimport {\n  initialize,\n  enqueueAction,\n  notify,\n  call,\n  disconnect as channelDisconnect,\n  SignTx,\n  ChannelOptions,\n  ChannelState,\n  ChannelHandler,\n  ChannelAction,\n  ChannelStatus,\n  ChannelFsm,\n  ChannelMessage,\n  ChannelEvents,\n} from './internal.js';\nimport { ChannelError, IllegalArgumentError } from '../utils/errors.js';\nimport { Encoded } from '../utils/encoder.js';\nimport { TxUnpacked } from '../tx/builder/schema.generated.js';\nimport { EntryTag } from '../tx/builder/entry/constants.js';\nimport { unpackEntry } from '../tx/builder/entry/index.js';\nimport { EntUnpacked } from '../tx/builder/entry/schema.generated.js';\n\nfunction snakeToPascalObjKeys<Type>(obj: object): Type {\n  return Object.entries(obj).reduce(\n    (result, [key, val]) => ({\n      ...result,\n      [snakeToPascal(key)]: val,\n    }),\n    {},\n  ) as Type;\n}\n\nlet channelCounter = 0;\n\n/**\n * Channel\n * @example\n * ```js\n * await Channel.initialize({\n *   url: 'ws://localhost:3001',\n *   role: 'initiator'\n *   initiatorId: 'ak_Y1NRjHuoc3CGMYMvCmdHSBpJsMDR6Ra2t5zjhRcbtMeXXLpLH',\n *   responderId: 'ak_V6an1xhec1xVaAhLuak7QoEbi6t7w5hEtYWp9bMKaJ19i6A9E',\n *   initiatorAmount: 1e18,\n *   responderAmount: 1e18,\n *   pushAmount: 0,\n *   channelReserve: 0,\n *   ttl: 1000,\n *   host: 'localhost',\n *   port: 3002,\n *   lockPeriod: 10,\n *   async sign (tag, tx) => await account.signTransaction(tx)\n * })\n * ```\n */\nexport default class Channel {\n  _eventEmitter = new EventEmitter();\n\n  _pingTimeoutId!: NodeJS.Timeout;\n\n  _nextRpcMessageId = 0;\n\n  _rpcCallbacks = new Map<number, (message: object) => void>();\n\n  _fsmId?: Encoded.Bytearray;\n\n  _messageQueue: ChannelMessage[] = [];\n\n  _isMessageQueueLocked = false;\n\n  _actionQueue: ChannelAction[] = [];\n\n  _isActionQueueLocked = false;\n\n  _status: ChannelStatus = 'disconnected';\n\n  _fsm!: ChannelFsm;\n\n  _websocket!: W3CWebSocket;\n\n  _state: Encoded.Transaction | '' = '';\n\n  _options!: ChannelOptions;\n\n  readonly #debugId: number;\n\n  _channelId?: Encoded.Channel;\n\n  protected constructor() {\n    channelCounter += 1;\n    this.#debugId = channelCounter;\n  }\n\n  _debug(...args: any[]): void {\n    if (this._options.debug !== true) return;\n    console.debug(`Channel #${this.#debugId}`, ...args);\n  }\n\n  /**\n   * @param options - Channel params\n   */\n  static async initialize(options: ChannelOptions): Promise<Channel> {\n    return Channel._initialize(new Channel(), options);\n  }\n\n  static async _initialize<T extends Channel>(channel: T, options: ChannelOptions): Promise<T> {\n    const reconnect = (options.existingFsmId ?? options.existingChannelId) != null;\n    if (reconnect && (options.existingFsmId == null || options.existingChannelId == null)) {\n      throw new IllegalArgumentError(\n        '`existingChannelId`, `existingFsmId` should be both provided or missed',\n      );\n    }\n    const reconnectHandler =\n      handlers[options.reestablish === true ? 'awaitingReestablish' : 'awaitingReconnection'];\n    await initialize(\n      channel,\n      reconnect ? reconnectHandler : handlers.awaitingConnection,\n      handlers.channelOpen,\n      options,\n    );\n    return channel;\n  }\n\n  /**\n   * Register event listener function\n   *\n   * Possible events:\n   *\n   *   - \"error\"\n   *   - \"stateChanged\"\n   *   - \"statusChanged\"\n   *   - \"message\"\n   *   - \"peerDisconnected\"\n   *   - \"onChainTx\"\n   *   - \"ownWithdrawLocked\"\n   *   - \"withdrawLocked\"\n   *   - \"ownDepositLocked\"\n   *   - \"depositLocked\"\n   *   - \"channelReestablished\"\n   *   - \"newContract\"\n   *\n   *\n   * @param eventName - Event name\n   * @param callback - Callback function\n   */\n  on<E extends keyof ChannelEvents>(eventName: E, callback: ChannelEvents[E]): void {\n    this._eventEmitter.on(eventName, callback);\n  }\n\n  /**\n   * Remove event listener function\n   * @param eventName - Event name\n   * @param callback - Callback function\n   */\n  off<E extends keyof ChannelEvents>(eventName: E, callback: ChannelEvents[E]): void {\n    this._eventEmitter.removeListener(eventName, callback);\n  }\n\n  /**\n   * Close the connection\n   */\n  disconnect(): void {\n    return channelDisconnect(this);\n  }\n\n  /**\n   * Get current status\n   */\n  status(): ChannelStatus {\n    return this._status;\n  }\n\n  /**\n   * Get current state\n   */\n  async state(): Promise<{\n    calls: EntUnpacked & { tag: EntryTag.CallsMtree };\n    halfSignedTx?: TxUnpacked & { tag: Tag.SignedTx };\n    signedTx?: TxUnpacked & { tag: Tag.SignedTx };\n    trees: EntUnpacked & { tag: EntryTag.StateTrees };\n  }> {\n    const res = snakeToPascalObjKeys<{\n      calls: Encoded.CallStateTree;\n      halfSignedTx: Encoded.Transaction | '';\n      signedTx: Encoded.Transaction | '';\n      trees: Encoded.StateTrees;\n    }>(await call(this, 'channels.get.offchain_state', {}));\n    return {\n      calls: unpackEntry(res.calls),\n      ...(res.halfSignedTx !== '' && { halfSignedTx: unpackTx(res.halfSignedTx, Tag.SignedTx) }),\n      ...(res.signedTx !== '' && { signedTx: unpackTx(res.signedTx, Tag.SignedTx) }),\n      trees: unpackEntry(res.trees),\n    };\n  }\n\n  /**\n   * Get current round\n   *\n   * If round cannot be determined (for example when channel has not been opened)\n   * it will return `null`.\n   */\n  round(): number | null {\n    if (this._state === '') {\n      return null;\n    }\n    const params = unpackTx(this._state, Tag.SignedTx).encodedTx;\n    switch (params.tag) {\n      case Tag.ChannelCreateTx:\n        return 1;\n      case Tag.ChannelOffChainTx:\n      case Tag.ChannelWithdrawTx:\n      case Tag.ChannelDepositTx:\n        return params.round;\n      default:\n        return null;\n    }\n  }\n\n  /**\n   * Get channel id\n   *\n   */\n  id(): Encoded.Channel {\n    if (this._channelId == null) throw new ChannelError('Channel is not initialized');\n    return this._channelId;\n  }\n\n  /**\n   * Get channel's fsm id\n   *\n   */\n  fsmId(): Encoded.Bytearray {\n    if (this._fsmId == null) throw new ChannelError('Channel is not initialized');\n    return this._fsmId;\n  }\n\n  protected async enqueueAction(\n    action: () => { handler: ChannelHandler; state?: Partial<ChannelState> },\n  ): Promise<any> {\n    return enqueueAction(this, (channel, state) => state?.handler === handlers.channelOpen, action);\n  }\n\n  /**\n   * Leave channel\n   *\n   * It is possible to leave a channel and then later reestablish the channel\n   * off-chain state and continue operation. When a leave method is called,\n   * the channel fsm passes it on to the peer fsm, reports the current mutually\n   * signed state and then terminates.\n   *\n   * The channel can be reestablished by instantiating another Channel instance\n   * with two extra params: existingChannelId and existingFsmId.\n   *\n   * @example\n   * ```js\n   * channel.leave().then(({ channelId, signedTx }) => {\n   *   console.log(channelId)\n   *   console.log(signedTx)\n   * })\n   * ```\n   */\n  async leave(): Promise<{ channelId: Encoded.Channel; signedTx: Encoded.Transaction }> {\n    return this.enqueueAction(() => {\n      notify(this, 'channels.leave');\n      return { handler: handlers.awaitingLeave };\n    });\n  }\n\n  /**\n   * Trigger mutual close\n   *\n   * At any moment after the channel is opened, a closing procedure can be triggered.\n   * This can be done by either of the parties. The process is similar to the off-chain updates.\n   *\n   * @param sign - Function which verifies and signs mutual close transaction\n   * @example\n   * ```js\n   * channel.shutdown(\n   *   async (tx) => await account.signTransaction(tx)\n   * ).then(tx => console.log('on_chain_tx', tx))\n   * ```\n   */\n  async shutdown(sign: SignTx): Promise<Encoded.Transaction> {\n    return this.enqueueAction(() => {\n      notify(this, 'channels.shutdown');\n      return {\n        handler: handlers.awaitingShutdownTx,\n        state: { sign },\n      };\n    });\n  }\n}\n","import BigNumber from 'bignumber.js';\nimport {\n  notify,\n  call,\n  SignTx,\n  ChannelState,\n  ChannelMessage,\n  ChannelFsm,\n  changeState,\n} from './internal.js';\nimport { Encoded } from '../utils/encoder.js';\nimport { pause } from '../utils/other.js';\nimport Channel from './Base.js';\nimport { ChannelConnectionError } from '../utils/errors.js';\nimport {\n  awaitingCompletion,\n  channelOpen,\n  handleUnexpectedMessage,\n  signAndNotify,\n} from './handlers.js';\nimport { EntryTag } from '../tx/builder/entry/constants.js';\nimport { EntUnpacked } from '../tx/builder/entry/schema.generated.js';\nimport { unpackEntry } from '../tx/builder/entry/index.js';\n\nexport default class ChannelSpend extends Channel {\n  /**\n   * Trigger a transfer update\n   *\n   * The transfer update is moving coins from one channel account to another.\n   * The update is a change to be applied on top of the latest state.\n   *\n   * Sender and receiver are the channel parties. Both the initiator and responder\n   * can take those roles. Any public key outside the channel is considered invalid.\n   *\n   * @param from - Sender's public address\n   * @param to - Receiver's public address\n   * @param amount - Transaction amount\n   * @param sign - Function which verifies and signs offchain transaction\n   * @param metadata - Metadata\n\n   * @example\n   * ```js\n   * channel.update(\n   *   'ak_Y1NRjHuoc3CGMYMvCmdHSBpJsMDR6Ra2t5zjhRcbtMeXXLpLH',\n   *   'ak_V6an1xhec1xVaAhLuak7QoEbi6t7w5hEtYWp9bMKaJ19i6A9E',\n   *   10,\n   *   async (tx) => await account.signTransaction(tx)\n   * ).then(({ accepted, signedTx }) =>\n   *   if (accepted) {\n   *     console.log('Update has been accepted')\n   *   }\n   * )\n   * ```\n   */\n  async update(\n    from: Encoded.AccountAddress,\n    to: Encoded.AccountAddress,\n    amount: number | BigNumber,\n    sign: SignTx,\n    metadata: string[] = [],\n  ): Promise<{\n    accepted: boolean;\n    signedTx?: Encoded.Transaction;\n    errorCode?: number;\n    errorMessage?: string;\n  }> {\n    return this.enqueueAction(() => {\n      notify(this, 'channels.update.new', {\n        from,\n        to,\n        amount,\n        meta: metadata,\n      });\n\n      const awaitingOffChainTx = async (\n        _: Channel,\n        message: ChannelMessage,\n        state: ChannelState,\n      ): Promise<ChannelFsm> => {\n        if (message.method === 'channels.sign.update') {\n          const isError = await signAndNotify(\n            this,\n            'channels.update',\n            message.params.data,\n            async (tx) => sign(tx, { updates: message.params.data.updates }),\n          );\n          if (isError) return { handler: awaitingOffChainTx, state };\n          return {\n            handler: (_2: Channel, message2: ChannelMessage): ChannelFsm =>\n              awaitingCompletion(this, message2, state, () => {\n                changeState(this, message2.params.data.state);\n                state.resolve({ accepted: true, signedTx: message2.params.data.state });\n                return { handler: channelOpen };\n              }),\n            state,\n          };\n        }\n        if (message.method === 'channels.error') {\n          state.reject(new ChannelConnectionError(message.data.message));\n          return { handler: channelOpen };\n        }\n        return awaitingCompletion(this, message, state);\n      };\n\n      return { handler: awaitingOffChainTx };\n    });\n  }\n\n  /**\n   * Get proof of inclusion\n   *\n   * If a certain address of an account or a contract is not found\n   * in the state tree - the response is an error.\n   *\n   * @param addresses - Addresses\n   * @param addresses.accounts - List of account addresses to include in poi\n   * @param addresses.contracts - List of contract addresses to include in poi\n   * @example\n   * ```js\n   * channel.poi({\n   *   accounts: [\n   *     'ak_Y1NRjHuoc3CGMYMvCmdHSBpJsMDR6Ra2t5zjhRcbtMeXXLpLH',\n   *     'ak_V6an1xhec1xVaAhLuak7QoEbi6t7w5hEtYWp9bMKaJ19i6A9E'\n   *   ],\n   *   contracts: ['ct_2dCUAWYZdrWfACz3a2faJeKVTVrfDYxCQHCqAt5zM15f3u2UfA']\n   * }).then(poi => console.log(poi))\n   * ```\n   */\n  async poi({\n    accounts,\n    contracts,\n  }: {\n    accounts: Encoded.AccountAddress[];\n    contracts?: Encoded.ContractAddress[];\n  }): Promise<EntUnpacked & { tag: EntryTag.TreesPoi }> {\n    const { poi }: { poi: Encoded.Poi } = await call(this, 'channels.get.poi', {\n      accounts,\n      contracts,\n    });\n    return unpackEntry(poi);\n  }\n\n  /**\n   * Get balances\n   *\n   * The accounts param contains a list of addresses to fetch balances of.\n   * Those can be either account balances or a contract ones, encoded as an account addresses.\n   *\n   * If a certain account address had not being found in the state tree - it is simply\n   * skipped in the response.\n   *\n   * @param accounts - List of addresses to fetch balances from\n   * @example\n   * ```js\n   * channel.balances([\n   *   'ak_Y1NRjHuoc3CGMYMvCmdHSBpJsMDR6Ra2t5zjhRcbtMeXXLpLH',\n   *   'ak_V6an1xhec1xVaAhLuak7QoEbi6t7w5hEtYWp9bMKaJ19i6A9E'\n   *   'ct_2dCUAWYZdrWfACz3a2faJeKVTVrfDYxCQHCqAt5zM15f3u2UfA'\n   * ]).then(balances =>\n   *   console.log(balances['ak_Y1NRjHuoc3CGMYMvCmdHSBpJsMDR6Ra2t5zjhRcbtMeXXLpLH'])\n   * )\n   * ```\n   */\n  async balances(\n    accounts: Encoded.AccountAddress[],\n  ): Promise<{ [key: Encoded.AccountAddress]: string }> {\n    return Object.fromEntries(\n      (await call(this, 'channels.get.balances', { accounts })).map(\n        (item: { account: Encoded.AccountAddress; balance: string }) => [\n          item.account,\n          item.balance,\n        ],\n      ),\n    );\n  }\n\n  private async awaitingActionTx(\n    action: 'deposit' | 'withdraw',\n    message: ChannelMessage,\n    state: ChannelState,\n  ): Promise<ChannelFsm> {\n    if (message.method !== `channels.sign.${action}_tx`) {\n      return handleUnexpectedMessage(this, message, state);\n    }\n\n    const awaitingActionCompletion = (_: Channel, message2: ChannelMessage): ChannelFsm => {\n      if (message2.method === 'channels.on_chain_tx') {\n        state.onOnChainTx?.(message2.params.data.tx);\n        return { handler: awaitingActionCompletion, state };\n      }\n      if (\n        message2.method === 'channels.info' &&\n        [`own_${action}_locked`, `${action}_locked`].includes(message2.params.data.event)\n      ) {\n        const Action = action === 'deposit' ? 'Deposit' : 'Withdraw';\n        const isOwn: boolean = message2.params.data.event.startsWith('own_');\n        state[`on${isOwn ? 'Own' : ''}${Action}Locked`]?.();\n        return { handler: awaitingActionCompletion, state };\n      }\n      return awaitingCompletion(this, message2, state, () => {\n        changeState(this, message2.params.data.state);\n        state.resolve({ accepted: true, signedTx: message2.params.data.state });\n        return { handler: channelOpen };\n      });\n    };\n\n    const { sign } = state;\n    await signAndNotify(this, `channels.${action}_tx`, message.params.data, async (tx) =>\n      sign(tx, { updates: message.params.data.updates }),\n    );\n    return { handler: awaitingActionCompletion, state };\n  }\n\n  /**\n   * Withdraw coins from the channel\n   *\n   * After the channel had been opened any of the participants can initiate a withdrawal.\n   * The process closely resembles the update. The most notable difference is that the\n   * transaction has been co-signed: it is channel_withdraw_tx and after the procedure\n   * is finished - it is being posted on-chain.\n   *\n   * Any of the participants can initiate a withdrawal. The only requirements are:\n   *\n   *   - Channel is already opened\n   *   - No off-chain update/deposit/withdrawal is currently being performed\n   *   - Channel is not being closed or in a solo closing state\n   *   - The withdrawal amount must be equal to or greater than zero, and cannot exceed\n   *     the available balance on the channel (minus the channel_reserve)\n   *\n   * After the other party had signed the withdraw transaction, the transaction is posted\n   * on-chain and onOnChainTx callback is called with on-chain transaction as first argument.\n   * After computing transaction hash it can be tracked on the chain: entering the mempool,\n   * block inclusion and a number of confirmations.\n   *\n   * After the minimum_depth block confirmations onOwnWithdrawLocked callback is called\n   * (without any arguments).\n   *\n   * When the other party had confirmed that the block height needed is reached\n   * onWithdrawLocked callback is called (without any arguments).\n   *\n   * @param amount - Amount of coins to withdraw\n   * @param sign - Function which verifies and signs withdraw transaction\n   * @param callbacks - Callbacks\n   * @example\n   * ```js\n   * channel.withdraw(\n   *   100,\n   *   async (tx) => await account.signTransaction(tx),\n   *   { onOnChainTx: (tx) => console.log('on_chain_tx', tx) }\n   * ).then(({ accepted, signedTx }) => {\n   *   if (accepted) {\n   *     console.log('Withdrawal has been accepted')\n   *   } else {\n   *     console.log('Withdrawal has been rejected')\n   *   }\n   * })\n   * ```\n   */\n  async withdraw(\n    amount: number | BigNumber,\n    sign: SignTx,\n    {\n      onOnChainTx,\n      onOwnWithdrawLocked,\n      onWithdrawLocked,\n    }: Pick<ChannelState, 'onOnChainTx' | 'onOwnWithdrawLocked' | 'onWithdrawLocked'> = {},\n  ): Promise<{ accepted: boolean; signedTx: Encoded.Transaction }> {\n    return this.enqueueAction(() => {\n      notify(this, 'channels.withdraw', { amount });\n      return {\n        handler: async (\n          _: Channel,\n          message: ChannelMessage,\n          state: ChannelState,\n        ): Promise<ChannelFsm> => this.awaitingActionTx('withdraw', message, state),\n        state: {\n          sign,\n          onOnChainTx,\n          onOwnWithdrawLocked,\n          onWithdrawLocked,\n        },\n      };\n    });\n  }\n\n  /**\n   * Deposit coins into the channel\n   *\n   * After the channel had been opened any of the participants can initiate a deposit.\n   * The process closely resembles the update. The most notable difference is that the\n   * transaction has been co-signed: it is channel_deposit_tx and after the procedure\n   * is finished - it is being posted on-chain.\n   *\n   * Any of the participants can initiate a deposit. The only requirements are:\n   *\n   *   - Channel is already opened\n   *   - No off-chain update/deposit/withdrawal is currently being performed\n   *   - Channel is not being closed or in a solo closing state\n   *   - The deposit amount must be equal to or greater than zero, and cannot exceed\n   *     the available balance on the channel (minus the channel_reserve)\n   *\n   * After the other party had signed the deposit transaction, the transaction is posted\n   * on-chain and onOnChainTx callback is called with on-chain transaction as first argument.\n   * After computing transaction hash it can be tracked on the chain: entering the mempool,\n   * block inclusion and a number of confirmations.\n   *\n   * After the minimum_depth block confirmations onOwnDepositLocked callback is called\n   * (without any arguments).\n   *\n   * When the other party had confirmed that the block height needed is reached\n   * onDepositLocked callback is called (without any arguments).\n   *\n   * @param amount - Amount of coins to deposit\n   * @param sign - Function which verifies and signs deposit transaction\n   * @param callbacks - Callbacks\n   * @example\n   * ```js\n   * channel.deposit(\n   *   100,\n   *   async (tx) => await account.signTransaction(tx),\n   *   { onOnChainTx: (tx) => console.log('on_chain_tx', tx) }\n   * ).then(({ accepted, state }) => {\n   *   if (accepted) {\n   *     console.log('Deposit has been accepted')\n   *     console.log('The new state is:', state)\n   *   } else {\n   *     console.log('Deposit has been rejected')\n   *   }\n   * })\n   * ```\n   */\n  async deposit(\n    amount: number | BigNumber,\n    sign: SignTx,\n    {\n      onOnChainTx,\n      onOwnDepositLocked,\n      onDepositLocked,\n    }: Pick<ChannelState, 'onOnChainTx' | 'onOwnDepositLocked' | 'onDepositLocked'> = {},\n  ): Promise<{ accepted: boolean; state: ChannelState }> {\n    return this.enqueueAction(() => {\n      notify(this, 'channels.deposit', { amount });\n      return {\n        handler: async (\n          _: Channel,\n          message: ChannelMessage,\n          state: ChannelState,\n        ): Promise<ChannelFsm> => this.awaitingActionTx('deposit', message, state),\n        state: {\n          sign,\n          onOnChainTx,\n          onOwnDepositLocked,\n          onDepositLocked,\n        },\n      };\n    });\n  }\n\n  /**\n   * Send generic message\n   *\n   * If message is an object it will be serialized into JSON string\n   * before sending.\n   *\n   * If there is ongoing update that has not yet been finished the message\n   * will be sent after that update is finalized.\n   *\n   * @param message - Message\n   * @param recipient - Address of the recipient\n   * @example\n   * ```js\n   * channel.sendMessage(\n   *   'hello world',\n   *   'ak_Y1NRjHuoc3CGMYMvCmdHSBpJsMDR6Ra2t5zjhRcbtMeXXLpLH'\n   * )\n   * ```\n   */\n  async sendMessage(message: string | object, recipient: Encoded.AccountAddress): Promise<void> {\n    const info = typeof message === 'object' ? JSON.stringify(message) : message;\n    if (this.status() === 'connecting') {\n      await new Promise<void>((resolve) => {\n        const onStatusChanged = (status: string): void => {\n          if (status === 'connecting') return;\n          resolve();\n          this.off('statusChanged', onStatusChanged);\n        };\n        this.on('statusChanged', onStatusChanged);\n      });\n      // For some reason we can't immediately send a message when connection is\n      // established. Thus we wait 500ms which seems to work.\n      await pause(500);\n    }\n    notify(this, 'channels.message', { info, to: recipient });\n  }\n}\n","import BigNumber from 'bignumber.js';\nimport { snakeToPascal } from '../utils/string.js';\nimport { MIN_GAS_PRICE, Tag, AbiVersion, VmVersion } from '../tx/builder/constants.js';\nimport {\n  signAndNotify,\n  awaitingCompletion,\n  channelClosed,\n  channelOpen,\n  handleUnexpectedMessage,\n} from './handlers.js';\nimport {\n  notify,\n  call,\n  SignTx,\n  ChannelState,\n  ChannelOptions,\n  ChannelMessage,\n  ChannelFsm,\n  changeState,\n  emit,\n} from './internal.js';\nimport { Encoded } from '../utils/encoder.js';\nimport { ContractCallObjectReturnType } from '../apis/node/index.js';\nimport { ContractCallObject } from '../contract/Contract.js';\nimport Channel from './Base.js';\nimport ChannelSpend from './Spend.js';\nimport { ChannelError, UnexpectedChannelMessageError } from '../utils/errors.js';\nimport { unpackTx } from '../tx/builder/index.js';\nimport { buildContractId } from '../tx/builder/helpers.js';\n\nfunction snakeToPascalObjKeys<Type>(obj: object): Type {\n  return Object.entries(obj).reduce(\n    (result, [key, val]) => ({\n      ...result,\n      [snakeToPascal(key)]: val,\n    }),\n    {},\n  ) as Type;\n}\n\ninterface CallContractOptions {\n  /**\n   * Amount the caller of the contract commits to it\n   */\n  amount?: number | BigNumber;\n  /**\n   * ABI encoded compiled AEVM call data for the code\n   */\n  callData?: Encoded.ContractBytearray;\n  /**\n   * Version of the ABI\n   */\n  abiVersion?: AbiVersion;\n  /**\n   * Address of the contract to call\n   */\n  contract?: Encoded.ContractAddress;\n}\n\ninterface CallContractResult extends CallContractOptions {\n  returnValue?: any;\n  gasUsed?: number | BigNumber;\n  gasPrice?: number | BigNumber;\n  height?: number;\n  callerNonce?: number;\n  log?: any;\n  returnType?: ContractCallObjectReturnType;\n}\n\ninterface Contract {\n  abiVersion: AbiVersion;\n  active: boolean;\n  deposit: number | BigNumber;\n  id: string;\n  ownerId: string;\n  referrerIds: string[];\n  vmVersion: VmVersion;\n}\n\n/**\n * @category state channel\n */\nexport default class ChannelContract extends ChannelSpend {\n  static override async initialize(options: ChannelOptions): Promise<ChannelContract> {\n    return Channel._initialize(new ChannelContract(), options);\n  }\n\n  /**\n   * Trigger create contract update\n   *\n   * The create contract update is creating a contract inside the channel's internal state tree.\n   * The update is a change to be applied on top of the latest state.\n   *\n   * That would create a contract with the poster being the owner of it. Poster commits initially\n   * a deposit amount of coins to the new contract.\n   *\n   * @param options - Options\n   * @param options.code - Api encoded compiled AEVM byte code\n   * @param options.callData - Api encoded compiled AEVM call data for the code\n   * @param options.deposit - Initial amount the owner of the contract commits to it\n   * @param options.vmVersion - Version of the Virtual Machine\n   * @param options.abiVersion - Version of the Application Binary Interface\n   * @param sign - Function which verifies and signs create contract transaction\n   * @example\n   * ```js\n   * channel.createContract({\n   *   code: 'cb_HKtpipK4aCgYb17wZ...',\n   *   callData: 'cb_1111111111111111...',\n   *   deposit: 10,\n   *   vmVersion: 3,\n   *   abiVersion: 1\n   * }).then(({ accepted, signedTx, address }) => {\n   *   if (accepted) {\n   *     console.log('New contract has been created')\n   *     console.log('Contract address:', address)\n   *   } else {\n   *     console.log('New contract has been rejected')\n   *   }\n   * })\n   * ```\n   */\n  async createContract(\n    {\n      code,\n      callData,\n      deposit,\n      vmVersion,\n      abiVersion,\n    }: {\n      code: Encoded.ContractBytearray;\n      callData: Encoded.ContractBytearray;\n      deposit: number | BigNumber;\n      vmVersion: VmVersion;\n      abiVersion: AbiVersion;\n    },\n    sign: SignTx,\n  ): Promise<{\n    accepted: boolean;\n    signedTx: Encoded.Transaction;\n    address: Encoded.ContractAddress;\n  }> {\n    return this.enqueueAction(() => {\n      notify(this, 'channels.update.new_contract', {\n        code,\n        call_data: callData,\n        deposit,\n        vm_version: vmVersion,\n        abi_version: abiVersion,\n      });\n      return {\n        handler: async (\n          _: Channel,\n          message: ChannelMessage,\n          state: ChannelState,\n        ): Promise<ChannelFsm> => {\n          if (message.method !== 'channels.sign.update') {\n            return handleUnexpectedMessage(this, message, state);\n          }\n          await signAndNotify(this, 'channels.update', message.params.data, async (tx) =>\n            state.sign(tx),\n          );\n          return {\n            handler: (_2: Channel, message2: ChannelMessage, state2: ChannelState): ChannelFsm =>\n              awaitingCompletion(this, message2, state2, () => {\n                const params = unpackTx(message2.params.data.state, Tag.SignedTx).encodedTx;\n                if (params.tag !== Tag.ChannelOffChainTx) {\n                  throw new ChannelError(\n                    `Tag should be ${Tag[Tag.ChannelOffChainTx]}, got ${Tag[params.tag]} instead`,\n                  );\n                }\n                const addressKey =\n                  this._options.role === 'initiator' ? 'initiatorId' : 'responderId';\n                const owner = this._options[addressKey];\n                changeState(this, message2.params.data.state);\n                const address = buildContractId(owner, params.round);\n                emit(this, 'newContract', address);\n                state2.resolve({ accepted: true, address, signedTx: message2.params.data.state });\n                return { handler: channelOpen };\n              }),\n            state,\n          };\n        },\n        state: { sign },\n      };\n    });\n  }\n\n  /**\n   * Trigger call a contract update\n   *\n   * The call contract update is calling a preexisting contract inside the channel's\n   * internal state tree. The update is a change to be applied on top of the latest state.\n   *\n   * That would call a contract with the poster being the caller of it. Poster commits\n   * an amount of coins to the contract.\n   *\n   * The call would also create a call object inside the channel state tree. It contains\n   * the result of the contract call.\n   *\n   * It is worth mentioning that the gas is not consumed, because this is an off-chain\n   * contract call. It would be consumed if it were an on-chain one. This could happen\n   * if a call with a similar computation amount is to be forced on-chain.\n   *\n   * @param options - Options\n   * @param sign - Function which verifies and signs contract call transaction\n   * @example\n   * ```js\n   * channel.callContract({\n   *   contract: 'ct_9sRA9AVE4BYTAkh5RNfJYmwQe1NZ4MErasQLXZkFWG43TPBqa',\n   *   callData: 'cb_1111111111111111...',\n   *   amount: 0,\n   *   abiVersion: 1\n   * }).then(({ accepted, signedTx }) => {\n   *   if (accepted) {\n   *     console.log('Contract called succesfully')\n   *   } else {\n   *     console.log('Contract call has been rejected')\n   *   }\n   * })\n   * ```\n   */\n  async callContract(\n    { amount, callData, contract, abiVersion }: CallContractOptions,\n    sign: SignTx,\n  ): Promise<{ accepted: boolean; signedTx: Encoded.Transaction }> {\n    return this.enqueueAction(() => {\n      notify(this, 'channels.update.call_contract', {\n        amount,\n        call_data: callData,\n        contract_id: contract,\n        abi_version: abiVersion,\n      });\n      return {\n        handler: async (\n          _: Channel,\n          message: ChannelMessage,\n          state: ChannelState,\n        ): Promise<ChannelFsm> => {\n          if (message.method !== 'channels.sign.update') {\n            return handleUnexpectedMessage(this, message, state);\n          }\n          await signAndNotify(this, 'channels.update', message.params.data, async (tx) =>\n            state.sign(tx, { updates: message.params.data.updates }),\n          );\n          return {\n            handler: (_2: Channel, message2: ChannelMessage, state2: ChannelState): ChannelFsm =>\n              awaitingCompletion(this, message2, state2, () => {\n                changeState(this, message2.params.data.state);\n                state2.resolve({ accepted: true, signedTx: message2.params.data.state });\n                return { handler: channelOpen };\n              }),\n            state,\n          };\n        },\n        state: { sign },\n      };\n    });\n  }\n\n  /**\n   * Trigger a force progress contract call\n   * This call is going on-chain\n   * @param options - Options\n   * @param sign - Function which verifies and signs contract force progress transaction\n   * @param callbacks - Callbacks\n   * @example\n   * ```js\n   * channel.forceProgress({\n   *   contract: 'ct_9sRA9AVE4BYTAkh5RNfJYmwQe1NZ4MErasQLXZkFWG43TPBqa',\n   *   callData: 'cb_1111111111111111...',\n   *   amount: 0,\n   *   abiVersion: 1,\n   *   gasPrice: 1000005554\n   * }).then(({ accepted, signedTx }) => {\n   *   if (accepted) {\n   *     console.log('Contract force progress call successful')\n   *   } else {\n   *     console.log('Contract force progress call has been rejected')\n   *   }\n   * })\n   * ```\n   */\n  async forceProgress(\n    {\n      amount,\n      callData,\n      contract,\n      abiVersion,\n      gasLimit = 1000000,\n      gasPrice = MIN_GAS_PRICE,\n    }: CallContractOptions & {\n      gasLimit?: number;\n      gasPrice?: number;\n    },\n    sign: SignTx,\n    { onOnChainTx }: Pick<ChannelState, 'onOnChainTx'> = {},\n  ): Promise<{\n    accepted: boolean;\n    signedTx: Encoded.Transaction;\n    tx: Encoded.Transaction | Uint8Array;\n  }> {\n    return this.enqueueAction(() => {\n      notify(this, 'channels.force_progress', {\n        amount,\n        call_data: callData,\n        contract_id: contract,\n        abi_version: abiVersion,\n        gas_price: gasPrice,\n        gas: gasLimit,\n      });\n      return {\n        handler: async (\n          _: Channel,\n          message: ChannelMessage,\n          state: ChannelState,\n        ): Promise<ChannelFsm> => {\n          if (message.method !== 'channels.sign.force_progress_tx') {\n            return handleUnexpectedMessage(this, message, state);\n          }\n          await signAndNotify(\n            this,\n            'channels.force_progress_sign',\n            message.params.data,\n            async (tx) => state.sign(tx, { updates: message.params.data.updates }),\n          );\n          return {\n            handler: (_2: Channel, message2: ChannelMessage, state2: ChannelState): ChannelFsm => {\n              if (message2.method === 'channels.on_chain_tx') {\n                state2.onOnChainTx?.(message2.params.data.tx);\n                emit(this, 'onChainTx', message2.params.data.tx, {\n                  info: message2.params.data.info,\n                  type: message2.params.data.type,\n                });\n                state2.resolve({ accepted: true, tx: message2.params.data.tx });\n                // TODO: shouldn't be unexpected message in this case\n              }\n              return handleUnexpectedMessage(this, message2, state2);\n            },\n            state,\n          };\n        },\n        state: { sign, onOnChainTx },\n      };\n    });\n  }\n\n  /**\n   * Call contract using dry-run\n   *\n   * In order to get the result of a potential contract call, one might need to\n   * dry-run a contract call. It takes the exact same arguments as a call would\n   * and returns the call object.\n   *\n   * The call is executed in the channel's state, but it does not impact the state\n   * whatsoever. It uses as an environment the latest channel's state and the current\n   * top of the blockchain as seen by the node.\n   *\n   * @param options - Options\n   * @example\n   * ```js\n   * channel.callContractStatic({\n   *   contract: 'ct_9sRA9AVE4BYTAkh5RNfJYmwQe1NZ4MErasQLXZkFWG43TPBqa',\n   *   callData: 'cb_1111111111111111...',\n   *   amount: 0,\n   *   abiVersion: 1\n   * }).then(({ returnValue, gasUsed }) => {\n   *   console.log('Returned value:', returnValue)\n   *   console.log('Gas used:', gasUsed)\n   * })\n   * ```\n   */\n  async callContractStatic({\n    amount,\n    callData,\n    contract,\n    abiVersion,\n  }: CallContractOptions): Promise<CallContractResult> {\n    return snakeToPascalObjKeys(\n      await call(this, 'channels.dry_run.call_contract', {\n        amount,\n        call_data: callData,\n        contract_id: contract,\n        abi_version: abiVersion,\n      }),\n    );\n  }\n\n  /**\n   * Get contract call result\n   *\n   * The combination of a caller, contract and a round of execution determines the\n   * contract call. Providing an incorrect set of those results in an error response.\n   *\n   * @param options - Options\n   * @param options.caller - Address of contract caller\n   * @param options.contract - Address of the contract\n   * @param options.round - Round when contract was called\n   * @example\n   * ```js\n   * channel.getContractCall({\n   *   caller: 'ak_Y1NRjHuoc3CGMYMvCmdHSBpJsMDR6Ra2t5zjhRcbtMeXXLpLH',\n   *   contract: 'ct_9sRA9AVE4BYTAkh5RNfJYmwQe1NZ4MErasQLXZkFWG43TPBqa',\n   *   round: 3\n   * }).then(({ returnType, returnValue }) => {\n   *   if (returnType === 'ok') console.log(returnValue)\n   * })\n   * ```\n   */\n  async getContractCall({\n    caller,\n    contract,\n    round,\n  }: {\n    caller: Encoded.AccountAddress;\n    contract: Encoded.ContractAddress;\n    round: number;\n  }): Promise<ContractCallObject> {\n    return snakeToPascalObjKeys(\n      await call(this, 'channels.get.contract_call', {\n        caller_id: caller,\n        contract_id: contract,\n        round,\n      }),\n    );\n  }\n\n  /**\n   * Get the latest contract state\n   *\n   * @param contract - Address of the contract\n   * @example\n   * ```js\n   * channel.getContractState(\n   *   'ct_9sRA9AVE4BYTAkh5RNfJYmwQe1NZ4MErasQLXZkFWG43TPBqa'\n   * ).then(({ contract }) => {\n   *   console.log('deposit:', contract.deposit)\n   * })\n   * ```\n   */\n  async getContractState(\n    contract: Encoded.ContractAddress,\n  ): Promise<{ contract: Contract; contractState: object }> {\n    const result = await call(this, 'channels.get.contract', { pubkey: contract });\n    return snakeToPascalObjKeys({\n      ...result,\n      contract: snakeToPascalObjKeys(result.contract),\n    });\n  }\n\n  /**\n   * Clean up all locally stored contract calls\n   *\n   * Contract calls are kept locally in order for the participant to be able to look them up.\n   * They consume memory and in order for the participant to free it - one can prune all messages.\n   * This cleans up all locally stored contract calls and those will no longer be available for\n   * fetching and inspection.\n   */\n  async cleanContractCalls(): Promise<void> {\n    return this.enqueueAction(() => {\n      notify(this, 'channels.clean_contract_calls');\n      return {\n        handler(_: Channel, message: ChannelMessage, state: ChannelState): ChannelFsm {\n          if (message.method === 'channels.calls_pruned.reply') {\n            state.resolve();\n            return { handler: channelOpen };\n          }\n          state.reject(new UnexpectedChannelMessageError('Unexpected message received'));\n          return { handler: channelClosed };\n        },\n      };\n    });\n  }\n}\n","// https://github.com/maxogden/websocket-stream/blob/48dc3ddf943e5ada668c31ccd94e9186f02fafbd/ws-fallback.js\n\nvar ws = null\n\nif (typeof WebSocket !== 'undefined') {\n  ws = WebSocket\n} else if (typeof MozWebSocket !== 'undefined') {\n  ws = MozWebSocket\n} else if (typeof global !== 'undefined') {\n  ws = global.WebSocket || global.MozWebSocket\n} else if (typeof window !== 'undefined') {\n  ws = window.WebSocket || window.MozWebSocket\n} else if (typeof self !== 'undefined') {\n  ws = self.WebSocket || self.MozWebSocket\n}\n\nexport default ws\n","/* eslint-disable max-classes-per-file */\nimport WebSocket from 'isomorphic-ws';\nimport { BaseError, UnexpectedTsError, InternalError } from './utils/errors.js';\nimport { Encoded } from './utils/encoder.js';\n\ninterface Message {\n  payload: Object;\n  source: Source.Middleware | Source.Node;\n  subscription: 'KeyBlocks' | 'MicroBlocks' | 'Transactions' | 'Object';\n  target?: string;\n}\n\nenum Source {\n  Middleware = 'mdw',\n  Node = 'node',\n  All = 'all',\n}\n\nexport class MiddlewareSubscriberError extends BaseError {\n  constructor(message: string) {\n    super(message);\n    this.name = 'MiddlewareSubscriberError';\n  }\n}\n\nexport class MiddlewareSubscriberDisconnected extends MiddlewareSubscriberError {\n  constructor(readonly closeEvent: WebSocket.CloseEvent) {\n    super('Connection closed');\n    this.name = 'MiddlewareSubscriberDisconnected';\n  }\n}\n\n/**\n * @category middleware\n */\nexport default class MiddlewareSubscriber {\n  #subscriptions: Array<readonly [target: string, s: Source, cb: (p?: Object, e?: Error) => void]> =\n    [];\n\n  readonly #requestQueue: Array<[isSubscribe: boolean, target: string]> = [];\n\n  #webSocket?: WebSocket;\n\n  get webSocket(): WebSocket | undefined {\n    return this.#webSocket;\n  }\n\n  get #targets(): Set<string> {\n    return new Set(this.#subscriptions.map(([target]) => target));\n  }\n\n  #sendMessage(message: any): void {\n    if (this.#webSocket == null) throw new UnexpectedTsError();\n    this.#webSocket.send(JSON.stringify(message));\n  }\n\n  #sendSubscribe(isSubscribe: boolean, target: string): void {\n    if (this.#webSocket == null) return;\n    const payload = ['KeyBlocks', 'MicroBlocks', 'Transactions'].includes(target)\n      ? target\n      : 'Object';\n    this.#sendMessage({\n      op: isSubscribe ? 'Subscribe' : 'Unsubscribe',\n      payload,\n      ...(payload === 'Object' && { target }),\n    });\n    this.#requestQueue.push([isSubscribe, target]);\n  }\n\n  #emit(condition: (target: string, source: Source) => boolean, p?: Object, e?: Error): void {\n    this.#subscriptions\n      .filter(([target, source]) => condition(target, source))\n      .forEach(([, , cb]) => cb(p, e));\n  }\n\n  constructor(readonly url: string) {}\n\n  #disconnect(onlyReset = false): void {\n    if (this.#webSocket == null) return;\n    if (!onlyReset) this.#webSocket.close();\n    Object.assign(this.#webSocket, {\n      onopen: undefined,\n      onerror: undefined,\n      onmessage: undefined,\n    });\n    this.#webSocket = undefined;\n  }\n\n  async reconnect(): Promise<void> {\n    this.#disconnect();\n    this.#webSocket = await new Promise((resolve) => {\n      const webSocket = new WebSocket(this.url);\n      Object.assign(webSocket, {\n        onopen: () => resolve(webSocket),\n        onerror: (errorEvent: WebSocket.ErrorEvent) => {\n          this.#emit(() => true, undefined, errorEvent.error);\n        },\n        onmessage: (event: WebSocket.MessageEvent) => {\n          if (typeof event.data !== 'string') {\n            throw new InternalError(`Unknown incoming message type: ${typeof event.data}`);\n          }\n          this.#messageHandler(JSON.parse(event.data));\n        },\n        onclose: (event: WebSocket.CloseEvent) => {\n          this.#emit(() => true, undefined, new MiddlewareSubscriberDisconnected(event));\n          this.#disconnect(true);\n        },\n      });\n    });\n    await Promise.all([...this.#targets].map((target) => this.#sendSubscribe(true, target)));\n  }\n\n  #messageHandler(message: string | string[] | Message): void {\n    if (typeof message === 'string' || Array.isArray(message)) {\n      const request = this.#requestQueue.shift();\n      if (request == null) throw new InternalError('Request queue is empty');\n      const [isSubscribe, target] = request;\n      let error;\n      if (typeof message === 'string') error = new MiddlewareSubscriberError(message);\n      if (message.includes(target) !== isSubscribe) {\n        error = new InternalError(\n          `Expected ${target} to be${isSubscribe ? '' : ' not'} included into ${message}`,\n        );\n      }\n      if (error != null) this.#emit((t) => target === t, undefined, error);\n      return;\n    }\n    this.#emit(\n      (target, source) =>\n        (target === message.subscription || target === message.target) &&\n        (source === message.source || source === Source.All),\n      message.payload,\n    );\n  }\n\n  #subscribe(target: string, source: Source, cb: (p?: Object, e?: Error) => void): () => void {\n    const subscription = [target, source, cb] as const;\n    if (this.#targets.size === 0) this.reconnect();\n    if (!this.#targets.has(target)) this.#sendSubscribe(true, target);\n    this.#subscriptions.push(subscription);\n    return () => {\n      this.#subscriptions = this.#subscriptions.filter((item) => item !== subscription);\n      if (!this.#targets.has(target)) this.#sendSubscribe(false, target);\n      if (this.#targets.size === 0) this.#disconnect();\n    };\n  }\n\n  // TODO: replace p?: any with a proper type definition\n\n  subscribeKeyBlocks(cb: (p?: any, e?: Error) => void): () => void {\n    return this.#subscribe('KeyBlocks', Source.Middleware, cb);\n  }\n\n  subscribeKeyBlocksNode(cb: (p?: any, e?: Error) => void): () => void {\n    return this.#subscribe('KeyBlocks', Source.Node, cb);\n  }\n\n  subscribeKeyBlocksAll(cb: (p?: any, e?: Error) => void): () => void {\n    return this.#subscribe('KeyBlocks', Source.All, cb);\n  }\n\n  subscribeMicroBlocks(cb: (p?: any, e?: Error) => void): () => void {\n    return this.#subscribe('MicroBlocks', Source.Middleware, cb);\n  }\n\n  subscribeMicroBlocksNode(cb: (p?: any, e?: Error) => void): () => void {\n    return this.#subscribe('MicroBlocks', Source.Node, cb);\n  }\n\n  subscribeMicroBlocksAll(cb: (p?: any, e?: Error) => void): () => void {\n    return this.#subscribe('MicroBlocks', Source.All, cb);\n  }\n\n  subscribeTransactions(cb: (p?: any, e?: Error) => void): () => void {\n    return this.#subscribe('Transactions', Source.Middleware, cb);\n  }\n\n  subscribeTransactionsNode(cb: (p?: any, e?: Error) => void): () => void {\n    return this.#subscribe('Transactions', Source.Node, cb);\n  }\n\n  subscribeTransactionsAll(cb: (p?: any, e?: Error) => void): () => void {\n    return this.#subscribe('Transactions', Source.All, cb);\n  }\n\n  subscribeObject(\n    target:\n      | Encoded.KeyBlockHash\n      | Encoded.Channel\n      | Encoded.ContractAddress\n      | Encoded.OracleAddress\n      | Encoded.OracleQueryId\n      | Encoded.AccountAddress\n      | Encoded.Name\n      | `${string}.chain`,\n    cb: (p?: any, e?: Error) => void,\n  ): () => void {\n    return this.#subscribe(target, Source.Middleware, cb);\n  }\n\n  subscribeObjectNode(\n    target:\n      | Encoded.KeyBlockHash\n      | Encoded.Channel\n      | Encoded.ContractAddress\n      | Encoded.OracleAddress\n      | Encoded.OracleQueryId\n      | Encoded.AccountAddress\n      | Encoded.Name\n      | `${string}.chain`,\n    cb: (p?: any, e?: Error) => void,\n  ): () => void {\n    return this.#subscribe(target, Source.Node, cb);\n  }\n\n  subscribeObjectAll(\n    target:\n      | Encoded.KeyBlockHash\n      | Encoded.Channel\n      | Encoded.ContractAddress\n      | Encoded.OracleAddress\n      | Encoded.OracleQueryId\n      | Encoded.AccountAddress\n      | Encoded.Name\n      | `${string}.chain`,\n    cb: (p?: any, e?: Error) => void,\n  ): () => void {\n    return this.#subscribe(target, Source.All, cb);\n  }\n}\n","import {\n  OperationParameter,\n  OperationURLParameter,\n  OperationQueryParameter,\n} from \"@azure/core-client\";\n\nexport const accept: OperationParameter = {\n  parameterPath: \"accept\",\n  mapper: {\n    defaultValue: \"application/json\",\n    isConstant: true,\n    serializedName: \"Accept\",\n    type: {\n      name: \"String\",\n    },\n  },\n};\n\nexport const $host: OperationURLParameter = {\n  parameterPath: \"$host\",\n  mapper: {\n    serializedName: \"$host\",\n    required: true,\n    type: {\n      name: \"String\",\n    },\n  },\n  skipEncoding: true,\n};\n\nexport const accountId: OperationURLParameter = {\n  parameterPath: \"accountId\",\n  mapper: {\n    constraints: {\n      Pattern: new RegExp(\"^ak_\\\\w{38,50}$\"),\n    },\n    serializedName: \"accountId\",\n    required: true,\n    type: {\n      name: \"String\",\n    },\n  },\n};\n\nexport const ownedOnly: OperationQueryParameter = {\n  parameterPath: [\"options\", \"ownedOnly\"],\n  mapper: {\n    serializedName: \"owned_only\",\n    type: {\n      name: \"Boolean\",\n    },\n  },\n};\n\nexport const typeParam: OperationQueryParameter = {\n  parameterPath: [\"options\", \"type\"],\n  mapper: {\n    serializedName: \"type\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\n        \"transactions\",\n        \"aexn\",\n        \"aex9\",\n        \"aex141\",\n        \"contract\",\n        \"transfers\",\n        \"claims\",\n        \"swaps\",\n      ],\n    },\n  },\n};\n\nexport const limit: OperationQueryParameter = {\n  parameterPath: [\"options\", \"limit\"],\n  mapper: {\n    defaultValue: 10,\n    constraints: {\n      InclusiveMaximum: 100,\n      InclusiveMinimum: 1,\n    },\n    serializedName: \"limit\",\n    type: {\n      name: \"Number\",\n    },\n  },\n};\n\nexport const scope: OperationQueryParameter = {\n  parameterPath: [\"options\", \"scope\"],\n  mapper: {\n    constraints: {\n      Pattern: new RegExp(\"(gen):\\\\d+(-\\\\d+)?\"),\n    },\n    serializedName: \"scope\",\n    type: {\n      name: \"String\",\n    },\n  },\n};\n\nexport const direction: OperationQueryParameter = {\n  parameterPath: [\"options\", \"direction\"],\n  mapper: {\n    serializedName: \"direction\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"forward\", \"backward\"],\n    },\n  },\n};\n\nexport const direction1: OperationQueryParameter = {\n  parameterPath: [\"options\", \"direction\"],\n  mapper: {\n    serializedName: \"direction\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"forward\", \"backward\"],\n    },\n  },\n};\n\nexport const contract: OperationQueryParameter = {\n  parameterPath: [\"options\", \"contract\"],\n  mapper: {\n    constraints: {\n      Pattern: new RegExp(\"^ct_\\\\w{38,50}$\"),\n    },\n    serializedName: \"contract\",\n    type: {\n      name: \"String\",\n    },\n  },\n};\n\nexport const direction2: OperationQueryParameter = {\n  parameterPath: [\"options\", \"direction\"],\n  mapper: {\n    serializedName: \"direction\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"forward\", \"backward\"],\n    },\n  },\n};\n\nexport const direction3: OperationQueryParameter = {\n  parameterPath: [\"options\", \"direction\"],\n  mapper: {\n    serializedName: \"direction\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"forward\", \"backward\"],\n    },\n  },\n};\n\nexport const direction4: OperationQueryParameter = {\n  parameterPath: [\"options\", \"direction\"],\n  mapper: {\n    serializedName: \"direction\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"forward\", \"backward\"],\n    },\n  },\n};\n\nexport const by: OperationQueryParameter = {\n  parameterPath: [\"options\", \"by\"],\n  mapper: {\n    serializedName: \"by\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"creation\", \"name\", \"symbol\"],\n    },\n  },\n};\n\nexport const prefix: OperationQueryParameter = {\n  parameterPath: [\"options\", \"prefix\"],\n  mapper: {\n    serializedName: \"prefix\",\n    type: {\n      name: \"String\",\n    },\n  },\n};\n\nexport const exact: OperationQueryParameter = {\n  parameterPath: [\"options\", \"exact\"],\n  mapper: {\n    serializedName: \"exact\",\n    type: {\n      name: \"String\",\n    },\n  },\n};\n\nexport const direction5: OperationQueryParameter = {\n  parameterPath: [\"options\", \"direction\"],\n  mapper: {\n    serializedName: \"direction\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"forward\", \"backward\"],\n    },\n  },\n};\n\nexport const contractId: OperationURLParameter = {\n  parameterPath: \"contractId\",\n  mapper: {\n    constraints: {\n      Pattern: new RegExp(\"^ct_\\\\w{38,50}$\"),\n    },\n    serializedName: \"contractId\",\n    required: true,\n    type: {\n      name: \"String\",\n    },\n  },\n};\n\nexport const direction6: OperationQueryParameter = {\n  parameterPath: [\"options\", \"direction\"],\n  mapper: {\n    serializedName: \"direction\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"forward\", \"backward\"],\n    },\n  },\n};\n\nexport const templateId: OperationURLParameter = {\n  parameterPath: \"templateId\",\n  mapper: {\n    serializedName: \"templateId\",\n    required: true,\n    type: {\n      name: \"Number\",\n    },\n  },\n};\n\nexport const direction7: OperationQueryParameter = {\n  parameterPath: [\"options\", \"direction\"],\n  mapper: {\n    serializedName: \"direction\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"forward\", \"backward\"],\n    },\n  },\n};\n\nexport const tokenId: OperationURLParameter = {\n  parameterPath: \"tokenId\",\n  mapper: {\n    serializedName: \"tokenId\",\n    required: true,\n    type: {\n      name: \"Number\",\n    },\n  },\n};\n\nexport const direction8: OperationQueryParameter = {\n  parameterPath: [\"options\", \"direction\"],\n  mapper: {\n    serializedName: \"direction\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"forward\", \"backward\"],\n    },\n  },\n};\n\nexport const fromParam: OperationQueryParameter = {\n  parameterPath: [\"options\", \"from\"],\n  mapper: {\n    constraints: {\n      Pattern: new RegExp(\"^ak_\\\\w{38,50}$\"),\n    },\n    serializedName: \"from\",\n    type: {\n      name: \"String\",\n    },\n  },\n};\n\nexport const to: OperationQueryParameter = {\n  parameterPath: [\"options\", \"to\"],\n  mapper: {\n    constraints: {\n      Pattern: new RegExp(\"^ak_\\\\w{38,50}$\"),\n    },\n    serializedName: \"to\",\n    type: {\n      name: \"String\",\n    },\n  },\n};\n\nexport const id: OperationURLParameter = {\n  parameterPath: \"id\",\n  mapper: {\n    constraints: {\n      Pattern: new RegExp(\"^ct_\\\\w{38,50}$\"),\n    },\n    serializedName: \"id\",\n    required: true,\n    type: {\n      name: \"String\",\n    },\n  },\n};\n\nexport const direction9: OperationQueryParameter = {\n  parameterPath: [\"options\", \"direction\"],\n  mapper: {\n    serializedName: \"direction\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"forward\", \"backward\"],\n    },\n  },\n};\n\nexport const by1: OperationQueryParameter = {\n  parameterPath: [\"options\", \"by\"],\n  mapper: {\n    serializedName: \"by\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"creation\", \"name\", \"symbol\"],\n    },\n  },\n};\n\nexport const direction10: OperationQueryParameter = {\n  parameterPath: [\"options\", \"direction\"],\n  mapper: {\n    serializedName: \"direction\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"forward\", \"backward\"],\n    },\n  },\n};\n\nexport const by2: OperationQueryParameter = {\n  parameterPath: [\"options\", \"by\"],\n  mapper: {\n    serializedName: \"by\",\n    type: {\n      name: \"String\",\n    },\n  },\n};\n\nexport const blockHash: OperationQueryParameter = {\n  parameterPath: [\"options\", \"blockHash\"],\n  mapper: {\n    constraints: {\n      Pattern: new RegExp(\"^mh_\\\\w{38,50}$\"),\n    },\n    serializedName: \"block_hash\",\n    type: {\n      name: \"String\",\n    },\n  },\n};\n\nexport const hash: OperationQueryParameter = {\n  parameterPath: [\"options\", \"hash\"],\n  mapper: {\n    constraints: {\n      Pattern: new RegExp(\"^mh_\\\\w{38,50}$\"),\n    },\n    serializedName: \"hash\",\n    type: {\n      name: \"String\",\n    },\n  },\n};\n\nexport const direction11: OperationQueryParameter = {\n  parameterPath: [\"options\", \"direction\"],\n  mapper: {\n    serializedName: \"direction\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"forward\", \"backward\"],\n    },\n  },\n};\n\nexport const direction12: OperationQueryParameter = {\n  parameterPath: [\"options\", \"direction\"],\n  mapper: {\n    serializedName: \"direction\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"forward\", \"backward\"],\n    },\n  },\n};\n\nexport const state: OperationQueryParameter = {\n  parameterPath: [\"options\", \"state\"],\n  mapper: {\n    serializedName: \"state\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"active\", \"inactive\"],\n    },\n  },\n};\n\nexport const id1: OperationURLParameter = {\n  parameterPath: \"id\",\n  mapper: {\n    constraints: {\n      Pattern: new RegExp(\"^ch_\\\\w{38,50}$\"),\n    },\n    serializedName: \"id\",\n    required: true,\n    type: {\n      name: \"String\",\n    },\n  },\n};\n\nexport const direction13: OperationQueryParameter = {\n  parameterPath: [\"options\", \"direction\"],\n  mapper: {\n    serializedName: \"direction\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"forward\", \"backward\"],\n    },\n  },\n};\n\nexport const contractId1: OperationQueryParameter = {\n  parameterPath: [\"options\", \"contractId\"],\n  mapper: {\n    constraints: {\n      Pattern: new RegExp(\"^ct_\\\\w{38,50}$\"),\n    },\n    serializedName: \"contract_id\",\n    type: {\n      name: \"String\",\n    },\n  },\n};\n\nexport const event: OperationQueryParameter = {\n  parameterPath: [\"options\", \"event\"],\n  mapper: {\n    serializedName: \"event\",\n    type: {\n      name: \"String\",\n    },\n  },\n};\n\nexport const functionParam: OperationQueryParameter = {\n  parameterPath: [\"options\", \"function\"],\n  mapper: {\n    serializedName: \"function\",\n    type: {\n      name: \"String\",\n    },\n  },\n};\n\nexport const functionPrefix: OperationQueryParameter = {\n  parameterPath: [\"options\", \"functionPrefix\"],\n  mapper: {\n    serializedName: \"function_prefix\",\n    type: {\n      name: \"String\",\n    },\n  },\n};\n\nexport const data: OperationQueryParameter = {\n  parameterPath: [\"options\", \"data\"],\n  mapper: {\n    serializedName: \"data\",\n    type: {\n      name: \"String\",\n    },\n  },\n};\n\nexport const aexnArgs: OperationQueryParameter = {\n  parameterPath: [\"options\", \"aexnArgs\"],\n  mapper: {\n    serializedName: \"aexn-args\",\n    type: {\n      name: \"Boolean\",\n    },\n  },\n};\n\nexport const direction14: OperationQueryParameter = {\n  parameterPath: [\"options\", \"direction\"],\n  mapper: {\n    serializedName: \"direction\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"forward\", \"backward\"],\n    },\n  },\n};\n\nexport const direction15: OperationQueryParameter = {\n  parameterPath: [\"options\", \"direction\"],\n  mapper: {\n    serializedName: \"direction\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"forward\", \"backward\"],\n    },\n  },\n};\n\nexport const direction16: OperationQueryParameter = {\n  parameterPath: [\"options\", \"direction\"],\n  mapper: {\n    serializedName: \"direction\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"forward\", \"backward\"],\n    },\n  },\n};\n\nexport const contractId2: OperationURLParameter = {\n  parameterPath: \"contractId\",\n  mapper: {\n    constraints: {\n      Pattern: new RegExp(\"^ct_\\\\w{38,50}$\"),\n    },\n    serializedName: \"contract_id\",\n    required: true,\n    type: {\n      name: \"String\",\n    },\n  },\n};\n\nexport const direction17: OperationQueryParameter = {\n  parameterPath: [\"options\", \"direction\"],\n  mapper: {\n    serializedName: \"direction\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"forward\", \"backward\"],\n    },\n  },\n};\n\nexport const scope1: OperationQueryParameter = {\n  parameterPath: [\"options\", \"scope\"],\n  mapper: {\n    constraints: {\n      Pattern: new RegExp(\"(epoch):\\\\d+(-\\\\d+)?\"),\n    },\n    serializedName: \"scope\",\n    type: {\n      name: \"String\",\n    },\n  },\n};\n\nexport const direction18: OperationQueryParameter = {\n  parameterPath: [\"options\", \"direction\"],\n  mapper: {\n    serializedName: \"direction\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"forward\", \"backward\"],\n    },\n  },\n};\n\nexport const height: OperationURLParameter = {\n  parameterPath: \"height\",\n  mapper: {\n    serializedName: \"height\",\n    required: true,\n    type: {\n      name: \"Number\",\n    },\n  },\n};\n\nexport const direction19: OperationQueryParameter = {\n  parameterPath: [\"options\", \"direction\"],\n  mapper: {\n    serializedName: \"direction\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"forward\", \"backward\"],\n    },\n  },\n};\n\nexport const validator: OperationURLParameter = {\n  parameterPath: \"validator\",\n  mapper: {\n    constraints: {\n      Pattern: new RegExp(\"^ak_\\\\w{38,50}$\"),\n    },\n    serializedName: \"validator\",\n    required: true,\n    type: {\n      name: \"String\",\n    },\n  },\n};\n\nexport const direction20: OperationQueryParameter = {\n  parameterPath: [\"options\", \"direction\"],\n  mapper: {\n    serializedName: \"direction\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"forward\", \"backward\"],\n    },\n  },\n};\n\nexport const direction21: OperationQueryParameter = {\n  parameterPath: [\"options\", \"direction\"],\n  mapper: {\n    serializedName: \"direction\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"forward\", \"backward\"],\n    },\n  },\n};\n\nexport const direction22: OperationQueryParameter = {\n  parameterPath: [\"options\", \"direction\"],\n  mapper: {\n    serializedName: \"direction\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"forward\", \"backward\"],\n    },\n  },\n};\n\nexport const hashOrKbi: OperationURLParameter = {\n  parameterPath: \"hashOrKbi\",\n  mapper: {\n    serializedName: \"hash_or_kbi\",\n    required: true,\n    type: {\n      name: \"String\",\n    },\n  },\n};\n\nexport const direction23: OperationQueryParameter = {\n  parameterPath: [\"options\", \"direction\"],\n  mapper: {\n    serializedName: \"direction\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"forward\", \"backward\"],\n    },\n  },\n};\n\nexport const hash1: OperationURLParameter = {\n  parameterPath: \"hash\",\n  mapper: {\n    constraints: {\n      Pattern: new RegExp(\"^mh_\\\\w{38,50}$\"),\n    },\n    serializedName: \"hash\",\n    required: true,\n    type: {\n      name: \"String\",\n    },\n  },\n};\n\nexport const ownedBy: OperationQueryParameter = {\n  parameterPath: [\"options\", \"ownedBy\"],\n  mapper: {\n    constraints: {\n      Pattern: new RegExp(\"^ak_\\\\w{38,50}$\"),\n    },\n    serializedName: \"owned_by\",\n    type: {\n      name: \"String\",\n    },\n  },\n};\n\nexport const state1: OperationQueryParameter = {\n  parameterPath: [\"options\", \"state\"],\n  mapper: {\n    serializedName: \"state\",\n    type: {\n      name: \"String\",\n    },\n  },\n};\n\nexport const direction24: OperationQueryParameter = {\n  parameterPath: [\"options\", \"direction\"],\n  mapper: {\n    serializedName: \"direction\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"forward\", \"backward\"],\n    },\n  },\n};\n\nexport const direction25: OperationQueryParameter = {\n  parameterPath: [\"options\", \"direction\"],\n  mapper: {\n    serializedName: \"direction\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"forward\", \"backward\"],\n    },\n  },\n};\n\nexport const id2: OperationURLParameter = {\n  parameterPath: \"id\",\n  mapper: {\n    serializedName: \"id\",\n    required: true,\n    type: {\n      name: \"String\",\n    },\n  },\n};\n\nexport const direction26: OperationQueryParameter = {\n  parameterPath: [\"options\", \"direction\"],\n  mapper: {\n    serializedName: \"direction\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"forward\", \"backward\"],\n    },\n  },\n};\n\nexport const direction27: OperationQueryParameter = {\n  parameterPath: [\"options\", \"direction\"],\n  mapper: {\n    serializedName: \"direction\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"forward\", \"backward\"],\n    },\n  },\n};\n\nexport const direction28: OperationQueryParameter = {\n  parameterPath: [\"options\", \"direction\"],\n  mapper: {\n    serializedName: \"direction\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"forward\", \"backward\"],\n    },\n  },\n};\n\nexport const direction29: OperationQueryParameter = {\n  parameterPath: [\"options\", \"direction\"],\n  mapper: {\n    serializedName: \"direction\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"forward\", \"backward\"],\n    },\n  },\n};\n\nexport const direction30: OperationQueryParameter = {\n  parameterPath: [\"options\", \"direction\"],\n  mapper: {\n    serializedName: \"direction\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"forward\", \"backward\"],\n    },\n  },\n};\n\nexport const direction31: OperationQueryParameter = {\n  parameterPath: [\"options\", \"direction\"],\n  mapper: {\n    serializedName: \"direction\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"forward\", \"backward\"],\n    },\n  },\n};\n\nexport const id3: OperationURLParameter = {\n  parameterPath: \"id\",\n  mapper: {\n    constraints: {\n      Pattern: new RegExp(\"^ok_\\\\w{38,50}$\"),\n    },\n    serializedName: \"id\",\n    required: true,\n    type: {\n      name: \"String\",\n    },\n  },\n};\n\nexport const intervalBy: OperationQueryParameter = {\n  parameterPath: [\"options\", \"intervalBy\"],\n  mapper: {\n    serializedName: \"interval_by\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"day\", \"week\", \"month\"],\n    },\n  },\n};\n\nexport const direction32: OperationQueryParameter = {\n  parameterPath: [\"options\", \"direction\"],\n  mapper: {\n    serializedName: \"direction\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"forward\", \"backward\"],\n    },\n  },\n};\n\nexport const intervalBy1: OperationQueryParameter = {\n  parameterPath: [\"options\", \"intervalBy\"],\n  mapper: {\n    serializedName: \"interval_by\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"day\", \"week\", \"month\"],\n    },\n  },\n};\n\nexport const minStartDate: OperationQueryParameter = {\n  parameterPath: [\"options\", \"minStartDate\"],\n  mapper: {\n    serializedName: \"min_start_date\",\n    type: {\n      name: \"String\",\n    },\n  },\n};\n\nexport const maxStartDate: OperationQueryParameter = {\n  parameterPath: [\"options\", \"maxStartDate\"],\n  mapper: {\n    serializedName: \"max_start_date\",\n    type: {\n      name: \"String\",\n    },\n  },\n};\n\nexport const direction33: OperationQueryParameter = {\n  parameterPath: [\"options\", \"direction\"],\n  mapper: {\n    serializedName: \"direction\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"forward\", \"backward\"],\n    },\n  },\n};\n\nexport const intervalBy2: OperationQueryParameter = {\n  parameterPath: [\"options\", \"intervalBy\"],\n  mapper: {\n    serializedName: \"interval_by\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"day\", \"week\", \"month\"],\n    },\n  },\n};\n\nexport const typeParam1: OperationQueryParameter = {\n  parameterPath: [\"options\", \"type\"],\n  mapper: {\n    serializedName: \"type\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"key\", \"micro\"],\n    },\n  },\n};\n\nexport const direction34: OperationQueryParameter = {\n  parameterPath: [\"options\", \"direction\"],\n  mapper: {\n    serializedName: \"direction\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"forward\", \"backward\"],\n    },\n  },\n};\n\nexport const intervalBy3: OperationQueryParameter = {\n  parameterPath: [\"options\", \"intervalBy\"],\n  mapper: {\n    serializedName: \"interval_by\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"day\", \"week\", \"month\"],\n    },\n  },\n};\n\nexport const direction35: OperationQueryParameter = {\n  parameterPath: [\"options\", \"direction\"],\n  mapper: {\n    serializedName: \"direction\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"forward\", \"backward\"],\n    },\n  },\n};\n\nexport const direction36: OperationQueryParameter = {\n  parameterPath: [\"options\", \"direction\"],\n  mapper: {\n    serializedName: \"direction\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"forward\", \"backward\"],\n    },\n  },\n};\n\nexport const intervalBy4: OperationQueryParameter = {\n  parameterPath: [\"options\", \"intervalBy\"],\n  mapper: {\n    serializedName: \"interval_by\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"day\", \"week\", \"month\"],\n    },\n  },\n};\n\nexport const direction37: OperationQueryParameter = {\n  parameterPath: [\"options\", \"direction\"],\n  mapper: {\n    serializedName: \"direction\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"forward\", \"backward\"],\n    },\n  },\n};\n\nexport const intervalBy5: OperationQueryParameter = {\n  parameterPath: [\"options\", \"intervalBy\"],\n  mapper: {\n    serializedName: \"interval_by\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"day\", \"week\", \"month\"],\n    },\n  },\n};\n\nexport const direction38: OperationQueryParameter = {\n  parameterPath: [\"options\", \"direction\"],\n  mapper: {\n    serializedName: \"direction\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"forward\", \"backward\"],\n    },\n  },\n};\n\nexport const direction39: OperationQueryParameter = {\n  parameterPath: [\"options\", \"direction\"],\n  mapper: {\n    serializedName: \"direction\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"forward\", \"backward\"],\n    },\n  },\n};\n\nexport const intervalBy6: OperationQueryParameter = {\n  parameterPath: [\"options\", \"intervalBy\"],\n  mapper: {\n    serializedName: \"interval_by\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"day\", \"week\", \"month\"],\n    },\n  },\n};\n\nexport const direction40: OperationQueryParameter = {\n  parameterPath: [\"options\", \"direction\"],\n  mapper: {\n    serializedName: \"direction\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"forward\", \"backward\"],\n    },\n  },\n};\n\nexport const direction41: OperationQueryParameter = {\n  parameterPath: [\"options\", \"direction\"],\n  mapper: {\n    serializedName: \"direction\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"forward\", \"backward\"],\n    },\n  },\n};\n\nexport const intervalBy7: OperationQueryParameter = {\n  parameterPath: [\"options\", \"intervalBy\"],\n  mapper: {\n    serializedName: \"interval_by\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"day\", \"week\", \"month\"],\n    },\n  },\n};\n\nexport const direction42: OperationQueryParameter = {\n  parameterPath: [\"options\", \"direction\"],\n  mapper: {\n    serializedName: \"direction\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"forward\", \"backward\"],\n    },\n  },\n};\n\nexport const intervalBy8: OperationQueryParameter = {\n  parameterPath: [\"options\", \"intervalBy\"],\n  mapper: {\n    serializedName: \"interval_by\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"day\", \"week\", \"month\"],\n    },\n  },\n};\n\nexport const txType: OperationQueryParameter = {\n  parameterPath: [\"options\", \"txType\"],\n  mapper: {\n    serializedName: \"tx_type\",\n    type: {\n      name: \"String\",\n    },\n  },\n};\n\nexport const direction43: OperationQueryParameter = {\n  parameterPath: [\"options\", \"direction\"],\n  mapper: {\n    serializedName: \"direction\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"forward\", \"backward\"],\n    },\n  },\n};\n\nexport const typeParam2: OperationQueryParameter = {\n  parameterPath: [\"options\", \"type\"],\n  mapper: {\n    serializedName: \"type\",\n    type: {\n      name: \"Sequence\",\n      element: {\n        type: {\n          name: \"Enum\",\n          allowedValues: [\n            \"channel_close_mutual\",\n            \"channel_close_solo\",\n            \"channel_create\",\n            \"channel_deposit\",\n            \"channel_force_progress\",\n            \"channel_offchain\",\n            \"channel_settle\",\n            \"channel_slash\",\n            \"channel_snapshot_solo\",\n            \"channel_withdraw\",\n            \"contract_call\",\n            \"contract_create\",\n            \"ga_attach\",\n            \"ga_meta\",\n            \"name_claim\",\n            \"name_preclaim\",\n            \"name_revoke\",\n            \"name_transfer\",\n            \"name_update\",\n            \"oracle_extend\",\n            \"oracle_query\",\n            \"oracle_register\",\n            \"oracle_response\",\n            \"paying_for\",\n            \"spend\",\n          ],\n        },\n      },\n    },\n  },\n  collectionFormat: \"Multi\",\n};\n\nexport const typeGroup: OperationQueryParameter = {\n  parameterPath: [\"options\", \"typeGroup\"],\n  mapper: {\n    serializedName: \"type_group\",\n    type: {\n      name: \"Sequence\",\n      element: {\n        type: {\n          name: \"Enum\",\n          allowedValues: [\n            \"channel\",\n            \"contract\",\n            \"ga\",\n            \"name\",\n            \"oracle\",\n            \"paying_for\",\n            \"spend\",\n          ],\n        },\n      },\n    },\n  },\n  collectionFormat: \"Multi\",\n};\n\nexport const account: OperationQueryParameter = {\n  parameterPath: [\"options\", \"account\"],\n  mapper: {\n    constraints: {\n      Pattern: new RegExp(\"^ak_\\\\w{38,50}$\"),\n    },\n    serializedName: \"account\",\n    type: {\n      name: \"String\",\n    },\n  },\n};\n\nexport const channel: OperationQueryParameter = {\n  parameterPath: [\"options\", \"channel\"],\n  mapper: {\n    constraints: {\n      Pattern: new RegExp(\"^ch_\\\\w{38,50}$\"),\n    },\n    serializedName: \"channel\",\n    type: {\n      name: \"String\",\n    },\n  },\n};\n\nexport const oracle: OperationQueryParameter = {\n  parameterPath: [\"options\", \"oracle\"],\n  mapper: {\n    constraints: {\n      Pattern: new RegExp(\"^ok_\\\\w{38,50}$\"),\n    },\n    serializedName: \"oracle\",\n    type: {\n      name: \"String\",\n    },\n  },\n};\n\nexport const senderId: OperationQueryParameter = {\n  parameterPath: [\"options\", \"senderId\"],\n  mapper: {\n    constraints: {\n      Pattern: new RegExp(\"^ak_\\\\w{38,50}$\"),\n    },\n    serializedName: \"sender_id\",\n    type: {\n      name: \"String\",\n    },\n  },\n};\n\nexport const recipientId: OperationQueryParameter = {\n  parameterPath: [\"options\", \"recipientId\"],\n  mapper: {\n    constraints: {\n      Pattern: new RegExp(\"^ak_\\\\w{38,50}$\"),\n    },\n    serializedName: \"recipient_id\",\n    type: {\n      name: \"String\",\n    },\n  },\n};\n\nexport const entrypoint: OperationQueryParameter = {\n  parameterPath: [\"options\", \"entrypoint\"],\n  mapper: {\n    serializedName: \"entrypoint\",\n    type: {\n      name: \"String\",\n    },\n  },\n};\n\nexport const scope2: OperationQueryParameter = {\n  parameterPath: [\"options\", \"scope\"],\n  mapper: {\n    constraints: {\n      Pattern: new RegExp(\"(time|gen):\\\\d+(-\\\\d+)?\"),\n    },\n    serializedName: \"scope\",\n    type: {\n      name: \"String\",\n    },\n  },\n};\n\nexport const direction44: OperationQueryParameter = {\n  parameterPath: [\"options\", \"direction\"],\n  mapper: {\n    serializedName: \"direction\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"forward\", \"backward\"],\n    },\n  },\n};\n\nexport const id4: OperationQueryParameter = {\n  parameterPath: [\"options\", \"id\"],\n  mapper: {\n    constraints: {\n      Pattern: new RegExp(\"^ak_\\\\w{38,50}$\"),\n    },\n    serializedName: \"id\",\n    type: {\n      name: \"String\",\n    },\n  },\n};\n\nexport const direction45: OperationQueryParameter = {\n  parameterPath: [\"options\", \"direction\"],\n  mapper: {\n    serializedName: \"direction\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"forward\", \"backward\"],\n    },\n  },\n};\n\nexport const hash2: OperationURLParameter = {\n  parameterPath: \"hash\",\n  mapper: {\n    constraints: {\n      Pattern: new RegExp(\"^th_\\\\w{38,50}$\"),\n    },\n    serializedName: \"hash\",\n    required: true,\n    type: {\n      name: \"String\",\n    },\n  },\n};\n\nexport const direction46: OperationQueryParameter = {\n  parameterPath: [\"options\", \"direction\"],\n  mapper: {\n    serializedName: \"direction\",\n    type: {\n      name: \"Enum\",\n      allowedValues: [\"forward\", \"backward\"],\n    },\n  },\n};\n","import * as coreClient from \"@azure/core-client\";\n\nexport const PathsBx0Ya3V3AccountsAccountidActivitiesGetResponses200ContentApplicationJsonSchemaAllof0: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"PathsBx0Ya3V3AccountsAccountidActivitiesGetResponses200ContentApplicationJsonSchemaAllof0\",\n      modelProperties: {\n        data: {\n          serializedName: \"data\",\n          required: true,\n          type: {\n            name: \"Sequence\",\n            element: {\n              type: {\n                name: \"Composite\",\n                className: \"Activity\",\n              },\n            },\n          },\n        },\n      },\n    },\n  };\n\nexport const Activity: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"Activity\",\n    modelProperties: {\n      blockHash: {\n        constraints: {\n          Pattern: new RegExp(\"^mh_\\\\w{38,50}$\"),\n        },\n        serializedName: \"block_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      blockTime: {\n        serializedName: \"block_time\",\n        required: true,\n        type: {\n          name: \"UnixTime\",\n        },\n      },\n      height: {\n        serializedName: \"height\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      type: {\n        serializedName: \"type\",\n        required: true,\n        type: {\n          name: \"Enum\",\n          allowedValues: [\n            \"SpendTxEvent\",\n            \"OracleRegisterTxEvent\",\n            \"OracleExtendTxEvent\",\n            \"OracleQueryTxEvent\",\n            \"OracleResponseTxEvent\",\n            \"NamePreclaimTxEvent\",\n            \"NameClaimTxEvent\",\n            \"NameTransferTxEvent\",\n            \"NameUpdateTxEvent\",\n            \"NameRevokeTxEvent\",\n            \"ContractCreateTxEvent\",\n            \"ContractCallTxEvent\",\n            \"GaAttachTxEvent\",\n            \"GaMetaTxEvent\",\n            \"ChannelCreateTxEvent\",\n            \"ChannelDepositTxEvent\",\n            \"ChannelWithdrawTxEvent\",\n            \"ChannelForceProgressTxEvent\",\n            \"ChannelCloseMutualTxEvent\",\n            \"ChannelCloseSoloTxEvent\",\n            \"ChannelSlashTxEvent\",\n            \"ChannelSettleTxEvent\",\n            \"ChannelSnapshotSoloTxEvent\",\n            \"ChannelSetDelegatesTxEvent\",\n            \"ChannelOffchainTxEvent\",\n            \"ChannelClientReconnectTxEvent\",\n            \"PayingForTxEvent\",\n          ],\n        },\n      },\n      payload: {\n        serializedName: \"payload\",\n        type: {\n          name: \"Composite\",\n          className: \"ActivityPayload\",\n        },\n      },\n    },\n  },\n};\n\nexport const ActivityPayload: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"ActivityPayload\",\n    modelProperties: {\n      blockHash: {\n        constraints: {\n          Pattern: new RegExp(\"^mh_\\\\w{38,50}$\"),\n        },\n        serializedName: \"block_hash\",\n        type: {\n          name: \"String\",\n        },\n      },\n      blockHeight: {\n        serializedName: \"block_height\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      encodedTx: {\n        constraints: {\n          Pattern: new RegExp(\"^tx_\\\\w+$\"),\n        },\n        serializedName: \"encoded_tx\",\n        type: {\n          name: \"String\",\n        },\n      },\n      hash: {\n        constraints: {\n          Pattern: new RegExp(\"^th_\\\\w{38,50}$\"),\n        },\n        serializedName: \"hash\",\n        type: {\n          name: \"String\",\n        },\n      },\n      microIndex: {\n        serializedName: \"micro_index\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      microTime: {\n        serializedName: \"micro_time\",\n        type: {\n          name: \"UnixTime\",\n        },\n      },\n      signatures: {\n        serializedName: \"signatures\",\n        type: {\n          name: \"Sequence\",\n          element: {\n            constraints: {\n              Pattern: new RegExp(\"^sg_\\\\w+$\"),\n            },\n            type: {\n              name: \"String\",\n            },\n          },\n        },\n      },\n      tx: {\n        serializedName: \"tx\",\n        type: {\n          name: \"Composite\",\n          className: \"Tx\",\n        },\n      },\n      amount: {\n        serializedName: \"amount\",\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      contractId: {\n        constraints: {\n          Pattern: new RegExp(\"^ct_\\\\w{38,50}$\"),\n        },\n        serializedName: \"contract_id\",\n        type: {\n          name: \"String\",\n        },\n      },\n      logIdx: {\n        serializedName: \"log_idx\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      recipientId: {\n        constraints: {\n          Pattern: new RegExp(\"^ak_\\\\w{38,50}$\"),\n        },\n        serializedName: \"recipient_id\",\n        type: {\n          name: \"String\",\n        },\n      },\n      senderId: {\n        constraints: {\n          Pattern: new RegExp(\"^ak_\\\\w{38,50}$\"),\n        },\n        serializedName: \"sender_id\",\n        type: {\n          name: \"String\",\n        },\n      },\n      txHash: {\n        constraints: {\n          Pattern: new RegExp(\"^th_\\\\w{38,50}$\"),\n        },\n        serializedName: \"tx_hash\",\n        type: {\n          name: \"String\",\n        },\n      },\n      recipient: {\n        constraints: {\n          Pattern: new RegExp(\"^ak_\\\\w{38,50}$\"),\n        },\n        serializedName: \"recipient\",\n        type: {\n          name: \"String\",\n        },\n      },\n      sender: {\n        constraints: {\n          Pattern: new RegExp(\"^ak_\\\\w{38,50}$\"),\n        },\n        serializedName: \"sender\",\n        type: {\n          name: \"String\",\n        },\n      },\n      tokenId: {\n        serializedName: \"token_id\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      contractTxHash: {\n        constraints: {\n          Pattern: new RegExp(\"^th_\\\\w{38,50}$\"),\n        },\n        serializedName: \"contract_tx_hash\",\n        type: {\n          name: \"String\",\n        },\n      },\n      callTxHash: {\n        constraints: {\n          Pattern: new RegExp(\"^th_\\\\w{38,50}$\"),\n        },\n        serializedName: \"call_tx_hash\",\n        type: {\n          name: \"String\",\n        },\n      },\n      function: {\n        serializedName: \"function\",\n        type: {\n          name: \"String\",\n        },\n      },\n      internalTx: {\n        serializedName: \"internal_tx\",\n        type: {\n          name: \"Dictionary\",\n          value: { type: { name: \"any\" } },\n        },\n      },\n      height: {\n        serializedName: \"height\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      kind: {\n        serializedName: \"kind\",\n        type: {\n          name: \"Enum\",\n          allowedValues: [\n            \"accounts_extra_lima\",\n            \"accounts_fortuna\",\n            \"accounts_genesis\",\n            \"accounts_lima\",\n            \"accounts_minerva\",\n            \"contracts_lima\",\n            \"reward_dev\",\n            \"reward_block\",\n            \"fee_refund_oracle\",\n            \"fee_lock_name\",\n            \"fee_refund_name\",\n            \"fee_spend_name\",\n            \"reward_oracle\",\n          ],\n        },\n      },\n      refTxHash: {\n        constraints: {\n          Pattern: new RegExp(\"^th_\\\\w{38,50}$\"),\n        },\n        serializedName: \"ref_tx_hash\",\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const Tx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"Tx\",\n    modelProperties: {\n      recipientId: {\n        serializedName: \"recipient_id\",\n        type: {\n          name: \"String\",\n        },\n      },\n      amount: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"amount\",\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      fee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      ttl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"ttl\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      senderId: {\n        serializedName: \"sender_id\",\n        type: {\n          name: \"String\",\n        },\n      },\n      nonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"nonce\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      payload: {\n        serializedName: \"payload\",\n        type: {\n          name: \"String\",\n        },\n      },\n      initiatorId: {\n        serializedName: \"initiator_id\",\n        type: {\n          name: \"String\",\n        },\n      },\n      initiatorAmount: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"initiator_amount\",\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      responderId: {\n        serializedName: \"responder_id\",\n        type: {\n          name: \"String\",\n        },\n      },\n      responderAmount: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"responder_amount\",\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      channelReserve: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"channel_reserve\",\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      lockPeriod: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"lock_period\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      stateHash: {\n        serializedName: \"state_hash\",\n        type: {\n          name: \"String\",\n        },\n      },\n      delegateIds: {\n        serializedName: \"delegate_ids\",\n        type: {\n          name: \"Composite\",\n          className: \"Delegates\",\n        },\n      },\n      channelId: {\n        serializedName: \"channel_id\",\n        type: {\n          name: \"String\",\n        },\n      },\n      fromId: {\n        serializedName: \"from_id\",\n        type: {\n          name: \"String\",\n        },\n      },\n      round: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"round\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      toId: {\n        serializedName: \"to_id\",\n        type: {\n          name: \"String\",\n        },\n      },\n      update: {\n        serializedName: \"update\",\n        type: {\n          name: \"Composite\",\n          className: \"OffChainUpdate\",\n        },\n      },\n      offchainTrees: {\n        serializedName: \"offchain_trees\",\n        type: {\n          name: \"String\",\n        },\n      },\n      initiatorAmountFinal: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"initiator_amount_final\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      responderAmountFinal: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"responder_amount_final\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      poi: {\n        serializedName: \"poi\",\n        type: {\n          name: \"String\",\n        },\n      },\n      initiatorDelegateIds: {\n        serializedName: \"initiator_delegate_ids\",\n        type: {\n          name: \"Sequence\",\n          element: {\n            type: {\n              name: \"String\",\n            },\n          },\n        },\n      },\n      responderDelegateIds: {\n        serializedName: \"responder_delegate_ids\",\n        type: {\n          name: \"Sequence\",\n          element: {\n            type: {\n              name: \"String\",\n            },\n          },\n        },\n      },\n      queryFormat: {\n        serializedName: \"query_format\",\n        type: {\n          name: \"String\",\n        },\n      },\n      responseFormat: {\n        serializedName: \"response_format\",\n        type: {\n          name: \"String\",\n        },\n      },\n      queryFee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"query_fee\",\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      oracleTtl: {\n        serializedName: \"oracle_ttl\",\n        type: {\n          name: \"Composite\",\n          className: \"RelativeTTL\",\n        },\n      },\n      accountId: {\n        serializedName: \"account_id\",\n        type: {\n          name: \"String\",\n        },\n      },\n      abiVersion: {\n        constraints: {\n          InclusiveMaximum: 65535,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"abi_version\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      oracleId: {\n        serializedName: \"oracle_id\",\n        type: {\n          name: \"String\",\n        },\n      },\n      query: {\n        serializedName: \"query\",\n        type: {\n          name: \"String\",\n        },\n      },\n      queryTtl: {\n        serializedName: \"query_ttl\",\n        type: {\n          name: \"Composite\",\n          className: \"Ttl\",\n        },\n      },\n      responseTtl: {\n        serializedName: \"response_ttl\",\n        type: {\n          name: \"Composite\",\n          className: \"RelativeTTL\",\n        },\n      },\n      queryId: {\n        serializedName: \"query_id\",\n        type: {\n          name: \"String\",\n        },\n      },\n      response: {\n        serializedName: \"response\",\n        type: {\n          name: \"String\",\n        },\n      },\n      commitmentId: {\n        serializedName: \"commitment_id\",\n        type: {\n          name: \"String\",\n        },\n      },\n      name: {\n        serializedName: \"name\",\n        type: {\n          name: \"String\",\n        },\n      },\n      nameSalt: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"name_salt\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      nameFee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"name_fee\",\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      nameId: {\n        serializedName: \"name_id\",\n        type: {\n          name: \"String\",\n        },\n      },\n      nameTtl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"name_ttl\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      pointers: {\n        serializedName: \"pointers\",\n        type: {\n          name: \"Sequence\",\n          element: {\n            type: {\n              name: \"Composite\",\n              className: \"NamePointer\",\n            },\n          },\n        },\n      },\n      clientTtl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"client_ttl\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      ownerId: {\n        serializedName: \"owner_id\",\n        type: {\n          name: \"String\",\n        },\n      },\n      code: {\n        serializedName: \"code\",\n        type: {\n          name: \"String\",\n        },\n      },\n      vmVersion: {\n        constraints: {\n          InclusiveMaximum: 65535,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"vm_version\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      deposit: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"deposit\",\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      gas: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"gas\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      gasPrice: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"gas_price\",\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      callData: {\n        serializedName: \"call_data\",\n        type: {\n          name: \"String\",\n        },\n      },\n      callerId: {\n        serializedName: \"caller_id\",\n        type: {\n          name: \"String\",\n        },\n      },\n      contractId: {\n        serializedName: \"contract_id\",\n        type: {\n          name: \"String\",\n        },\n      },\n      authFun: {\n        constraints: {\n          Pattern: new RegExp(\"^(0x|0X)?[a-fA-F0-9]+$\"),\n        },\n        serializedName: \"auth_fun\",\n        type: {\n          name: \"String\",\n        },\n      },\n      gaId: {\n        serializedName: \"ga_id\",\n        type: {\n          name: \"String\",\n        },\n      },\n      authData: {\n        serializedName: \"auth_data\",\n        type: {\n          name: \"String\",\n        },\n      },\n      tx: {\n        serializedName: \"tx\",\n        type: {\n          name: \"Composite\",\n          className: \"SignedTx\",\n        },\n      },\n      payerId: {\n        serializedName: \"payer_id\",\n        type: {\n          name: \"String\",\n        },\n      },\n      version: {\n        constraints: {\n          InclusiveMaximum: 4294967295,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"version\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      type: {\n        serializedName: \"type\",\n        required: true,\n        type: {\n          name: \"Enum\",\n          allowedValues: [\n            \"SpendTx\",\n            \"ChannelCreateTx\",\n            \"ChannelDepositTx\",\n            \"ChannelWithdrawTx\",\n            \"ChannelForceProgressTx\",\n            \"ChannelCloseMutualTx\",\n            \"ChannelCloseSoloTx\",\n            \"ChannelSlashTx\",\n            \"ChannelSettleTx\",\n            \"ChannelSnapshotSoloTx\",\n            \"ChannelSetDelegatesTx\",\n            \"OracleRegisterTx\",\n            \"OracleExtendTx\",\n            \"OracleQueryTx\",\n            \"OracleRespondTx\",\n            \"NamePreclaimTx\",\n            \"NameClaimTx\",\n            \"NameUpdateTx\",\n            \"NameTransferTx\",\n            \"NameRevokeTx\",\n            \"ContractCreateTx\",\n            \"ContractCallTx\",\n            \"GAAttachTx\",\n            \"GAMetaTx\",\n            \"PayingForTx\",\n          ],\n        },\n      },\n    },\n  },\n};\n\nexport const Delegates: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"Delegates\",\n    modelProperties: {\n      initiator: {\n        serializedName: \"initiator\",\n        type: {\n          name: \"Sequence\",\n          element: {\n            type: {\n              name: \"String\",\n            },\n          },\n        },\n      },\n      responder: {\n        serializedName: \"responder\",\n        type: {\n          name: \"Sequence\",\n          element: {\n            type: {\n              name: \"String\",\n            },\n          },\n        },\n      },\n    },\n  },\n};\n\nexport const OffChainUpdate: coreClient.CompositeMapper = {\n  serializedName: \"OffChainUpdate\",\n  type: {\n    name: \"Composite\",\n    className: \"OffChainUpdate\",\n    uberParent: \"OffChainUpdate\",\n    polymorphicDiscriminator: {\n      serializedName: \"op\",\n      clientName: \"op\",\n    },\n    modelProperties: {\n      op: {\n        serializedName: \"op\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const RelativeTTL: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"RelativeTTL\",\n    modelProperties: {\n      type: {\n        defaultValue: \"delta\",\n        isConstant: true,\n        serializedName: \"type\",\n        type: {\n          name: \"String\",\n        },\n      },\n      value: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"value\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const Ttl: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"Ttl\",\n    modelProperties: {\n      type: {\n        serializedName: \"type\",\n        required: true,\n        type: {\n          name: \"Enum\",\n          allowedValues: [\"delta\", \"block\"],\n        },\n      },\n      value: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"value\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const NamePointer: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"NamePointer\",\n    modelProperties: {\n      key: {\n        serializedName: \"key\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      encodedKey: {\n        serializedName: \"encoded_key\",\n        type: {\n          name: \"String\",\n        },\n      },\n      id: {\n        serializedName: \"id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const SignedTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"SignedTx\",\n    modelProperties: {\n      tx: {\n        serializedName: \"tx\",\n        type: {\n          name: \"Composite\",\n          className: \"Tx\",\n        },\n      },\n      blockHeight: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: -1,\n        },\n        serializedName: \"block_height\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      blockHash: {\n        serializedName: \"block_hash\",\n        type: {\n          name: \"String\",\n        },\n      },\n      hash: {\n        serializedName: \"hash\",\n        type: {\n          name: \"String\",\n        },\n      },\n      encodedTx: {\n        serializedName: \"encoded_tx\",\n        type: {\n          name: \"String\",\n        },\n      },\n      signatures: {\n        serializedName: \"signatures\",\n        type: {\n          name: \"Sequence\",\n          element: {\n            type: {\n              name: \"String\",\n            },\n          },\n        },\n      },\n    },\n  },\n};\n\nexport const PaginatedResponse: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"PaginatedResponse\",\n    modelProperties: {\n      next: {\n        serializedName: \"next\",\n        required: true,\n        nullable: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      prev: {\n        serializedName: \"prev\",\n        required: true,\n        nullable: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const ErrorResponse: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"ErrorResponse\",\n    modelProperties: {\n      error: {\n        serializedName: \"error\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const Paths1Q9E32FV3AccountsAccountidAex141TokensGetResponses200ContentApplicationJsonSchemaAllof0: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths1Q9E32FV3AccountsAccountidAex141TokensGetResponses200ContentApplicationJsonSchemaAllof0\",\n      modelProperties: {\n        data: {\n          serializedName: \"data\",\n          required: true,\n          type: {\n            name: \"Sequence\",\n            element: {\n              type: {\n                name: \"Composite\",\n                className: \"Aex141TokenResponse\",\n              },\n            },\n          },\n        },\n      },\n    },\n  };\n\nexport const Aex141TokenResponse: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"Aex141TokenResponse\",\n    modelProperties: {\n      contractId: {\n        constraints: {\n          Pattern: new RegExp(\"^ct_\\\\w{38,50}$\"),\n        },\n        serializedName: \"contract_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      ownerId: {\n        constraints: {\n          Pattern: new RegExp(\"^ak_\\\\w{38,50}$\"),\n        },\n        serializedName: \"owner_id\",\n        type: {\n          name: \"String\",\n        },\n      },\n      tokenId: {\n        serializedName: \"token_id\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const PathsZ92TkfV3AccountsAccountidAex9BalancesGetResponses200ContentApplicationJsonSchemaAllof1: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"PathsZ92TkfV3AccountsAccountidAex9BalancesGetResponses200ContentApplicationJsonSchemaAllof1\",\n      modelProperties: {\n        data: {\n          serializedName: \"data\",\n          required: true,\n          type: {\n            name: \"Sequence\",\n            element: {\n              type: {\n                name: \"Composite\",\n                className: \"Aex9BalanceResponse\",\n              },\n            },\n          },\n        },\n      },\n    },\n  };\n\nexport const Aex9BalanceResponse: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"Aex9BalanceResponse\",\n    modelProperties: {\n      amount: {\n        serializedName: \"amount\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      blockHash: {\n        serializedName: \"block_hash\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      contractId: {\n        constraints: {\n          Pattern: new RegExp(\"^ct_\\\\w{38,50}$\"),\n        },\n        serializedName: \"contract_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      decimals: {\n        serializedName: \"decimals\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      height: {\n        serializedName: \"height\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      tokenName: {\n        serializedName: \"token_name\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      tokenSymbol: {\n        serializedName: \"token_symbol\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      txHash: {\n        constraints: {\n          Pattern: new RegExp(\"^th_\\\\w{38,50}$\"),\n        },\n        serializedName: \"tx_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      txIndex: {\n        serializedName: \"tx_index\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      txType: {\n        serializedName: \"tx_type\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const Paths10R8Q7PV3AccountsAccountidDexSwapsGetResponses200ContentApplicationJsonSchemaAllof0: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths10R8Q7PV3AccountsAccountidDexSwapsGetResponses200ContentApplicationJsonSchemaAllof0\",\n      modelProperties: {\n        data: {\n          serializedName: \"data\",\n          required: true,\n          type: {\n            name: \"Sequence\",\n            element: {\n              type: {\n                name: \"Composite\",\n                className: \"DexSwap\",\n              },\n            },\n          },\n        },\n      },\n    },\n  };\n\nexport const DexSwap: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"DexSwap\",\n    modelProperties: {\n      amounts: {\n        serializedName: \"amounts\",\n        type: {\n          name: \"Composite\",\n          className: \"DexSwapAmounts\",\n        },\n      },\n      action: {\n        serializedName: \"action\",\n        required: true,\n        type: {\n          name: \"Enum\",\n          allowedValues: [\"SWAP\", \"BUY\", \"SELL\"],\n        },\n      },\n      caller: {\n        constraints: {\n          Pattern: new RegExp(\"^ak_\\\\w{38,50}$\"),\n        },\n        serializedName: \"caller\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      fromToken: {\n        serializedName: \"from_token\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      toToken: {\n        serializedName: \"to_token\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      logIdx: {\n        serializedName: \"log_idx\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      toAccount: {\n        constraints: {\n          Pattern: new RegExp(\"^ak_\\\\w{38,50}$\"),\n        },\n        serializedName: \"to_account\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      txHash: {\n        constraints: {\n          Pattern: new RegExp(\"^th_\\\\w{38,50}$\"),\n        },\n        serializedName: \"tx_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      fromContract: {\n        constraints: {\n          Pattern: new RegExp(\"^ct_\\\\w{38,50}$\"),\n        },\n        serializedName: \"from_contract\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      toContract: {\n        constraints: {\n          Pattern: new RegExp(\"^ct_\\\\w{38,50}$\"),\n        },\n        serializedName: \"to_contract\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      fromAmount: {\n        serializedName: \"from_amount\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      toAmount: {\n        serializedName: \"to_amount\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      fromDecimals: {\n        serializedName: \"from_decimals\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      toDecimals: {\n        serializedName: \"to_decimals\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      microTime: {\n        serializedName: \"micro_time\",\n        required: true,\n        type: {\n          name: \"UnixTime\",\n        },\n      },\n      height: {\n        serializedName: \"height\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const DexSwapAmounts: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"DexSwapAmounts\",\n    modelProperties: {\n      amount0In: {\n        serializedName: \"amount0_in\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      amount1In: {\n        serializedName: \"amount1_in\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      amount0Out: {\n        serializedName: \"amount0_out\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      amount1Out: {\n        serializedName: \"amount1_out\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n    },\n  },\n};\n\nexport const Paths16G4GzrV3AccountsAccountidNamesClaimsGetResponses200ContentApplicationJsonSchemaAllof0: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths16G4GzrV3AccountsAccountidNamesClaimsGetResponses200ContentApplicationJsonSchemaAllof0\",\n      modelProperties: {\n        data: {\n          serializedName: \"data\",\n          required: true,\n          type: {\n            name: \"Sequence\",\n            element: {\n              type: {\n                name: \"Composite\",\n                className: \"NameClaim\",\n              },\n            },\n          },\n        },\n      },\n    },\n  };\n\nexport const NameClaim: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"NameClaim\",\n    modelProperties: {\n      activeFrom: {\n        serializedName: \"active_from\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      sourceTxHash: {\n        constraints: {\n          Pattern: new RegExp(\"^th_\\\\w{38,50}$\"),\n        },\n        serializedName: \"source_tx_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      sourceTxType: {\n        serializedName: \"source_tx_type\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      blockHash: {\n        constraints: {\n          Pattern: new RegExp(\"^mh_\\\\w{38,50}$\"),\n        },\n        serializedName: \"block_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      height: {\n        serializedName: \"height\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      tx: {\n        serializedName: \"tx\",\n        type: {\n          name: \"Composite\",\n          className: \"NameClaimTx\",\n        },\n      },\n      internalSource: {\n        serializedName: \"internal_source\",\n        type: {\n          name: \"Boolean\",\n        },\n      },\n    },\n  },\n};\n\nexport const NameClaimTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"NameClaimTx\",\n    modelProperties: {\n      name: {\n        serializedName: \"name\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      nameSalt: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"name_salt\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      nameFee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"name_fee\",\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      fee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      ttl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"ttl\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      accountId: {\n        serializedName: \"account_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      nonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"nonce\",\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const NotFoundResponse: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"NotFoundResponse\",\n    modelProperties: {\n      error: {\n        serializedName: \"error\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const PathsA60QxwV3AccountsAccountidNamesPointeesGetResponses200ContentApplicationJsonSchemaAllof0: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"PathsA60QxwV3AccountsAccountidNamesPointeesGetResponses200ContentApplicationJsonSchemaAllof0\",\n      modelProperties: {\n        data: {\n          serializedName: \"data\",\n          required: true,\n          type: {\n            name: \"Sequence\",\n            element: {\n              type: {\n                name: \"Composite\",\n                className: \"Pointee\",\n              },\n            },\n          },\n        },\n      },\n    },\n  };\n\nexport const Pointee: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"Pointee\",\n    modelProperties: {\n      active: {\n        serializedName: \"active\",\n        required: true,\n        type: {\n          name: \"Boolean\",\n        },\n      },\n      name: {\n        constraints: {\n          Pattern: new RegExp(\"^\\\\w+\\\\.chain$\"),\n        },\n        serializedName: \"name\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      key: {\n        serializedName: \"key\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      blockHash: {\n        constraints: {\n          Pattern: new RegExp(\"^mh_\\\\w{38,50}$\"),\n        },\n        serializedName: \"block_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      tx: {\n        serializedName: \"tx\",\n        type: {\n          name: \"Composite\",\n          className: \"NameUpdateTx\",\n        },\n      },\n      sourceTxType: {\n        serializedName: \"source_tx_type\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      sourceTxHash: {\n        constraints: {\n          Pattern: new RegExp(\"^th_\\\\w{38,50}$\"),\n        },\n        serializedName: \"source_tx_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      blockHeight: {\n        serializedName: \"block_height\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      blockTime: {\n        serializedName: \"block_time\",\n        required: true,\n        type: {\n          name: \"UnixTime\",\n        },\n      },\n    },\n  },\n};\n\nexport const NameUpdateTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"NameUpdateTx\",\n    modelProperties: {\n      nameId: {\n        serializedName: \"name_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      nameTtl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"name_ttl\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      pointers: {\n        serializedName: \"pointers\",\n        required: true,\n        type: {\n          name: \"Sequence\",\n          element: {\n            type: {\n              name: \"Composite\",\n              className: \"NamePointer\",\n            },\n          },\n        },\n      },\n      clientTtl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"client_ttl\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      fee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      ttl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"ttl\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      accountId: {\n        serializedName: \"account_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      nonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"nonce\",\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const PathsXcg812V3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchema: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"PathsXcg812V3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchema\",\n      modelProperties: {\n        contractCreateTx: {\n          serializedName: \"contract_create_tx\",\n          type: {\n            name: \"Composite\",\n            className: \"Get200ApplicationJsonProperties\",\n          },\n        },\n        contractCallTx: {\n          serializedName: \"contract_call_tx\",\n          type: {\n            name: \"Composite\",\n            className:\n              \"PathsEvgmfsV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesContractCallTx\",\n          },\n        },\n        gaAttachTx: {\n          serializedName: \"ga_attach_tx\",\n          type: {\n            name: \"Composite\",\n            className:\n              \"Paths1Mat0BzV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesGaAttachTx\",\n          },\n        },\n        gaMetaTx: {\n          serializedName: \"ga_meta_tx\",\n          type: {\n            name: \"Composite\",\n            className:\n              \"Paths1Smy8TV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesGaMetaTx\",\n          },\n        },\n        channelCloseMutualTx: {\n          serializedName: \"channel_close_mutual_tx\",\n          type: {\n            name: \"Composite\",\n            className:\n              \"PathsTachlnV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesChannelCloseMutualTx\",\n          },\n        },\n        channelCloseSoloTx: {\n          serializedName: \"channel_close_solo_tx\",\n          type: {\n            name: \"Composite\",\n            className:\n              \"Paths1AeqodeV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesChannelCloseSoloTx\",\n          },\n        },\n        channelCreateTx: {\n          serializedName: \"channel_create_tx\",\n          type: {\n            name: \"Composite\",\n            className:\n              \"PathsGp6EyrV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesChannelCreateTx\",\n          },\n        },\n        channelDepositTx: {\n          serializedName: \"channel_deposit_tx\",\n          type: {\n            name: \"Composite\",\n            className:\n              \"Paths10Z6Jt8V3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesChannelDepositTx\",\n          },\n        },\n        channelForceProgressTx: {\n          serializedName: \"channel_force_progress_tx\",\n          type: {\n            name: \"Composite\",\n            className:\n              \"Paths1Jkl3L3V3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesChannelForceProgressTx\",\n          },\n        },\n        channelSetDelegatesTx: {\n          serializedName: \"channel_set_delegates_tx\",\n          type: {\n            name: \"Composite\",\n            className:\n              \"PathsN9Iv8YV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesChannelSetDelegatesTx\",\n          },\n        },\n        channelSettleTx: {\n          serializedName: \"channel_settle_tx\",\n          type: {\n            name: \"Composite\",\n            className:\n              \"PathsCsym65V3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesChannelSettleTx\",\n          },\n        },\n        channelSlashTx: {\n          serializedName: \"channel_slash_tx\",\n          type: {\n            name: \"Composite\",\n            className:\n              \"PathsEwav40V3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesChannelSlashTx\",\n          },\n        },\n        channelSnapshotSoloTx: {\n          serializedName: \"channel_snapshot_solo_tx\",\n          type: {\n            name: \"Composite\",\n            className:\n              \"Paths5Ehb0PV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesChannelSnapshotSoloTx\",\n          },\n        },\n        channelWithdrawTx: {\n          serializedName: \"channel_withdraw_tx\",\n          type: {\n            name: \"Composite\",\n            className:\n              \"Paths1Qk8BkgV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesChannelWithdrawTx\",\n          },\n        },\n        nameClaimTx: {\n          serializedName: \"name_claim_tx\",\n          type: {\n            name: \"Composite\",\n            className:\n              \"PathsC7WhtoV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesNameClaimTx\",\n          },\n        },\n        namePreclaimTx: {\n          serializedName: \"name_preclaim_tx\",\n          type: {\n            name: \"Composite\",\n            className:\n              \"Paths1R4Z885V3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesNamePreclaimTx\",\n          },\n        },\n        nameRevokeTx: {\n          serializedName: \"name_revoke_tx\",\n          type: {\n            name: \"Composite\",\n            className:\n              \"PathsKrpz02V3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesNameRevokeTx\",\n          },\n        },\n        nameTransferTx: {\n          serializedName: \"name_transfer_tx\",\n          type: {\n            name: \"Composite\",\n            className:\n              \"PathsPs07B4V3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesNameTransferTx\",\n          },\n        },\n        nameUpdateTx: {\n          serializedName: \"name_update_tx\",\n          type: {\n            name: \"Composite\",\n            className:\n              \"PathsTug6HrV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesNameUpdateTx\",\n          },\n        },\n        oracleExtendTx: {\n          serializedName: \"oracle_extend_tx\",\n          type: {\n            name: \"Composite\",\n            className:\n              \"Paths17Dchb7V3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesOracleExtendTx\",\n          },\n        },\n        oracleQueryTx: {\n          serializedName: \"oracle_query_tx\",\n          type: {\n            name: \"Composite\",\n            className:\n              \"Paths1Ngkd7FV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesOracleQueryTx\",\n          },\n        },\n        oracleRegisterTx: {\n          serializedName: \"oracle_register_tx\",\n          type: {\n            name: \"Composite\",\n            className:\n              \"PathsMvqgifV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesOracleRegisterTx\",\n          },\n        },\n        oracleResponseTx: {\n          serializedName: \"oracle_response_tx\",\n          type: {\n            name: \"Composite\",\n            className:\n              \"Paths1U2Ve7RV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesOracleResponseTx\",\n          },\n        },\n        payingForTx: {\n          serializedName: \"paying_for_tx\",\n          type: {\n            name: \"Composite\",\n            className:\n              \"Paths1N757S0V3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesPayingForTx\",\n          },\n        },\n        spendTx: {\n          serializedName: \"spend_tx\",\n          type: {\n            name: \"Composite\",\n            className:\n              \"Paths11Bqs5V3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesSpendTx\",\n          },\n        },\n        channelOffchainTx: {\n          serializedName: \"channel_offchain_tx\",\n          type: {\n            name: \"Composite\",\n            className:\n              \"Paths4Pjk8DV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesChannelOffchainTx\",\n          },\n        },\n        total: {\n          serializedName: \"total\",\n          required: true,\n          type: {\n            name: \"Number\",\n          },\n        },\n      },\n    },\n  };\n\nexport const Get200ApplicationJsonProperties: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"Get200ApplicationJsonProperties\",\n    modelProperties: {\n      ownerId: {\n        serializedName: \"owner_id\",\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const PathsEvgmfsV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesContractCallTx: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"PathsEvgmfsV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesContractCallTx\",\n      modelProperties: {\n        contractId: {\n          serializedName: \"contract_id\",\n          type: {\n            name: \"Number\",\n          },\n        },\n        callerId: {\n          serializedName: \"caller_id\",\n          type: {\n            name: \"Number\",\n          },\n        },\n      },\n    },\n  };\n\nexport const Paths1Mat0BzV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesGaAttachTx: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths1Mat0BzV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesGaAttachTx\",\n      modelProperties: {\n        ownerId: {\n          serializedName: \"owner_id\",\n          type: {\n            name: \"Number\",\n          },\n        },\n      },\n    },\n  };\n\nexport const Paths1Smy8TV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesGaMetaTx: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths1Smy8TV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesGaMetaTx\",\n      modelProperties: {\n        gaId: {\n          serializedName: \"ga_id\",\n          type: {\n            name: \"Number\",\n          },\n        },\n      },\n    },\n  };\n\nexport const PathsTachlnV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesChannelCloseMutualTx: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"PathsTachlnV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesChannelCloseMutualTx\",\n      modelProperties: {\n        channelId: {\n          serializedName: \"channel_id\",\n          type: {\n            name: \"Number\",\n          },\n        },\n        fromId: {\n          serializedName: \"from_id\",\n          type: {\n            name: \"Number\",\n          },\n        },\n      },\n    },\n  };\n\nexport const Paths1AeqodeV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesChannelCloseSoloTx: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths1AeqodeV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesChannelCloseSoloTx\",\n      modelProperties: {\n        channelId: {\n          serializedName: \"channel_id\",\n          type: {\n            name: \"Number\",\n          },\n        },\n        fromId: {\n          serializedName: \"from_id\",\n          type: {\n            name: \"Number\",\n          },\n        },\n      },\n    },\n  };\n\nexport const PathsGp6EyrV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesChannelCreateTx: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"PathsGp6EyrV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesChannelCreateTx\",\n      modelProperties: {\n        initiatorId: {\n          serializedName: \"initiator_id\",\n          type: {\n            name: \"Number\",\n          },\n        },\n        responderId: {\n          serializedName: \"responder_id\",\n          type: {\n            name: \"Number\",\n          },\n        },\n      },\n    },\n  };\n\nexport const Paths10Z6Jt8V3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesChannelDepositTx: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths10Z6Jt8V3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesChannelDepositTx\",\n      modelProperties: {\n        channelId: {\n          serializedName: \"channel_id\",\n          type: {\n            name: \"Number\",\n          },\n        },\n        fromId: {\n          serializedName: \"from_id\",\n          type: {\n            name: \"Number\",\n          },\n        },\n      },\n    },\n  };\n\nexport const Paths1Jkl3L3V3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesChannelForceProgressTx: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths1Jkl3L3V3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesChannelForceProgressTx\",\n      modelProperties: {\n        channelId: {\n          serializedName: \"channel_id\",\n          type: {\n            name: \"Number\",\n          },\n        },\n        fromId: {\n          serializedName: \"from_id\",\n          type: {\n            name: \"Number\",\n          },\n        },\n      },\n    },\n  };\n\nexport const PathsN9Iv8YV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesChannelSetDelegatesTx: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"PathsN9Iv8YV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesChannelSetDelegatesTx\",\n      modelProperties: {\n        channelId: {\n          serializedName: \"channel_id\",\n          type: {\n            name: \"Number\",\n          },\n        },\n        fromId: {\n          serializedName: \"from_id\",\n          type: {\n            name: \"Number\",\n          },\n        },\n      },\n    },\n  };\n\nexport const PathsCsym65V3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesChannelSettleTx: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"PathsCsym65V3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesChannelSettleTx\",\n      modelProperties: {\n        channelId: {\n          serializedName: \"channel_id\",\n          type: {\n            name: \"Number\",\n          },\n        },\n        fromId: {\n          serializedName: \"from_id\",\n          type: {\n            name: \"Number\",\n          },\n        },\n      },\n    },\n  };\n\nexport const PathsEwav40V3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesChannelSlashTx: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"PathsEwav40V3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesChannelSlashTx\",\n      modelProperties: {\n        channelId: {\n          serializedName: \"channel_id\",\n          type: {\n            name: \"Number\",\n          },\n        },\n        fromId: {\n          serializedName: \"from_id\",\n          type: {\n            name: \"Number\",\n          },\n        },\n      },\n    },\n  };\n\nexport const Paths5Ehb0PV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesChannelSnapshotSoloTx: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths5Ehb0PV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesChannelSnapshotSoloTx\",\n      modelProperties: {\n        channelId: {\n          serializedName: \"channel_id\",\n          type: {\n            name: \"Number\",\n          },\n        },\n        fromId: {\n          serializedName: \"from_id\",\n          type: {\n            name: \"Number\",\n          },\n        },\n      },\n    },\n  };\n\nexport const Paths1Qk8BkgV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesChannelWithdrawTx: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths1Qk8BkgV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesChannelWithdrawTx\",\n      modelProperties: {\n        channelId: {\n          serializedName: \"channel_id\",\n          type: {\n            name: \"Number\",\n          },\n        },\n        toId: {\n          serializedName: \"to_id\",\n          type: {\n            name: \"Number\",\n          },\n        },\n      },\n    },\n  };\n\nexport const PathsC7WhtoV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesNameClaimTx: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"PathsC7WhtoV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesNameClaimTx\",\n      modelProperties: {\n        accountId: {\n          serializedName: \"account_id\",\n          type: {\n            name: \"Number\",\n          },\n        },\n      },\n    },\n  };\n\nexport const Paths1R4Z885V3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesNamePreclaimTx: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths1R4Z885V3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesNamePreclaimTx\",\n      modelProperties: {\n        accountId: {\n          serializedName: \"account_id\",\n          type: {\n            name: \"Number\",\n          },\n        },\n        commitmentId: {\n          serializedName: \"commitment_id\",\n          type: {\n            name: \"Number\",\n          },\n        },\n      },\n    },\n  };\n\nexport const PathsKrpz02V3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesNameRevokeTx: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"PathsKrpz02V3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesNameRevokeTx\",\n      modelProperties: {\n        accountId: {\n          serializedName: \"account_id\",\n          type: {\n            name: \"Number\",\n          },\n        },\n        nameId: {\n          serializedName: \"name_id\",\n          type: {\n            name: \"Number\",\n          },\n        },\n      },\n    },\n  };\n\nexport const PathsPs07B4V3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesNameTransferTx: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"PathsPs07B4V3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesNameTransferTx\",\n      modelProperties: {\n        recipientId: {\n          serializedName: \"recipient_id\",\n          type: {\n            name: \"Number\",\n          },\n        },\n        accountId: {\n          serializedName: \"account_id\",\n          type: {\n            name: \"Number\",\n          },\n        },\n        nameId: {\n          serializedName: \"name_id\",\n          type: {\n            name: \"Number\",\n          },\n        },\n      },\n    },\n  };\n\nexport const PathsTug6HrV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesNameUpdateTx: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"PathsTug6HrV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesNameUpdateTx\",\n      modelProperties: {\n        accountId: {\n          serializedName: \"account_id\",\n          type: {\n            name: \"Number\",\n          },\n        },\n        nameId: {\n          serializedName: \"name_id\",\n          type: {\n            name: \"Number\",\n          },\n        },\n      },\n    },\n  };\n\nexport const Paths17Dchb7V3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesOracleExtendTx: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths17Dchb7V3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesOracleExtendTx\",\n      modelProperties: {\n        oracleId: {\n          serializedName: \"oracle_id\",\n          type: {\n            name: \"Number\",\n          },\n        },\n      },\n    },\n  };\n\nexport const Paths1Ngkd7FV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesOracleQueryTx: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths1Ngkd7FV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesOracleQueryTx\",\n      modelProperties: {\n        senderId: {\n          serializedName: \"sender_id\",\n          type: {\n            name: \"Number\",\n          },\n        },\n        oracleId: {\n          serializedName: \"oracle_id\",\n          type: {\n            name: \"Number\",\n          },\n        },\n      },\n    },\n  };\n\nexport const PathsMvqgifV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesOracleRegisterTx: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"PathsMvqgifV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesOracleRegisterTx\",\n      modelProperties: {\n        accountId: {\n          serializedName: \"account_id\",\n          type: {\n            name: \"Number\",\n          },\n        },\n      },\n    },\n  };\n\nexport const Paths1U2Ve7RV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesOracleResponseTx: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths1U2Ve7RV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesOracleResponseTx\",\n      modelProperties: {\n        oracleId: {\n          serializedName: \"oracle_id\",\n          type: {\n            name: \"Number\",\n          },\n        },\n      },\n    },\n  };\n\nexport const Paths1N757S0V3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesPayingForTx: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths1N757S0V3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesPayingForTx\",\n      modelProperties: {\n        payerId: {\n          serializedName: \"payer_id\",\n          type: {\n            name: \"Number\",\n          },\n        },\n      },\n    },\n  };\n\nexport const Paths11Bqs5V3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesSpendTx: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths11Bqs5V3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesSpendTx\",\n      modelProperties: {\n        senderId: {\n          serializedName: \"sender_id\",\n          type: {\n            name: \"Number\",\n          },\n        },\n        recipientId: {\n          serializedName: \"recipient_id\",\n          type: {\n            name: \"Number\",\n          },\n        },\n      },\n    },\n  };\n\nexport const Paths4Pjk8DV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesChannelOffchainTx: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths4Pjk8DV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesChannelOffchainTx\",\n      modelProperties: {\n        channelId: {\n          serializedName: \"channel_id\",\n          type: {\n            name: \"Number\",\n          },\n        },\n      },\n    },\n  };\n\nexport const Paths8I0YgwV3Aex141GetResponses200ContentApplicationJsonSchemaAllof0: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths8I0YgwV3Aex141GetResponses200ContentApplicationJsonSchemaAllof0\",\n      modelProperties: {\n        data: {\n          serializedName: \"data\",\n          required: true,\n          type: {\n            name: \"Sequence\",\n            element: {\n              type: {\n                name: \"Composite\",\n                className: \"Aex141Response\",\n              },\n            },\n          },\n        },\n      },\n    },\n  };\n\nexport const Aex141Response: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"Aex141Response\",\n    modelProperties: {\n      baseUrl: {\n        serializedName: \"base_url\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      contractId: {\n        constraints: {\n          Pattern: new RegExp(\"^ct_\\\\w{38,50}$\"),\n        },\n        serializedName: \"contract_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      contractTxHash: {\n        constraints: {\n          Pattern: new RegExp(\"^th_\\\\w{38,50}$\"),\n        },\n        serializedName: \"contract_tx_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      extensions: {\n        serializedName: \"extensions\",\n        required: true,\n        type: {\n          name: \"Sequence\",\n          element: {\n            type: {\n              name: \"String\",\n            },\n          },\n        },\n      },\n      limits: {\n        serializedName: \"limits\",\n        required: true,\n        type: {\n          name: \"Dictionary\",\n          value: { type: { name: \"any\" } },\n        },\n      },\n      invalid: {\n        serializedName: \"invalid\",\n        required: true,\n        type: {\n          name: \"Boolean\",\n        },\n      },\n      creationTime: {\n        serializedName: \"creation_time\",\n        required: true,\n        type: {\n          name: \"UnixTime\",\n        },\n      },\n      blockHeight: {\n        serializedName: \"block_height\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const PathsWkpcwaV3Aex141ContractidTemplatesGetResponses200ContentApplicationJsonSchemaAllof0: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"PathsWkpcwaV3Aex141ContractidTemplatesGetResponses200ContentApplicationJsonSchemaAllof0\",\n      modelProperties: {\n        data: {\n          serializedName: \"data\",\n          required: true,\n          type: {\n            name: \"Sequence\",\n            element: {\n              type: {\n                name: \"Composite\",\n                className: \"Aex141TemplatesResponse\",\n              },\n            },\n          },\n        },\n      },\n    },\n  };\n\nexport const Aex141TemplatesResponse: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"Aex141TemplatesResponse\",\n    modelProperties: {\n      contractId: {\n        constraints: {\n          Pattern: new RegExp(\"^ct_\\\\w{38,50}$\"),\n        },\n        serializedName: \"contract_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      edition: {\n        serializedName: \"edition\",\n        type: {\n          name: \"Dictionary\",\n          value: { type: { name: \"any\" } },\n        },\n      },\n      logIdx: {\n        serializedName: \"log_idx\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      templateId: {\n        serializedName: \"template_id\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      txHash: {\n        constraints: {\n          Pattern: new RegExp(\"^th_\\\\w{38,50}$\"),\n        },\n        serializedName: \"tx_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const PathsRay4X0V3Aex141ContractidTemplatesTemplateidTokensGetResponses200ContentApplicationJsonSchemaAllof0: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"PathsRay4X0V3Aex141ContractidTemplatesTemplateidTokensGetResponses200ContentApplicationJsonSchemaAllof0\",\n      modelProperties: {\n        data: {\n          serializedName: \"data\",\n          required: true,\n          type: {\n            name: \"Sequence\",\n            element: {\n              type: {\n                name: \"Composite\",\n                className: \"Aex141TemplateTokensResponse\",\n              },\n            },\n          },\n        },\n      },\n    },\n  };\n\nexport const Aex141TemplateTokensResponse: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"Aex141TemplateTokensResponse\",\n    modelProperties: {\n      ownerId: {\n        constraints: {\n          Pattern: new RegExp(\"^ak_\\\\w{38,50}$\"),\n        },\n        serializedName: \"owner_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      logIdx: {\n        serializedName: \"log_idx\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      tokenId: {\n        serializedName: \"token_id\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      txHash: {\n        constraints: {\n          Pattern: new RegExp(\"^th_\\\\w{38,50}$\"),\n        },\n        serializedName: \"tx_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const Paths1TkisghV3Aex141ContractidTokensGetResponses200ContentApplicationJsonSchemaAllof0: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths1TkisghV3Aex141ContractidTokensGetResponses200ContentApplicationJsonSchemaAllof0\",\n      modelProperties: {\n        data: {\n          serializedName: \"data\",\n          required: true,\n          type: {\n            name: \"Sequence\",\n            element: {\n              type: {\n                name: \"Composite\",\n                className: \"Aex141TokenResponse\",\n              },\n            },\n          },\n        },\n      },\n    },\n  };\n\nexport const Aex141TokenDetailResponse: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"Aex141TokenDetailResponse\",\n    modelProperties: {\n      contractId: {\n        constraints: {\n          Pattern: new RegExp(\"^ct_\\\\w{38,50}$\"),\n        },\n        serializedName: \"contract_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      ownerId: {\n        constraints: {\n          Pattern: new RegExp(\"^ak_\\\\w{38,50}$\"),\n        },\n        serializedName: \"owner_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      tokenId: {\n        serializedName: \"token_id\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      metadata: {\n        serializedName: \"metadata\",\n        required: true,\n        type: {\n          name: \"Dictionary\",\n          value: { type: { name: \"any\" } },\n        },\n      },\n    },\n  },\n};\n\nexport const Paths1A8Ah39V3Aex141ContractidTransfersGetResponses200ContentApplicationJsonSchemaAllof0: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths1A8Ah39V3Aex141ContractidTransfersGetResponses200ContentApplicationJsonSchemaAllof0\",\n      modelProperties: {\n        data: {\n          serializedName: \"data\",\n          required: true,\n          type: {\n            name: \"Sequence\",\n            element: {\n              type: {\n                name: \"Composite\",\n                className: \"Aex141TransferEvent\",\n              },\n            },\n          },\n        },\n      },\n    },\n  };\n\nexport const Aex141TransferEvent: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"Aex141TransferEvent\",\n    modelProperties: {\n      blockHeight: {\n        serializedName: \"block_height\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      contractId: {\n        constraints: {\n          Pattern: new RegExp(\"^ct_\\\\w{38,50}$\"),\n        },\n        serializedName: \"contract_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      logIdx: {\n        serializedName: \"log_idx\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      microIndex: {\n        serializedName: \"micro_index\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      microTime: {\n        serializedName: \"micro_time\",\n        required: true,\n        type: {\n          name: \"UnixTime\",\n        },\n      },\n      recipient: {\n        constraints: {\n          Pattern: new RegExp(\"^ak_\\\\w{38,50}$\"),\n        },\n        serializedName: \"recipient\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      sender: {\n        constraints: {\n          Pattern: new RegExp(\"^ak_\\\\w{38,50}$\"),\n        },\n        serializedName: \"sender\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      tokenId: {\n        serializedName: \"token_id\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      txHash: {\n        constraints: {\n          Pattern: new RegExp(\"^th_\\\\w{38,50}$\"),\n        },\n        serializedName: \"tx_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const Paths1Uqqby0V3Aex9GetResponses200ContentApplicationJsonSchemaAllof0: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths1Uqqby0V3Aex9GetResponses200ContentApplicationJsonSchemaAllof0\",\n      modelProperties: {\n        data: {\n          serializedName: \"data\",\n          required: true,\n          type: {\n            name: \"Sequence\",\n            element: {\n              type: {\n                name: \"Composite\",\n                className: \"Aex9Response\",\n              },\n            },\n          },\n        },\n      },\n    },\n  };\n\nexport const Aex9Response: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"Aex9Response\",\n    modelProperties: {\n      contractId: {\n        constraints: {\n          Pattern: new RegExp(\"^ct_\\\\w{38,50}$\"),\n        },\n        serializedName: \"contract_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      contractTxHash: {\n        constraints: {\n          Pattern: new RegExp(\"^th_\\\\w{38,50}$\"),\n        },\n        serializedName: \"contract_tx_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      initialSupply: {\n        serializedName: \"initial_supply\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      eventSupply: {\n        serializedName: \"event_supply\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      decimals: {\n        serializedName: \"decimals\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      extensions: {\n        serializedName: \"extensions\",\n        type: {\n          name: \"Sequence\",\n          element: {\n            type: {\n              name: \"String\",\n            },\n          },\n        },\n      },\n      holders: {\n        serializedName: \"holders\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      name: {\n        serializedName: \"name\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      symbol: {\n        serializedName: \"symbol\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      invalid: {\n        serializedName: \"invalid\",\n        required: true,\n        type: {\n          name: \"Boolean\",\n        },\n      },\n    },\n  },\n};\n\nexport const Paths19IxhsmV3Aex9CountGetResponses200ContentApplicationJsonSchema: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths19IxhsmV3Aex9CountGetResponses200ContentApplicationJsonSchema\",\n      modelProperties: {\n        data: {\n          serializedName: \"data\",\n          required: true,\n          type: {\n            name: \"Number\",\n          },\n        },\n      },\n    },\n  };\n\nexport const PathsEeiffwV3Aex9ContractidBalancesGetResponses200ContentApplicationJsonSchemaAllof0: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"PathsEeiffwV3Aex9ContractidBalancesGetResponses200ContentApplicationJsonSchemaAllof0\",\n      modelProperties: {\n        data: {\n          serializedName: \"data\",\n          required: true,\n          type: {\n            name: \"Sequence\",\n            element: {\n              type: {\n                name: \"Composite\",\n                className: \"Aex9ContractBalanceResponse\",\n              },\n            },\n          },\n        },\n      },\n    },\n  };\n\nexport const Aex9ContractBalanceResponse: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"Aex9ContractBalanceResponse\",\n    modelProperties: {\n      accountId: {\n        constraints: {\n          Pattern: new RegExp(\"^ak_\\\\w{38,50}$\"),\n        },\n        serializedName: \"account_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      amount: {\n        serializedName: \"amount\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      blockHash: {\n        serializedName: \"block_hash\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      contractId: {\n        serializedName: \"contract_id\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      height: {\n        serializedName: \"height\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      lastTxHash: {\n        constraints: {\n          Pattern: new RegExp(\"^th_\\\\w{38,50}$\"),\n        },\n        serializedName: \"last_tx_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      lastLogIdx: {\n        serializedName: \"last_log_idx\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const PathsKr825V3Aex9ContractidBalancesAccountidGetResponses200ContentApplicationJsonSchema: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"PathsKr825V3Aex9ContractidBalancesAccountidGetResponses200ContentApplicationJsonSchema\",\n      modelProperties: {\n        account: {\n          constraints: {\n            Pattern: new RegExp(\"^ak_\\\\w{38,50}$\"),\n          },\n          serializedName: \"account\",\n          required: true,\n          type: {\n            name: \"String\",\n          },\n        },\n        amount: {\n          serializedName: \"amount\",\n          required: true,\n          type: {\n            // @ts-expect-error we are extending autorest with BigInt support\n            name: \"BigInt\",\n          },\n        },\n        contract: {\n          constraints: {\n            Pattern: new RegExp(\"^ct_\\\\w{38,50}$\"),\n          },\n          serializedName: \"contract\",\n          required: true,\n          type: {\n            name: \"String\",\n          },\n        },\n      },\n    },\n  };\n\nexport const Paths108B3VtV3Aex9ContractidBalancesAccountidHistoryGetResponses200ContentApplicationJsonSchemaAllof1: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths108B3VtV3Aex9ContractidBalancesAccountidHistoryGetResponses200ContentApplicationJsonSchemaAllof1\",\n      modelProperties: {\n        data: {\n          serializedName: \"data\",\n          required: true,\n          type: {\n            name: \"Sequence\",\n            element: {\n              type: {\n                name: \"Composite\",\n                className: \"Get200ApplicationJsonAllOfPropertiesItemsItem\",\n              },\n            },\n          },\n        },\n      },\n    },\n  };\n\nexport const Get200ApplicationJsonAllOfPropertiesItemsItem: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className: \"Get200ApplicationJsonAllOfPropertiesItemsItem\",\n      modelProperties: {\n        account: {\n          constraints: {\n            Pattern: new RegExp(\"^ak_\\\\w{38,50}$\"),\n          },\n          serializedName: \"account\",\n          required: true,\n          type: {\n            name: \"String\",\n          },\n        },\n        amount: {\n          serializedName: \"amount\",\n          required: true,\n          type: {\n            // @ts-expect-error we are extending autorest with BigInt support\n            name: \"BigInt\",\n          },\n        },\n        contract: {\n          constraints: {\n            Pattern: new RegExp(\"^ct_\\\\w{38,50}$\"),\n          },\n          serializedName: \"contract\",\n          required: true,\n          type: {\n            name: \"String\",\n          },\n        },\n        height: {\n          serializedName: \"height\",\n          required: true,\n          type: {\n            name: \"Number\",\n          },\n        },\n      },\n    },\n  };\n\nexport const PathsQmewnaV3ChannelsGetResponses200ContentApplicationJsonSchemaAllof0: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"PathsQmewnaV3ChannelsGetResponses200ContentApplicationJsonSchemaAllof0\",\n      modelProperties: {\n        data: {\n          serializedName: \"data\",\n          required: true,\n          type: {\n            name: \"Sequence\",\n            element: {\n              type: {\n                name: \"Composite\",\n                className: \"Channel\",\n              },\n            },\n          },\n        },\n      },\n    },\n  };\n\nexport const Channel: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"Channel\",\n    modelProperties: {\n      active: {\n        serializedName: \"active\",\n        required: true,\n        type: {\n          name: \"Boolean\",\n        },\n      },\n      amount: {\n        serializedName: \"amount\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      channel: {\n        constraints: {\n          Pattern: new RegExp(\"^ch_\\\\w{38,50}$\"),\n        },\n        serializedName: \"channel\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      channelReserve: {\n        serializedName: \"channel_reserve\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      delegateIds: {\n        serializedName: \"delegate_ids\",\n        required: true,\n        type: {\n          name: \"Dictionary\",\n          value: { type: { name: \"any\" } },\n        },\n      },\n      initiator: {\n        constraints: {\n          Pattern: new RegExp(\"^ak_\\\\w{38,50}$\"),\n        },\n        serializedName: \"initiator\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      initiatorAmount: {\n        serializedName: \"initiator_amount\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      lastUpdatedHeight: {\n        serializedName: \"last_updated_height\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      lastUpdatedTxType: {\n        serializedName: \"last_updated_tx_type\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      lastUpdatedTime: {\n        serializedName: \"last_updated_time\",\n        required: true,\n        type: {\n          name: \"UnixTime\",\n        },\n      },\n      lastUpdatedTxHash: {\n        constraints: {\n          Pattern: new RegExp(\"^th_\\\\w{38,50}$\"),\n        },\n        serializedName: \"last_updated_tx_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      lockPeriod: {\n        serializedName: \"lock_period\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      lockedUntil: {\n        serializedName: \"locked_until\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      responder: {\n        constraints: {\n          Pattern: new RegExp(\"^ak_\\\\w{38,50}$\"),\n        },\n        serializedName: \"responder\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      responderAmount: {\n        serializedName: \"responder_amount\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      round: {\n        serializedName: \"round\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      soloRound: {\n        serializedName: \"solo_round\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      stateHash: {\n        constraints: {\n          Pattern: new RegExp(\"^st_\\\\w+$\"),\n        },\n        serializedName: \"state_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      updatesCount: {\n        serializedName: \"updates_count\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const Paths18L84JcV3ContractsCallsGetResponses200ContentApplicationJsonSchemaAllof0: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths18L84JcV3ContractsCallsGetResponses200ContentApplicationJsonSchemaAllof0\",\n      modelProperties: {\n        data: {\n          serializedName: \"data\",\n          required: true,\n          type: {\n            name: \"Sequence\",\n            element: {\n              type: {\n                name: \"Composite\",\n                className: \"ContractCall\",\n              },\n            },\n          },\n        },\n      },\n    },\n  };\n\nexport const ContractCall: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"ContractCall\",\n    modelProperties: {\n      blockHash: {\n        constraints: {\n          Pattern: new RegExp(\"^mh_\\\\w{38,50}$\"),\n        },\n        serializedName: \"block_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      callTxHash: {\n        constraints: {\n          Pattern: new RegExp(\"^th_\\\\w{38,50}$\"),\n        },\n        serializedName: \"call_tx_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      contractId: {\n        constraints: {\n          Pattern: new RegExp(\"^ct_\\\\w{38,50}$\"),\n        },\n        serializedName: \"contract_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      contractTxHash: {\n        constraints: {\n          Pattern: new RegExp(\"^th_\\\\w{38,50}$\"),\n        },\n        serializedName: \"contract_tx_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      function: {\n        serializedName: \"function\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      height: {\n        serializedName: \"height\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      internalTx: {\n        serializedName: \"internal_tx\",\n        required: true,\n        type: {\n          name: \"Dictionary\",\n          value: { type: { name: \"any\" } },\n        },\n      },\n      localIdx: {\n        serializedName: \"local_idx\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      microIndex: {\n        serializedName: \"micro_index\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const Paths10Kk1UxV3ContractsLogsGetResponses200ContentApplicationJsonSchemaAllof0: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths10Kk1UxV3ContractsLogsGetResponses200ContentApplicationJsonSchemaAllof0\",\n      modelProperties: {\n        data: {\n          serializedName: \"data\",\n          required: true,\n          type: {\n            name: \"Sequence\",\n            element: {\n              type: {\n                name: \"Composite\",\n                className: \"ContractLog\",\n              },\n            },\n          },\n        },\n      },\n    },\n  };\n\nexport const ContractLog: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"ContractLog\",\n    modelProperties: {\n      args: {\n        serializedName: \"args\",\n        required: true,\n        type: {\n          name: \"Sequence\",\n          element: {\n            type: {\n              name: \"String\",\n            },\n          },\n        },\n      },\n      blockHash: {\n        constraints: {\n          Pattern: new RegExp(\"^mh_\\\\w{38,50}$\"),\n        },\n        serializedName: \"block_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      blockTime: {\n        serializedName: \"block_time\",\n        required: true,\n        type: {\n          name: \"UnixTime\",\n        },\n      },\n      callTxHash: {\n        constraints: {\n          Pattern: new RegExp(\"^th_\\\\w{38,50}$\"),\n        },\n        serializedName: \"call_tx_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      contractId: {\n        constraints: {\n          Pattern: new RegExp(\"^ct_\\\\w{38,50}$\"),\n        },\n        serializedName: \"contract_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      contractTxHash: {\n        constraints: {\n          Pattern: new RegExp(\"^th_\\\\w{38,50}$\"),\n        },\n        serializedName: \"contract_tx_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      data: {\n        serializedName: \"data\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      eventHash: {\n        serializedName: \"event_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      eventName: {\n        serializedName: \"event_name\",\n        required: true,\n        nullable: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      extCallerContractId: {\n        constraints: {\n          Pattern: new RegExp(\"^ct_\\\\w{38,50}$\"),\n        },\n        serializedName: \"ext_caller_contract_id\",\n        required: true,\n        nullable: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      extCallerContractTxHash: {\n        constraints: {\n          Pattern: new RegExp(\"^th_\\\\w{38,50}$\"),\n        },\n        serializedName: \"ext_caller_contract_tx_hash\",\n        required: true,\n        nullable: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      height: {\n        serializedName: \"height\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      logIdx: {\n        serializedName: \"log_idx\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      microIndex: {\n        serializedName: \"micro_index\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      parentContractId: {\n        serializedName: \"parent_contract_id\",\n        required: true,\n        nullable: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const Contract: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"Contract\",\n    modelProperties: {\n      aexnType: {\n        serializedName: \"aexn_type\",\n        required: true,\n        nullable: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      blockHash: {\n        constraints: {\n          Pattern: new RegExp(\"^mh_\\\\w{38,50}$\"),\n        },\n        serializedName: \"block_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      contract: {\n        constraints: {\n          Pattern: new RegExp(\"^ct_\\\\w{38,50}$\"),\n        },\n        serializedName: \"contract\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      sourceTxHash: {\n        constraints: {\n          Pattern: new RegExp(\"^th_\\\\w{38,50}$\"),\n        },\n        serializedName: \"source_tx_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      sourceTxType: {\n        serializedName: \"source_tx_type\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      createTx: {\n        serializedName: \"create_tx\",\n        type: {\n          name: \"Composite\",\n          className: \"ContractCreateTx\",\n        },\n      },\n    },\n  },\n};\n\nexport const ContractCreateTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"ContractCreateTx\",\n    modelProperties: {\n      ownerId: {\n        serializedName: \"owner_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      nonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"nonce\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      code: {\n        serializedName: \"code\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      vmVersion: {\n        constraints: {\n          InclusiveMaximum: 65535,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"vm_version\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      abiVersion: {\n        constraints: {\n          InclusiveMaximum: 65535,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"abi_version\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      deposit: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"deposit\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      amount: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"amount\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      gas: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"gas\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      gasPrice: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"gas_price\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      fee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      ttl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"ttl\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      callData: {\n        serializedName: \"call_data\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const Paths9Yfxl2V3DexSwapsGetResponses200ContentApplicationJsonSchemaAllof0: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths9Yfxl2V3DexSwapsGetResponses200ContentApplicationJsonSchemaAllof0\",\n      modelProperties: {\n        data: {\n          serializedName: \"data\",\n          required: true,\n          type: {\n            name: \"Sequence\",\n            element: {\n              type: {\n                name: \"Composite\",\n                className: \"DexSwap\",\n              },\n            },\n          },\n        },\n      },\n    },\n  };\n\nexport const Paths6Vze8ZV3DexContractIdSwapsGetResponses200ContentApplicationJsonSchemaAllof0: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths6Vze8ZV3DexContractIdSwapsGetResponses200ContentApplicationJsonSchemaAllof0\",\n      modelProperties: {\n        data: {\n          serializedName: \"data\",\n          required: true,\n          type: {\n            name: \"Sequence\",\n            element: {\n              type: {\n                name: \"Composite\",\n                className: \"DexSwap\",\n              },\n            },\n          },\n        },\n      },\n    },\n  };\n\nexport const Paths1F8GzwrV3HyperchainEpochsGetResponses200ContentApplicationJsonSchemaAllof0: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths1F8GzwrV3HyperchainEpochsGetResponses200ContentApplicationJsonSchemaAllof0\",\n      modelProperties: {\n        data: {\n          serializedName: \"data\",\n          required: true,\n          type: {\n            name: \"Sequence\",\n            element: {\n              type: {\n                name: \"Composite\",\n                className: \"EpochInfo\",\n              },\n            },\n          },\n        },\n      },\n    },\n  };\n\nexport const EpochInfo: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"EpochInfo\",\n    modelProperties: {\n      epoch: {\n        serializedName: \"epoch\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      first: {\n        serializedName: \"first\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      last: {\n        serializedName: \"last\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      length: {\n        serializedName: \"length\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      seed: {\n        serializedName: \"seed\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      lastPinHeight: {\n        serializedName: \"last_pin_height\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      parentBlockHash: {\n        serializedName: \"parent_block_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      lastLeader: {\n        serializedName: \"last_leader\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      epochStartTime: {\n        serializedName: \"epoch_start_time\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      validators: {\n        serializedName: \"validators\",\n        required: true,\n        type: {\n          name: \"Sequence\",\n          element: {\n            type: {\n              name: \"Composite\",\n              className: \"EpochInfoValidatorsItem\",\n            },\n          },\n        },\n      },\n    },\n  },\n};\n\nexport const EpochInfoValidatorsItem: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"EpochInfoValidatorsItem\",\n    modelProperties: {\n      validator: {\n        serializedName: \"validator\",\n        type: {\n          name: \"String\",\n        },\n      },\n      stake: {\n        serializedName: \"stake\",\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const Paths7W5O80V3HyperchainScheduleGetResponses200ContentApplicationJsonSchemaAllof0: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths7W5O80V3HyperchainScheduleGetResponses200ContentApplicationJsonSchemaAllof0\",\n      modelProperties: {\n        data: {\n          serializedName: \"data\",\n          required: true,\n          type: {\n            name: \"Sequence\",\n            element: {\n              type: {\n                name: \"Composite\",\n                className: \"Schedule\",\n              },\n            },\n          },\n        },\n      },\n    },\n  };\n\nexport const Schedule: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"Schedule\",\n    modelProperties: {\n      height: {\n        serializedName: \"height\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      leader: {\n        serializedName: \"leader\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const Paths1Qg7SclV3HyperchainValidatorsGetResponses200ContentApplicationJsonSchemaAllof0: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths1Qg7SclV3HyperchainValidatorsGetResponses200ContentApplicationJsonSchemaAllof0\",\n      modelProperties: {\n        data: {\n          serializedName: \"data\",\n          required: true,\n          type: {\n            name: \"Sequence\",\n            element: {\n              type: {\n                name: \"Composite\",\n                className: \"Validator\",\n              },\n            },\n          },\n        },\n      },\n    },\n  };\n\nexport const Validator: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"Validator\",\n    modelProperties: {\n      epoch: {\n        serializedName: \"epoch\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      validator: {\n        serializedName: \"validator\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      totalStakes: {\n        serializedName: \"total_stakes\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      delegates: {\n        serializedName: \"delegates\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      rewardsEarned: {\n        serializedName: \"rewards_earned\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      pinningHistory: {\n        serializedName: \"pinning_history\",\n        required: true,\n        type: {\n          name: \"Dictionary\",\n          value: { type: { name: \"Number\" } },\n        },\n      },\n    },\n  },\n};\n\nexport const Paths7Ks32NV3HyperchainValidatorsValidatorDelegatesGetResponses200ContentApplicationJsonSchemaAllof0: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths7Ks32NV3HyperchainValidatorsValidatorDelegatesGetResponses200ContentApplicationJsonSchemaAllof0\",\n      modelProperties: {\n        data: {\n          serializedName: \"data\",\n          required: true,\n          type: {\n            name: \"Sequence\",\n            element: {\n              type: {\n                name: \"Composite\",\n                className: \"Delegate\",\n              },\n            },\n          },\n        },\n      },\n    },\n  };\n\nexport const Delegate: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"Delegate\",\n    modelProperties: {\n      epoch: {\n        serializedName: \"epoch\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      delegate: {\n        serializedName: \"delegate\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      stake: {\n        serializedName: \"stake\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      validator: {\n        serializedName: \"validator\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const PathsDwhnfdV3HyperchainValidatorsValidatorDelegatesTopGetResponses200ContentApplicationJsonSchemaAllof0: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"PathsDwhnfdV3HyperchainValidatorsValidatorDelegatesTopGetResponses200ContentApplicationJsonSchemaAllof0\",\n      modelProperties: {\n        data: {\n          serializedName: \"data\",\n          required: true,\n          type: {\n            name: \"Sequence\",\n            element: {\n              type: {\n                name: \"Composite\",\n                className: \"Delegate\",\n              },\n            },\n          },\n        },\n      },\n    },\n  };\n\nexport const PathsEue6HzV3KeyBlocksGetResponses200ContentApplicationJsonSchemaAllof0: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"PathsEue6HzV3KeyBlocksGetResponses200ContentApplicationJsonSchemaAllof0\",\n      modelProperties: {\n        data: {\n          serializedName: \"data\",\n          required: true,\n          type: {\n            name: \"Sequence\",\n            element: {\n              type: {\n                name: \"Composite\",\n                className: \"KeyBlockExtended\",\n              },\n            },\n          },\n        },\n      },\n    },\n  };\n\nexport const KeyBlock: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"KeyBlock\",\n    modelProperties: {\n      hash: {\n        serializedName: \"hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      height: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"height\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      prevHash: {\n        serializedName: \"prev_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      prevKeyHash: {\n        serializedName: \"prev_key_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      stateHash: {\n        serializedName: \"state_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      miner: {\n        serializedName: \"miner\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      beneficiary: {\n        serializedName: \"beneficiary\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      target: {\n        constraints: {\n          InclusiveMaximum: 4294967295,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"target\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      pow: {\n        constraints: {\n          MinItems: 42,\n          MaxItems: 42,\n        },\n        serializedName: \"pow\",\n        type: {\n          name: \"Sequence\",\n          element: {\n            constraints: {\n              InclusiveMaximum: 4294967295,\n              InclusiveMinimum: 0,\n            },\n            type: {\n              name: \"Number\",\n            },\n          },\n        },\n      },\n      nonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"nonce\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      time: {\n        serializedName: \"time\",\n        required: true,\n        type: {\n          name: \"UnixTime\",\n        },\n      },\n      version: {\n        constraints: {\n          InclusiveMaximum: 4294967295,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"version\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      info: {\n        serializedName: \"info\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const PathsNn60D7V3KeyBlocksHashOrKbiMicroBlocksGetResponses200ContentApplicationJsonSchemaAllof0: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"PathsNn60D7V3KeyBlocksHashOrKbiMicroBlocksGetResponses200ContentApplicationJsonSchemaAllof0\",\n      modelProperties: {\n        data: {\n          serializedName: \"data\",\n          required: true,\n          type: {\n            name: \"Sequence\",\n            element: {\n              type: {\n                name: \"Composite\",\n                className: \"MicroBlockExtended\",\n              },\n            },\n          },\n        },\n      },\n    },\n  };\n\nexport const MicroBlockHeader: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"MicroBlockHeader\",\n    modelProperties: {\n      hash: {\n        serializedName: \"hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      height: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"height\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      pofHash: {\n        serializedName: \"pof_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      prevHash: {\n        serializedName: \"prev_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      prevKeyHash: {\n        serializedName: \"prev_key_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      stateHash: {\n        serializedName: \"state_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      txsHash: {\n        serializedName: \"txs_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      signature: {\n        serializedName: \"signature\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      time: {\n        serializedName: \"time\",\n        required: true,\n        type: {\n          name: \"UnixTime\",\n        },\n      },\n      version: {\n        constraints: {\n          InclusiveMaximum: 4294967295,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"version\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const PathsXhlqwrV3MicroBlocksHashTransactionsGetResponses200ContentApplicationJsonSchemaAllof0: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"PathsXhlqwrV3MicroBlocksHashTransactionsGetResponses200ContentApplicationJsonSchemaAllof0\",\n      modelProperties: {\n        data: {\n          serializedName: \"data\",\n          required: true,\n          type: {\n            name: \"Sequence\",\n            element: {\n              type: {\n                name: \"Composite\",\n                className: \"Transaction\",\n              },\n            },\n          },\n        },\n      },\n    },\n  };\n\nexport const Transaction: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"Transaction\",\n    modelProperties: {\n      blockHash: {\n        constraints: {\n          Pattern: new RegExp(\"^mh_\\\\w{38,50}$\"),\n        },\n        serializedName: \"block_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      blockHeight: {\n        serializedName: \"block_height\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      encodedTx: {\n        constraints: {\n          Pattern: new RegExp(\"^tx_\\\\w+$\"),\n        },\n        serializedName: \"encoded_tx\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      hash: {\n        constraints: {\n          Pattern: new RegExp(\"^th_\\\\w{38,50}$\"),\n        },\n        serializedName: \"hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      microIndex: {\n        serializedName: \"micro_index\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      microTime: {\n        serializedName: \"micro_time\",\n        required: true,\n        type: {\n          name: \"UnixTime\",\n        },\n      },\n      signatures: {\n        serializedName: \"signatures\",\n        required: true,\n        type: {\n          name: \"Sequence\",\n          element: {\n            constraints: {\n              Pattern: new RegExp(\"^sg_\\\\w+$\"),\n            },\n            type: {\n              name: \"String\",\n            },\n          },\n        },\n      },\n      tx: {\n        serializedName: \"tx\",\n        type: {\n          name: \"Composite\",\n          className: \"Tx\",\n        },\n      },\n    },\n  },\n};\n\nexport const Paths181Cs9V3NamesGetResponses200ContentApplicationJsonSchemaAllof0: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths181Cs9V3NamesGetResponses200ContentApplicationJsonSchemaAllof0\",\n      modelProperties: {\n        data: {\n          serializedName: \"data\",\n          required: true,\n          type: {\n            name: \"Sequence\",\n            element: {\n              type: {\n                name: \"Composite\",\n                className: \"Name\",\n              },\n            },\n          },\n        },\n      },\n    },\n  };\n\nexport const Name: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"Name\",\n    modelProperties: {\n      active: {\n        serializedName: \"active\",\n        required: true,\n        type: {\n          name: \"Boolean\",\n        },\n      },\n      hash: {\n        constraints: {\n          Pattern: new RegExp(\"^nm_\\\\w{38,50}$\"),\n        },\n        serializedName: \"hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      activeFrom: {\n        serializedName: \"active_from\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      approximateActivationTime: {\n        serializedName: \"approximate_activation_time\",\n        required: true,\n        type: {\n          name: \"UnixTime\",\n        },\n      },\n      approximateExpireTime: {\n        serializedName: \"approximate_expire_time\",\n        required: true,\n        type: {\n          name: \"UnixTime\",\n        },\n      },\n      expireHeight: {\n        serializedName: \"expire_height\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      pointers: {\n        serializedName: \"pointers\",\n        required: true,\n        type: {\n          name: \"Sequence\",\n          element: {\n            type: {\n              name: \"Composite\",\n              className: \"NamePointer\",\n            },\n          },\n        },\n      },\n      auction: {\n        serializedName: \"auction\",\n        type: {\n          name: \"Composite\",\n          className: \"Auction\",\n        },\n      },\n      auctionTimeout: {\n        serializedName: \"auction_timeout\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      ownership: {\n        serializedName: \"ownership\",\n        type: {\n          name: \"Composite\",\n          className: \"NameOwnership\",\n        },\n      },\n      name: {\n        constraints: {\n          Pattern: new RegExp(\"^\\\\w+\\\\.chain$\"),\n        },\n        serializedName: \"name\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      nameFee: {\n        serializedName: \"name_fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      revoke: {\n        serializedName: \"revoke\",\n        type: {\n          name: \"Composite\",\n          className: \"NameTx\",\n        },\n      },\n      claimsCount: {\n        serializedName: \"claims_count\",\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const Auction: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"Auction\",\n    modelProperties: {\n      auctionEnd: {\n        serializedName: \"auction_end\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      activationTime: {\n        serializedName: \"activation_time\",\n        required: true,\n        type: {\n          name: \"UnixTime\",\n        },\n      },\n      approximateExpireTime: {\n        serializedName: \"approximate_expire_time\",\n        required: true,\n        type: {\n          name: \"UnixTime\",\n        },\n      },\n      lastBid: {\n        serializedName: \"last_bid\",\n        type: {\n          name: \"Composite\",\n          className: \"AuctionLastBid\",\n        },\n      },\n      name: {\n        constraints: {\n          Pattern: new RegExp(\"^\\\\w+\\\\.chain$\"),\n        },\n        serializedName: \"name\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      nameFee: {\n        serializedName: \"name_fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      claimsCount: {\n        serializedName: \"claims_count\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const AuctionLastBid: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"AuctionLastBid\",\n    modelProperties: {\n      blockHash: {\n        constraints: {\n          Pattern: new RegExp(\"^mh_\\\\w{38,50}$\"),\n        },\n        serializedName: \"block_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      blockHeight: {\n        serializedName: \"block_height\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      encodedTx: {\n        constraints: {\n          Pattern: new RegExp(\"^tx_\\\\w+$\"),\n        },\n        serializedName: \"encoded_tx\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      hash: {\n        constraints: {\n          Pattern: new RegExp(\"^th_\\\\w{38,50}$\"),\n        },\n        serializedName: \"hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      microIndex: {\n        serializedName: \"micro_index\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      microTime: {\n        serializedName: \"micro_time\",\n        required: true,\n        type: {\n          name: \"UnixTime\",\n        },\n      },\n      signatures: {\n        serializedName: \"signatures\",\n        required: true,\n        type: {\n          name: \"Sequence\",\n          element: {\n            constraints: {\n              Pattern: new RegExp(\"^sg_\\\\w+$\"),\n            },\n            type: {\n              name: \"String\",\n            },\n          },\n        },\n      },\n      tx: {\n        serializedName: \"tx\",\n        type: {\n          name: \"Composite\",\n          className: \"AuctionLastBidTx\",\n        },\n      },\n    },\n  },\n};\n\nexport const Components17W16A5SchemasAuctionPropertiesLastBidPropertiesTxAllof1: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Components17W16A5SchemasAuctionPropertiesLastBidPropertiesTxAllof1\",\n      modelProperties: {\n        nameId: {\n          constraints: {\n            Pattern: new RegExp(\"^nm_\\\\w{38,50}$\"),\n          },\n          serializedName: \"name_id\",\n          required: true,\n          type: {\n            name: \"String\",\n          },\n        },\n        type: {\n          serializedName: \"type\",\n          required: true,\n          type: {\n            name: \"String\",\n          },\n        },\n        version: {\n          serializedName: \"version\",\n          required: true,\n          type: {\n            name: \"Number\",\n          },\n        },\n      },\n    },\n  };\n\nexport const NameOwnership: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"NameOwnership\",\n    modelProperties: {\n      current: {\n        constraints: {\n          Pattern: new RegExp(\"^ak_\\\\w{38,50}$\"),\n        },\n        serializedName: \"current\",\n        type: {\n          name: \"String\",\n        },\n      },\n      original: {\n        constraints: {\n          Pattern: new RegExp(\"^ak_\\\\w{38,50}$\"),\n        },\n        serializedName: \"original\",\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const NameTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"NameTx\",\n    modelProperties: {\n      blockHash: {\n        constraints: {\n          Pattern: new RegExp(\"^mh_\\\\w{38,50}$\"),\n        },\n        serializedName: \"block_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      blockHeight: {\n        serializedName: \"block_height\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      hash: {\n        constraints: {\n          Pattern: new RegExp(\"^th_\\\\w{38,50}$\"),\n        },\n        serializedName: \"hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      microIndex: {\n        serializedName: \"micro_index\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      microTime: {\n        serializedName: \"micro_time\",\n        required: true,\n        type: {\n          name: \"UnixTime\",\n        },\n      },\n      signatures: {\n        serializedName: \"signatures\",\n        required: true,\n        type: {\n          name: \"Sequence\",\n          element: {\n            constraints: {\n              Pattern: new RegExp(\"^sg_\\\\w+$\"),\n            },\n            type: {\n              name: \"String\",\n            },\n          },\n        },\n      },\n      tx: {\n        serializedName: \"tx\",\n        type: {\n          name: \"Composite\",\n          className: \"NameTxTx\",\n        },\n      },\n    },\n  },\n};\n\nexport const NameRevokeTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"NameRevokeTx\",\n    modelProperties: {\n      nameId: {\n        serializedName: \"name_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      fee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      ttl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"ttl\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      accountId: {\n        serializedName: \"account_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      nonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"nonce\",\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const Components171VsjiSchemasNametxPropertiesTxAllof1: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className: \"Components171VsjiSchemasNametxPropertiesTxAllof1\",\n      modelProperties: {\n        type: {\n          serializedName: \"type\",\n          required: true,\n          type: {\n            name: \"String\",\n          },\n        },\n        version: {\n          serializedName: \"version\",\n          required: true,\n          type: {\n            name: \"Number\",\n          },\n        },\n      },\n    },\n  };\n\nexport const Paths1R08F8HV3NamesAuctionsGetResponses200ContentApplicationJsonSchemaAllof0: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths1R08F8HV3NamesAuctionsGetResponses200ContentApplicationJsonSchemaAllof0\",\n      modelProperties: {\n        data: {\n          serializedName: \"data\",\n          required: true,\n          type: {\n            name: \"Sequence\",\n            element: {\n              type: {\n                name: \"Composite\",\n                className: \"Auction\",\n              },\n            },\n          },\n        },\n      },\n    },\n  };\n\nexport const PathsCrb9BgV3NamesAuctionsIdClaimsGetResponses200ContentApplicationJsonSchema: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"PathsCrb9BgV3NamesAuctionsIdClaimsGetResponses200ContentApplicationJsonSchema\",\n      modelProperties: {\n        data: {\n          serializedName: \"data\",\n          required: true,\n          type: {\n            name: \"Sequence\",\n            element: {\n              type: {\n                name: \"Composite\",\n                className: \"NameClaim\",\n              },\n            },\n          },\n        },\n      },\n    },\n  };\n\nexport const PathsMyl4W2V3NamesIdClaimsGetResponses200ContentApplicationJsonSchemaAllof0: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"PathsMyl4W2V3NamesIdClaimsGetResponses200ContentApplicationJsonSchemaAllof0\",\n      modelProperties: {\n        data: {\n          serializedName: \"data\",\n          required: true,\n          type: {\n            name: \"Sequence\",\n            element: {\n              type: {\n                name: \"Composite\",\n                className: \"NameClaim\",\n              },\n            },\n          },\n        },\n      },\n    },\n  };\n\nexport const Paths1Ukwk06V3NamesIdTransfersGetResponses200ContentApplicationJsonSchemaAllof0: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths1Ukwk06V3NamesIdTransfersGetResponses200ContentApplicationJsonSchemaAllof0\",\n      modelProperties: {\n        data: {\n          serializedName: \"data\",\n          required: true,\n          type: {\n            name: \"Sequence\",\n            element: {\n              type: {\n                name: \"Composite\",\n                className: \"NameTransfer\",\n              },\n            },\n          },\n        },\n      },\n    },\n  };\n\nexport const NameTransfer: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"NameTransfer\",\n    modelProperties: {\n      activeFrom: {\n        serializedName: \"active_from\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      blockHash: {\n        constraints: {\n          Pattern: new RegExp(\"^mh_\\\\w{38,50}$\"),\n        },\n        serializedName: \"block_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      height: {\n        serializedName: \"height\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      sourceTxHash: {\n        constraints: {\n          Pattern: new RegExp(\"^th_\\\\w{38,50}$\"),\n        },\n        serializedName: \"source_tx_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      sourceTxType: {\n        serializedName: \"source_tx_type\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      tx: {\n        serializedName: \"tx\",\n        type: {\n          name: \"Composite\",\n          className: \"NameTransferTx\",\n        },\n      },\n      internalSource: {\n        serializedName: \"internal_source\",\n        type: {\n          name: \"Boolean\",\n        },\n      },\n    },\n  },\n};\n\nexport const NameTransferTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"NameTransferTx\",\n    modelProperties: {\n      nameId: {\n        serializedName: \"name_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      recipientId: {\n        serializedName: \"recipient_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      fee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      ttl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"ttl\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      accountId: {\n        serializedName: \"account_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      nonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"nonce\",\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const PathsRcnvllV3NamesIdUpdatesGetResponses200ContentApplicationJsonSchemaAllof0: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"PathsRcnvllV3NamesIdUpdatesGetResponses200ContentApplicationJsonSchemaAllof0\",\n      modelProperties: {\n        data: {\n          serializedName: \"data\",\n          required: true,\n          type: {\n            name: \"Sequence\",\n            element: {\n              type: {\n                name: \"Composite\",\n                className: \"NameUpdate\",\n              },\n            },\n          },\n        },\n      },\n    },\n  };\n\nexport const NameUpdate: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"NameUpdate\",\n    modelProperties: {\n      activeFrom: {\n        serializedName: \"active_from\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      blockHash: {\n        constraints: {\n          Pattern: new RegExp(\"^mh_\\\\w{38,50}$\"),\n        },\n        serializedName: \"block_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      height: {\n        serializedName: \"height\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      sourceTxHash: {\n        constraints: {\n          Pattern: new RegExp(\"^th_\\\\w{38,50}$\"),\n        },\n        serializedName: \"source_tx_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      sourceTxType: {\n        serializedName: \"source_tx_type\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      tx: {\n        serializedName: \"tx\",\n        type: {\n          name: \"Composite\",\n          className: \"NameUpdateTx\",\n        },\n      },\n      internalSource: {\n        serializedName: \"internal_source\",\n        type: {\n          name: \"Boolean\",\n        },\n      },\n    },\n  },\n};\n\nexport const PathsGcr9MrV3OraclesGetResponses200ContentApplicationJsonSchemaAllof0: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"PathsGcr9MrV3OraclesGetResponses200ContentApplicationJsonSchemaAllof0\",\n      modelProperties: {\n        data: {\n          serializedName: \"data\",\n          required: true,\n          type: {\n            name: \"Sequence\",\n            element: {\n              type: {\n                name: \"Composite\",\n                className: \"Oracle\",\n              },\n            },\n          },\n        },\n      },\n    },\n  };\n\nexport const Oracle: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"Oracle\",\n    modelProperties: {\n      active: {\n        serializedName: \"active\",\n        required: true,\n        type: {\n          name: \"Boolean\",\n        },\n      },\n      activeFrom: {\n        serializedName: \"active_from\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      approximateExpireTime: {\n        serializedName: \"approximate_expire_time\",\n        required: true,\n        type: {\n          name: \"UnixTime\",\n        },\n      },\n      expireHeight: {\n        serializedName: \"expire_height\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      registerTime: {\n        serializedName: \"register_time\",\n        required: true,\n        type: {\n          name: \"UnixTime\",\n        },\n      },\n      registerTxHash: {\n        constraints: {\n          Pattern: new RegExp(\"^th_\\\\w{38,50}$\"),\n        },\n        serializedName: \"register_tx_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      format: {\n        serializedName: \"format\",\n        type: {\n          name: \"Composite\",\n          className: \"OracleFormat\",\n        },\n      },\n      oracle: {\n        constraints: {\n          Pattern: new RegExp(\"^ok_\\\\w{38,50}$\"),\n        },\n        serializedName: \"oracle\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      queryFee: {\n        serializedName: \"query_fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      register: {\n        serializedName: \"register\",\n        type: {\n          name: \"Composite\",\n          className: \"OracleTx\",\n        },\n      },\n    },\n  },\n};\n\nexport const OracleFormat: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"OracleFormat\",\n    modelProperties: {\n      query: {\n        serializedName: \"query\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      response: {\n        serializedName: \"response\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const OracleTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"OracleTx\",\n    modelProperties: {\n      blockHash: {\n        constraints: {\n          Pattern: new RegExp(\"^mh_\\\\w{38,50}$\"),\n        },\n        serializedName: \"block_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      blockHeight: {\n        serializedName: \"block_height\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      hash: {\n        constraints: {\n          Pattern: new RegExp(\"^th_\\\\w{38,50}$\"),\n        },\n        serializedName: \"hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      microIndex: {\n        serializedName: \"micro_index\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      microTime: {\n        serializedName: \"micro_time\",\n        required: true,\n        type: {\n          name: \"UnixTime\",\n        },\n      },\n      signatures: {\n        serializedName: \"signatures\",\n        required: true,\n        type: {\n          name: \"Sequence\",\n          element: {\n            constraints: {\n              Pattern: new RegExp(\"^sg_\\\\w+$\"),\n            },\n            type: {\n              name: \"String\",\n            },\n          },\n        },\n      },\n      encodedTx: {\n        constraints: {\n          Pattern: new RegExp(\"^tx_\\\\w+$\"),\n        },\n        serializedName: \"encoded_tx\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      tx: {\n        serializedName: \"tx\",\n        type: {\n          name: \"Composite\",\n          className: \"OracleTxTx\",\n        },\n      },\n    },\n  },\n};\n\nexport const OracleRegisterTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"OracleRegisterTx\",\n    modelProperties: {\n      queryFormat: {\n        serializedName: \"query_format\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      responseFormat: {\n        serializedName: \"response_format\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      queryFee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"query_fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      oracleTtl: {\n        serializedName: \"oracle_ttl\",\n        type: {\n          name: \"Composite\",\n          className: \"Ttl\",\n        },\n      },\n      accountId: {\n        serializedName: \"account_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      nonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"nonce\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      fee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      ttl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"ttl\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      abiVersion: {\n        constraints: {\n          InclusiveMaximum: 65535,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"abi_version\",\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const Components1Viuqa3SchemasOracletxPropertiesTxAllof1: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className: \"Components1Viuqa3SchemasOracletxPropertiesTxAllof1\",\n      modelProperties: {\n        oracleId: {\n          constraints: {\n            Pattern: new RegExp(\"^ok_\\\\w{38,50}$\"),\n          },\n          serializedName: \"oracle_id\",\n          required: true,\n          type: {\n            name: \"String\",\n          },\n        },\n        type: {\n          serializedName: \"type\",\n          required: true,\n          type: {\n            name: \"String\",\n          },\n        },\n        version: {\n          serializedName: \"version\",\n          required: true,\n          type: {\n            name: \"Number\",\n          },\n        },\n        txHash: {\n          constraints: {\n            Pattern: new RegExp(\"^th_\\\\w{38,50}$\"),\n          },\n          serializedName: \"tx_hash\",\n          required: true,\n          type: {\n            name: \"String\",\n          },\n        },\n      },\n    },\n  };\n\nexport const PathsZ4L2QlV3OraclesIdExtendsGetResponses200ContentApplicationJsonSchemaAllof0: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"PathsZ4L2QlV3OraclesIdExtendsGetResponses200ContentApplicationJsonSchemaAllof0\",\n      modelProperties: {\n        data: {\n          serializedName: \"data\",\n          required: true,\n          type: {\n            name: \"Sequence\",\n            element: {\n              type: {\n                name: \"Composite\",\n                className: \"OracleExtend\",\n              },\n            },\n          },\n        },\n      },\n    },\n  };\n\nexport const OracleExtend: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"OracleExtend\",\n    modelProperties: {\n      blockHash: {\n        constraints: {\n          Pattern: new RegExp(\"^mh_\\\\w{38,50}$\"),\n        },\n        serializedName: \"block_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      height: {\n        serializedName: \"height\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      sourceTxHash: {\n        constraints: {\n          Pattern: new RegExp(\"^th_\\\\w{38,50}$\"),\n        },\n        serializedName: \"source_tx_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      sourceTxType: {\n        serializedName: \"source_tx_type\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      tx: {\n        serializedName: \"tx\",\n        type: {\n          name: \"Composite\",\n          className: \"OracleExtendTx\",\n        },\n      },\n    },\n  },\n};\n\nexport const OracleExtendTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"OracleExtendTx\",\n    modelProperties: {\n      fee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      oracleTtl: {\n        serializedName: \"oracle_ttl\",\n        type: {\n          name: \"Composite\",\n          className: \"RelativeTTL\",\n        },\n      },\n      oracleId: {\n        serializedName: \"oracle_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      nonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"nonce\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      ttl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"ttl\",\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const Paths1Uni7AtV3OraclesIdQueriesGetResponses200ContentApplicationJsonSchemaAllof0: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths1Uni7AtV3OraclesIdQueriesGetResponses200ContentApplicationJsonSchemaAllof0\",\n      modelProperties: {\n        data: {\n          serializedName: \"data\",\n          required: true,\n          type: {\n            name: \"Sequence\",\n            element: {\n              type: {\n                name: \"Composite\",\n                className: \"OracleQuery\",\n              },\n            },\n          },\n        },\n      },\n    },\n  };\n\nexport const OracleQuery: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"OracleQuery\",\n    modelProperties: {\n      blockHash: {\n        constraints: {\n          Pattern: new RegExp(\"^mh_\\\\w{38,50}$\"),\n        },\n        serializedName: \"block_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      blockTime: {\n        serializedName: \"block_time\",\n        required: true,\n        type: {\n          name: \"UnixTime\",\n        },\n      },\n      height: {\n        serializedName: \"height\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      queryId: {\n        constraints: {\n          Pattern: new RegExp(\"^oq_\\\\w{38,50}$\"),\n        },\n        serializedName: \"query_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      response: {\n        serializedName: \"response\",\n        type: {\n          name: \"Composite\",\n          className: \"OracleResponse\",\n        },\n      },\n      sourceTxHash: {\n        constraints: {\n          Pattern: new RegExp(\"^th_\\\\w{38,50}$\"),\n        },\n        serializedName: \"source_tx_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      sourceTxType: {\n        serializedName: \"source_tx_type\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      fee: {\n        serializedName: \"fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      nonce: {\n        serializedName: \"nonce\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      oracleId: {\n        constraints: {\n          Pattern: new RegExp(\"^ok_\\\\w{38,50}$\"),\n        },\n        serializedName: \"oracle_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      query: {\n        serializedName: \"query\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      queryFee: {\n        serializedName: \"query_fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      queryTtl: {\n        serializedName: \"query_ttl\",\n        required: true,\n        type: {\n          name: \"Dictionary\",\n          value: { type: { name: \"any\" } },\n        },\n      },\n      responseTtl: {\n        serializedName: \"response_ttl\",\n        required: true,\n        type: {\n          name: \"Dictionary\",\n          value: { type: { name: \"any\" } },\n        },\n      },\n      senderId: {\n        constraints: {\n          Pattern: new RegExp(\"^ak_\\\\w{38,50}$\"),\n        },\n        serializedName: \"sender_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      ttl: {\n        serializedName: \"ttl\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const OracleResponse: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"OracleResponse\",\n    modelProperties: {\n      blockHash: {\n        constraints: {\n          Pattern: new RegExp(\"^mh_\\\\w{38,50}$\"),\n        },\n        serializedName: \"block_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      blockTime: {\n        serializedName: \"block_time\",\n        required: true,\n        type: {\n          name: \"UnixTime\",\n        },\n      },\n      height: {\n        serializedName: \"height\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      queryId: {\n        constraints: {\n          Pattern: new RegExp(\"^oq_\\\\w{38,50}$\"),\n        },\n        serializedName: \"query_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      query: {\n        serializedName: \"query\",\n        type: {\n          name: \"Composite\",\n          className: \"OracleQuery\",\n        },\n      },\n      sourceTxHash: {\n        constraints: {\n          Pattern: new RegExp(\"^th_\\\\w{38,50}$\"),\n        },\n        serializedName: \"source_tx_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      sourceTxType: {\n        serializedName: \"source_tx_type\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      fee: {\n        serializedName: \"fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      nonce: {\n        serializedName: \"nonce\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      oracleId: {\n        constraints: {\n          Pattern: new RegExp(\"^ok_\\\\w{38,50}$\"),\n        },\n        serializedName: \"oracle_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      response: {\n        serializedName: \"response\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      responseTtl: {\n        serializedName: \"response_ttl\",\n        required: true,\n        type: {\n          name: \"Dictionary\",\n          value: { type: { name: \"any\" } },\n        },\n      },\n      ttl: {\n        serializedName: \"ttl\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const Paths1Tcj5A9V3OraclesIdResponsesGetResponses200ContentApplicationJsonSchemaAllof0: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths1Tcj5A9V3OraclesIdResponsesGetResponses200ContentApplicationJsonSchemaAllof0\",\n      modelProperties: {\n        data: {\n          serializedName: \"data\",\n          required: true,\n          type: {\n            name: \"Sequence\",\n            element: {\n              type: {\n                name: \"Composite\",\n                className: \"OracleResponse\",\n              },\n            },\n          },\n        },\n      },\n    },\n  };\n\nexport const Stats: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"Stats\",\n    modelProperties: {\n      minersCount: {\n        serializedName: \"miners_count\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      feesTrend: {\n        serializedName: \"fees_trend\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      last24HsAverageTransactionFees: {\n        serializedName: \"last_24hs_average_transaction_fees\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      last24HsTransactions: {\n        serializedName: \"last_24hs_transactions\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      maxTransactionsPerSecond: {\n        serializedName: \"max_transactions_per_second\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      maxTransactionsPerSecondBlockHash: {\n        constraints: {\n          Pattern: new RegExp(\"^kh_\\\\w{38,50}$\"),\n        },\n        serializedName: \"max_transactions_per_second_block_hash\",\n        type: {\n          name: \"String\",\n        },\n      },\n      transactionsTrend: {\n        serializedName: \"transactions_trend\",\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const PathsFso5IiV3StatsActiveAccountsGetResponses200ContentApplicationJsonSchemaAllof0: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"PathsFso5IiV3StatsActiveAccountsGetResponses200ContentApplicationJsonSchemaAllof0\",\n      modelProperties: {\n        data: {\n          serializedName: \"data\",\n          required: true,\n          type: {\n            name: \"Sequence\",\n            element: {\n              type: {\n                name: \"Composite\",\n                className: \"Stat\",\n              },\n            },\n          },\n        },\n      },\n    },\n  };\n\nexport const Stat: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"Stat\",\n    modelProperties: {\n      count: {\n        serializedName: \"count\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      startDate: {\n        serializedName: \"start_date\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      endDate: {\n        serializedName: \"end_date\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const Paths1Fl1Lh2V3StatsAex9TransfersGetResponses200ContentApplicationJsonSchemaAllof0: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths1Fl1Lh2V3StatsAex9TransfersGetResponses200ContentApplicationJsonSchemaAllof0\",\n      modelProperties: {\n        data: {\n          serializedName: \"data\",\n          required: true,\n          type: {\n            name: \"Sequence\",\n            element: {\n              type: {\n                name: \"Composite\",\n                className: \"Stat\",\n              },\n            },\n          },\n        },\n      },\n    },\n  };\n\nexport const Paths1A27TirV3StatsBlocksGetResponses200ContentApplicationJsonSchemaAllof0: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths1A27TirV3StatsBlocksGetResponses200ContentApplicationJsonSchemaAllof0\",\n      modelProperties: {\n        data: {\n          serializedName: \"data\",\n          required: true,\n          type: {\n            name: \"Sequence\",\n            element: {\n              type: {\n                name: \"Composite\",\n                className: \"Stat\",\n              },\n            },\n          },\n        },\n      },\n    },\n  };\n\nexport const Paths72Dp44V3StatsContractsGetResponses200ContentApplicationJsonSchemaAllof0: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths72Dp44V3StatsContractsGetResponses200ContentApplicationJsonSchemaAllof0\",\n      modelProperties: {\n        data: {\n          serializedName: \"data\",\n          required: true,\n          type: {\n            name: \"Sequence\",\n            element: {\n              type: {\n                name: \"Composite\",\n                className: \"Stat\",\n              },\n            },\n          },\n        },\n      },\n    },\n  };\n\nexport const Paths1J83O75V3StatsDeltaGetResponses200ContentApplicationJsonSchemaAllof0: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths1J83O75V3StatsDeltaGetResponses200ContentApplicationJsonSchemaAllof0\",\n      modelProperties: {\n        data: {\n          serializedName: \"data\",\n          required: true,\n          type: {\n            name: \"Sequence\",\n            element: {\n              type: {\n                name: \"Composite\",\n                className: \"DeltaStat\",\n              },\n            },\n          },\n        },\n      },\n    },\n  };\n\nexport const DeltaStat: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"DeltaStat\",\n    modelProperties: {\n      height: {\n        serializedName: \"height\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      auctionsStarted: {\n        serializedName: \"auctions_started\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      blockReward: {\n        serializedName: \"block_reward\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      burnedInAuctions: {\n        serializedName: \"burned_in_auctions\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      channelsClosed: {\n        serializedName: \"channels_closed\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      channelsOpened: {\n        serializedName: \"channels_opened\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      contractsCreated: {\n        serializedName: \"contracts_created\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      devReward: {\n        serializedName: \"dev_reward\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      namesActivated: {\n        serializedName: \"names_activated\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      namesExpired: {\n        serializedName: \"names_expired\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      namesRevoked: {\n        serializedName: \"names_revoked\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      oraclesExpired: {\n        serializedName: \"oracles_expired\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      oraclesRegistered: {\n        serializedName: \"oracles_registered\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      lastTxHash: {\n        constraints: {\n          Pattern: new RegExp(\"^th_\\\\w{38,50}$\"),\n        },\n        serializedName: \"last_tx_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      lockedInAuctions: {\n        serializedName: \"locked_in_auctions\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      lockedInChannels: {\n        serializedName: \"locked_in_channels\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n    },\n  },\n};\n\nexport const Paths1Qw6KhfV3StatsDifficultyGetResponses200ContentApplicationJsonSchemaAllof0: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths1Qw6KhfV3StatsDifficultyGetResponses200ContentApplicationJsonSchemaAllof0\",\n      modelProperties: {\n        data: {\n          serializedName: \"data\",\n          required: true,\n          type: {\n            name: \"Sequence\",\n            element: {\n              type: {\n                name: \"Composite\",\n                className: \"Stat\",\n              },\n            },\n          },\n        },\n      },\n    },\n  };\n\nexport const Paths1IskjkV3StatsHashrateGetResponses200ContentApplicationJsonSchemaAllof0: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths1IskjkV3StatsHashrateGetResponses200ContentApplicationJsonSchemaAllof0\",\n      modelProperties: {\n        data: {\n          serializedName: \"data\",\n          required: true,\n          type: {\n            name: \"Sequence\",\n            element: {\n              type: {\n                name: \"Composite\",\n                className: \"Stat\",\n              },\n            },\n          },\n        },\n      },\n    },\n  };\n\nexport const Paths50Qhc7V3StatsMinersGetResponses200ContentApplicationJsonSchemaAllof0: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths50Qhc7V3StatsMinersGetResponses200ContentApplicationJsonSchemaAllof0\",\n      modelProperties: {\n        data: {\n          serializedName: \"data\",\n          required: true,\n          type: {\n            name: \"Sequence\",\n            element: {\n              type: {\n                name: \"Composite\",\n                className: \"Miner\",\n              },\n            },\n          },\n        },\n      },\n    },\n  };\n\nexport const Miner: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"Miner\",\n    modelProperties: {\n      miner: {\n        constraints: {\n          Pattern: new RegExp(\"^ak_\\\\w{38,50}$\"),\n        },\n        serializedName: \"miner\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      totalReward: {\n        serializedName: \"total_reward\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n    },\n  },\n};\n\nexport const PathsD92Xl6V3StatsNamesGetResponses200ContentApplicationJsonSchemaAllof0: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"PathsD92Xl6V3StatsNamesGetResponses200ContentApplicationJsonSchemaAllof0\",\n      modelProperties: {\n        data: {\n          serializedName: \"data\",\n          required: true,\n          type: {\n            name: \"Sequence\",\n            element: {\n              type: {\n                name: \"Composite\",\n                className: \"Stat\",\n              },\n            },\n          },\n        },\n      },\n    },\n  };\n\nexport const Paths1K55ZdgV3StatsTotalGetResponses200ContentApplicationJsonSchemaAllof0: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths1K55ZdgV3StatsTotalGetResponses200ContentApplicationJsonSchemaAllof0\",\n      modelProperties: {\n        data: {\n          serializedName: \"data\",\n          required: true,\n          type: {\n            name: \"Sequence\",\n            element: {\n              type: {\n                name: \"Composite\",\n                className: \"TotalStat\",\n              },\n            },\n          },\n        },\n      },\n    },\n  };\n\nexport const TotalStat: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"TotalStat\",\n    modelProperties: {\n      height: {\n        serializedName: \"height\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      contracts: {\n        serializedName: \"contracts\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      lockedInAuctions: {\n        serializedName: \"locked_in_auctions\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      burnedInAuctions: {\n        serializedName: \"burned_in_auctions\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      lockedInChannels: {\n        serializedName: \"locked_in_channels\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      activeAuctions: {\n        serializedName: \"active_auctions\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      activeNames: {\n        serializedName: \"active_names\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      inactiveNames: {\n        serializedName: \"inactive_names\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      activeOracles: {\n        serializedName: \"active_oracles\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      inactiveOracles: {\n        serializedName: \"inactive_oracles\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      openChannels: {\n        serializedName: \"open_channels\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      sumBlockReward: {\n        serializedName: \"sum_block_reward\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      sumDevReward: {\n        serializedName: \"sum_dev_reward\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      totalTokenSupply: {\n        serializedName: \"total_token_supply\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      lastTxHash: {\n        constraints: {\n          Pattern: new RegExp(\"^th_\\\\w{38,50}$\"),\n        },\n        serializedName: \"last_tx_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const Paths3Bfys0V3StatsTotalAccountsGetResponses200ContentApplicationJsonSchemaAllof0: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths3Bfys0V3StatsTotalAccountsGetResponses200ContentApplicationJsonSchemaAllof0\",\n      modelProperties: {\n        data: {\n          serializedName: \"data\",\n          required: true,\n          type: {\n            name: \"Sequence\",\n            element: {\n              type: {\n                name: \"Composite\",\n                className: \"Stat\",\n              },\n            },\n          },\n        },\n      },\n    },\n  };\n\nexport const Paths6PaqluV3StatsTransactionsGetResponses200ContentApplicationJsonSchemaAllof0: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths6PaqluV3StatsTransactionsGetResponses200ContentApplicationJsonSchemaAllof0\",\n      modelProperties: {\n        data: {\n          serializedName: \"data\",\n          required: true,\n          type: {\n            name: \"Sequence\",\n            element: {\n              type: {\n                name: \"Composite\",\n                className: \"Stat\",\n              },\n            },\n          },\n        },\n      },\n    },\n  };\n\nexport const Status: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"Status\",\n    modelProperties: {\n      mdwAsyncTasks: {\n        serializedName: \"mdw_async_tasks\",\n        type: {\n          name: \"Composite\",\n          className: \"StatusMdwAsyncTasks\",\n        },\n      },\n      mdwGensPerMinute: {\n        serializedName: \"mdw_gens_per_minute\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      mdwHeight: {\n        serializedName: \"mdw_height\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      mdwLastMigration: {\n        serializedName: \"mdw_last_migration\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      mdwRevision: {\n        serializedName: \"mdw_revision\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      mdwSynced: {\n        serializedName: \"mdw_synced\",\n        required: true,\n        type: {\n          name: \"Boolean\",\n        },\n      },\n      mdwSyncing: {\n        serializedName: \"mdw_syncing\",\n        required: true,\n        type: {\n          name: \"Boolean\",\n        },\n      },\n      mdwTxIndex: {\n        serializedName: \"mdw_tx_index\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      mdwVersion: {\n        serializedName: \"mdw_version\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      nodeHeight: {\n        serializedName: \"node_height\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      nodeProgress: {\n        serializedName: \"node_progress\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      nodeRevision: {\n        serializedName: \"node_revision\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      nodeSyncing: {\n        serializedName: \"node_syncing\",\n        required: true,\n        type: {\n          name: \"Boolean\",\n        },\n      },\n      nodeVersion: {\n        serializedName: \"node_version\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const StatusMdwAsyncTasks: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"StatusMdwAsyncTasks\",\n    modelProperties: {\n      longTasks: {\n        serializedName: \"long_tasks\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      producerBuffer: {\n        serializedName: \"producer_buffer\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      totalPending: {\n        serializedName: \"total_pending\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const PathsHa9C78V3TransactionsGetResponses200ContentApplicationJsonSchemaAllof0: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"PathsHa9C78V3TransactionsGetResponses200ContentApplicationJsonSchemaAllof0\",\n      modelProperties: {\n        data: {\n          serializedName: \"data\",\n          required: true,\n          type: {\n            name: \"Sequence\",\n            element: {\n              type: {\n                name: \"Composite\",\n                className: \"Transaction\",\n              },\n            },\n          },\n        },\n      },\n    },\n  };\n\nexport const PathsI72FylV3TransactionsPendingGetResponses200ContentApplicationJsonSchemaAllof0: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"PathsI72FylV3TransactionsPendingGetResponses200ContentApplicationJsonSchemaAllof0\",\n      modelProperties: {\n        data: {\n          serializedName: \"data\",\n          required: true,\n          type: {\n            name: \"Sequence\",\n            element: {\n              type: {\n                name: \"Composite\",\n                className: \"PendingTransaction\",\n              },\n            },\n          },\n        },\n      },\n    },\n  };\n\nexport const PendingTransaction: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"PendingTransaction\",\n    modelProperties: {\n      blockHash: {\n        serializedName: \"block_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      blockHeight: {\n        serializedName: \"block_height\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      encodedTx: {\n        constraints: {\n          Pattern: new RegExp(\"^tx_\\\\w+$\"),\n        },\n        serializedName: \"encoded_tx\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      failures: {\n        serializedName: \"failures\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      hash: {\n        constraints: {\n          Pattern: new RegExp(\"^th_\\\\w{38,50}$\"),\n        },\n        serializedName: \"hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      signatures: {\n        serializedName: \"signatures\",\n        required: true,\n        type: {\n          name: \"Sequence\",\n          element: {\n            constraints: {\n              Pattern: new RegExp(\"^sg_\\\\w+$\"),\n            },\n            type: {\n              name: \"String\",\n            },\n          },\n        },\n      },\n      tx: {\n        serializedName: \"tx\",\n        type: {\n          name: \"Composite\",\n          className: \"Tx\",\n        },\n      },\n    },\n  },\n};\n\nexport const PathsVdg67V3TransfersGetResponses200ContentApplicationJsonSchemaAllof0: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"PathsVdg67V3TransfersGetResponses200ContentApplicationJsonSchemaAllof0\",\n      modelProperties: {\n        data: {\n          serializedName: \"data\",\n          required: true,\n          type: {\n            name: \"Sequence\",\n            element: {\n              type: {\n                name: \"Composite\",\n                className: \"Transfer\",\n              },\n            },\n          },\n        },\n      },\n    },\n  };\n\nexport const Transfer: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"Transfer\",\n    modelProperties: {\n      accountId: {\n        constraints: {\n          Pattern: new RegExp(\"^ak_\\\\w{38,50}$\"),\n        },\n        serializedName: \"account_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      amount: {\n        serializedName: \"amount\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      height: {\n        serializedName: \"height\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      kind: {\n        serializedName: \"kind\",\n        required: true,\n        type: {\n          name: \"Enum\",\n          allowedValues: [\"reward_dev\", \"reward_block\"],\n        },\n      },\n      refBlockHash: {\n        constraints: {\n          Pattern: new RegExp(\"^mh_\\\\w{38,50}$\"),\n        },\n        serializedName: \"ref_block_hash\",\n        required: true,\n        nullable: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      refTxHash: {\n        constraints: {\n          Pattern: new RegExp(\"^th_\\\\w{38,50}$\"),\n        },\n        serializedName: \"ref_tx_hash\",\n        required: true,\n        nullable: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      refTxType: {\n        serializedName: \"ref_tx_type\",\n        required: true,\n        nullable: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const Aex9TransferEvent: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"Aex9TransferEvent\",\n    modelProperties: {\n      amount: {\n        serializedName: \"amount\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      blockHeight: {\n        serializedName: \"block_height\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      contractId: {\n        constraints: {\n          Pattern: new RegExp(\"^ct_\\\\w{38,50}$\"),\n        },\n        serializedName: \"contract_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      logIdx: {\n        serializedName: \"log_idx\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      microIndex: {\n        serializedName: \"micro_index\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      microTime: {\n        serializedName: \"micro_time\",\n        required: true,\n        type: {\n          name: \"UnixTime\",\n        },\n      },\n      recipientId: {\n        constraints: {\n          Pattern: new RegExp(\"^ak_\\\\w{38,50}$\"),\n        },\n        serializedName: \"recipient_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      senderId: {\n        constraints: {\n          Pattern: new RegExp(\"^ak_\\\\w{38,50}$\"),\n        },\n        serializedName: \"sender_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      txHash: {\n        constraints: {\n          Pattern: new RegExp(\"^th_\\\\w{38,50}$\"),\n        },\n        serializedName: \"tx_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const Aex9TransferResponse: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"Aex9TransferResponse\",\n    modelProperties: {\n      amount: {\n        serializedName: \"amount\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      blockHeight: {\n        serializedName: \"block_height\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      callTxi: {\n        serializedName: \"call_txi\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      contractId: {\n        constraints: {\n          Pattern: new RegExp(\"^ct_\\\\w{38,50}$\"),\n        },\n        serializedName: \"contract_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      logIdx: {\n        serializedName: \"log_idx\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      microTime: {\n        serializedName: \"micro_time\",\n        required: true,\n        type: {\n          name: \"UnixTime\",\n        },\n      },\n      recipient: {\n        constraints: {\n          Pattern: new RegExp(\"^ak_\\\\w{38,50}$\"),\n        },\n        serializedName: \"recipient\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      sender: {\n        constraints: {\n          Pattern: new RegExp(\"^ak_\\\\w{38,50}$\"),\n        },\n        serializedName: \"sender\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const InternalContractCallEvent: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"InternalContractCallEvent\",\n    modelProperties: {\n      contractTxHash: {\n        constraints: {\n          Pattern: new RegExp(\"^th_\\\\w{38,50}$\"),\n        },\n        serializedName: \"contract_tx_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      contractId: {\n        constraints: {\n          Pattern: new RegExp(\"^ct_\\\\w{38,50}$\"),\n        },\n        serializedName: \"contract_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      callTxHash: {\n        constraints: {\n          Pattern: new RegExp(\"^th_\\\\w{38,50}$\"),\n        },\n        serializedName: \"call_tx_hash\",\n        type: {\n          name: \"String\",\n        },\n      },\n      function: {\n        serializedName: \"function\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      internalTx: {\n        serializedName: \"internal_tx\",\n        required: true,\n        type: {\n          name: \"Dictionary\",\n          value: { type: { name: \"any\" } },\n        },\n      },\n      height: {\n        serializedName: \"height\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      microIndex: {\n        serializedName: \"micro_index\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      blockHash: {\n        constraints: {\n          Pattern: new RegExp(\"^mh_\\\\w{38,50}$\"),\n        },\n        serializedName: \"block_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const InternalTransferEvent: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"InternalTransferEvent\",\n    modelProperties: {\n      amount: {\n        serializedName: \"amount\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      kind: {\n        serializedName: \"kind\",\n        required: true,\n        type: {\n          name: \"Enum\",\n          allowedValues: [\n            \"accounts_extra_lima\",\n            \"accounts_fortuna\",\n            \"accounts_genesis\",\n            \"accounts_lima\",\n            \"accounts_minerva\",\n            \"contracts_lima\",\n            \"reward_dev\",\n            \"reward_block\",\n            \"fee_refund_oracle\",\n            \"fee_lock_name\",\n            \"fee_refund_name\",\n            \"fee_spend_name\",\n            \"reward_oracle\",\n          ],\n        },\n      },\n      refTxHash: {\n        constraints: {\n          Pattern: new RegExp(\"^th_\\\\w{38,50}$\"),\n        },\n        serializedName: \"ref_tx_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const NameClaimEvent: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"NameClaimEvent\",\n    modelProperties: {\n      txHash: {\n        constraints: {\n          Pattern: new RegExp(\"^th_\\\\w{38,50}$\"),\n        },\n        serializedName: \"tx_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      tx: {\n        serializedName: \"tx\",\n        required: true,\n        type: {\n          name: \"Dictionary\",\n          value: { type: { name: \"any\" } },\n        },\n      },\n    },\n  },\n};\n\nexport const SpendTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"SpendTx\",\n    modelProperties: {\n      recipientId: {\n        serializedName: \"recipient_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      amount: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"amount\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      fee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      ttl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"ttl\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      senderId: {\n        serializedName: \"sender_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      nonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"nonce\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      payload: {\n        serializedName: \"payload\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const ChannelCreateTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"ChannelCreateTx\",\n    modelProperties: {\n      initiatorId: {\n        serializedName: \"initiator_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      initiatorAmount: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"initiator_amount\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      responderId: {\n        serializedName: \"responder_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      responderAmount: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"responder_amount\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      channelReserve: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"channel_reserve\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      lockPeriod: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"lock_period\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      ttl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"ttl\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      fee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      nonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"nonce\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      stateHash: {\n        serializedName: \"state_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      delegateIds: {\n        serializedName: \"delegate_ids\",\n        type: {\n          name: \"Composite\",\n          className: \"Delegates\",\n        },\n      },\n    },\n  },\n};\n\nexport const ChannelDepositTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"ChannelDepositTx\",\n    modelProperties: {\n      channelId: {\n        serializedName: \"channel_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      fromId: {\n        serializedName: \"from_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      amount: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"amount\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      ttl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"ttl\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      fee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      nonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"nonce\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      stateHash: {\n        serializedName: \"state_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      round: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"round\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const ChannelWithdrawTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"ChannelWithdrawTx\",\n    modelProperties: {\n      channelId: {\n        serializedName: \"channel_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      toId: {\n        serializedName: \"to_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      amount: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"amount\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      ttl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"ttl\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      fee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      nonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"nonce\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      stateHash: {\n        serializedName: \"state_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      round: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"round\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const ChannelForceProgressTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"ChannelForceProgressTx\",\n    modelProperties: {\n      channelId: {\n        serializedName: \"channel_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      fromId: {\n        serializedName: \"from_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      payload: {\n        serializedName: \"payload\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      round: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"round\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      update: {\n        serializedName: \"update\",\n        type: {\n          name: \"Composite\",\n          className: \"OffChainUpdate\",\n        },\n      },\n      stateHash: {\n        serializedName: \"state_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      ttl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"ttl\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      fee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      nonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"nonce\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      offchainTrees: {\n        serializedName: \"offchain_trees\",\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const ChannelCloseMutualTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"ChannelCloseMutualTx\",\n    modelProperties: {\n      channelId: {\n        serializedName: \"channel_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      fromId: {\n        serializedName: \"from_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      initiatorAmountFinal: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"initiator_amount_final\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      responderAmountFinal: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"responder_amount_final\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      ttl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"ttl\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      fee: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      nonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"nonce\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const ChannelCloseSoloTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"ChannelCloseSoloTx\",\n    modelProperties: {\n      channelId: {\n        serializedName: \"channel_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      fromId: {\n        serializedName: \"from_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      payload: {\n        serializedName: \"payload\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      ttl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"ttl\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      fee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      nonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"nonce\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      poi: {\n        serializedName: \"poi\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const ChannelSlashTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"ChannelSlashTx\",\n    modelProperties: {\n      channelId: {\n        serializedName: \"channel_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      fromId: {\n        serializedName: \"from_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      payload: {\n        serializedName: \"payload\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      ttl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"ttl\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      fee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      nonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"nonce\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      poi: {\n        serializedName: \"poi\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const ChannelSettleTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"ChannelSettleTx\",\n    modelProperties: {\n      channelId: {\n        serializedName: \"channel_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      fromId: {\n        serializedName: \"from_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      initiatorAmountFinal: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"initiator_amount_final\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      responderAmountFinal: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"responder_amount_final\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      ttl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"ttl\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      fee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      nonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"nonce\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const ChannelSnapshotSoloTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"ChannelSnapshotSoloTx\",\n    modelProperties: {\n      channelId: {\n        serializedName: \"channel_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      fromId: {\n        serializedName: \"from_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      payload: {\n        serializedName: \"payload\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      ttl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"ttl\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      fee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      nonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"nonce\",\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const ChannelSetDelegatesTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"ChannelSetDelegatesTx\",\n    modelProperties: {\n      channelId: {\n        serializedName: \"channel_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      fromId: {\n        serializedName: \"from_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      initiatorDelegateIds: {\n        serializedName: \"initiator_delegate_ids\",\n        required: true,\n        type: {\n          name: \"Sequence\",\n          element: {\n            type: {\n              name: \"String\",\n            },\n          },\n        },\n      },\n      responderDelegateIds: {\n        serializedName: \"responder_delegate_ids\",\n        required: true,\n        type: {\n          name: \"Sequence\",\n          element: {\n            type: {\n              name: \"String\",\n            },\n          },\n        },\n      },\n      stateHash: {\n        serializedName: \"state_hash\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      round: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"round\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      payload: {\n        serializedName: \"payload\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      ttl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"ttl\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      fee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      nonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"nonce\",\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const OracleQueryTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"OracleQueryTx\",\n    modelProperties: {\n      oracleId: {\n        serializedName: \"oracle_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      query: {\n        serializedName: \"query\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      queryFee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"query_fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      queryTtl: {\n        serializedName: \"query_ttl\",\n        type: {\n          name: \"Composite\",\n          className: \"Ttl\",\n        },\n      },\n      responseTtl: {\n        serializedName: \"response_ttl\",\n        type: {\n          name: \"Composite\",\n          className: \"RelativeTTL\",\n        },\n      },\n      fee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      ttl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"ttl\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      senderId: {\n        serializedName: \"sender_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      nonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"nonce\",\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const OracleRespondTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"OracleRespondTx\",\n    modelProperties: {\n      queryId: {\n        serializedName: \"query_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      response: {\n        serializedName: \"response\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      responseTtl: {\n        serializedName: \"response_ttl\",\n        type: {\n          name: \"Composite\",\n          className: \"RelativeTTL\",\n        },\n      },\n      fee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      ttl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"ttl\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      oracleId: {\n        serializedName: \"oracle_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      nonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"nonce\",\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const NamePreclaimTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"NamePreclaimTx\",\n    modelProperties: {\n      commitmentId: {\n        serializedName: \"commitment_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      fee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      ttl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"ttl\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      accountId: {\n        serializedName: \"account_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      nonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"nonce\",\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const ContractCallTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"ContractCallTx\",\n    modelProperties: {\n      callerId: {\n        serializedName: \"caller_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      nonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"nonce\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      contractId: {\n        serializedName: \"contract_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      abiVersion: {\n        constraints: {\n          InclusiveMaximum: 65535,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"abi_version\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      fee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      ttl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"ttl\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      amount: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"amount\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      gas: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"gas\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      gasPrice: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"gas_price\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      callData: {\n        serializedName: \"call_data\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const GAAttachTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"GAAttachTx\",\n    modelProperties: {\n      ownerId: {\n        serializedName: \"owner_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      nonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"nonce\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      code: {\n        serializedName: \"code\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      vmVersion: {\n        constraints: {\n          InclusiveMaximum: 65535,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"vm_version\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      abiVersion: {\n        constraints: {\n          InclusiveMaximum: 65535,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"abi_version\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      gas: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"gas\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      gasPrice: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"gas_price\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      fee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      ttl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"ttl\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      callData: {\n        serializedName: \"call_data\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      authFun: {\n        constraints: {\n          Pattern: new RegExp(\"^(0x|0X)?[a-fA-F0-9]+$\"),\n        },\n        serializedName: \"auth_fun\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const GAMetaTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"GAMetaTx\",\n    modelProperties: {\n      gaId: {\n        serializedName: \"ga_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      abiVersion: {\n        constraints: {\n          InclusiveMaximum: 65535,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"abi_version\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      gas: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"gas\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      gasPrice: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"gas_price\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      fee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      ttl: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"ttl\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      authData: {\n        serializedName: \"auth_data\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      tx: {\n        serializedName: \"tx\",\n        type: {\n          name: \"Composite\",\n          className: \"SignedTx\",\n        },\n      },\n    },\n  },\n};\n\nexport const PayingForTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"PayingForTx\",\n    modelProperties: {\n      payerId: {\n        serializedName: \"payer_id\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      fee: {\n        constraints: {\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"fee\",\n        required: true,\n        type: {\n          // @ts-expect-error we are extending autorest with BigInt support\n          name: \"BigInt\",\n        },\n      },\n      nonce: {\n        constraints: {\n          InclusiveMaximum: 18446744073709552000,\n          InclusiveMinimum: 0,\n        },\n        serializedName: \"nonce\",\n        type: {\n          name: \"Number\",\n        },\n      },\n      tx: {\n        serializedName: \"tx\",\n        type: {\n          name: \"Composite\",\n          className: \"SignedTx\",\n        },\n      },\n    },\n  },\n};\n\nexport const Paths1EfdbjrV3AccountsAccountidActivitiesGetResponses200ContentApplicationJsonSchema: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths1EfdbjrV3AccountsAccountidActivitiesGetResponses200ContentApplicationJsonSchema\",\n      modelProperties: {\n        ...PathsBx0Ya3V3AccountsAccountidActivitiesGetResponses200ContentApplicationJsonSchemaAllof0\n          .type.modelProperties,\n        ...PaginatedResponse.type.modelProperties,\n      },\n    },\n  };\n\nexport const Paths3Hsv3GV3AccountsAccountidAex141TokensGetResponses200ContentApplicationJsonSchema: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths3Hsv3GV3AccountsAccountidAex141TokensGetResponses200ContentApplicationJsonSchema\",\n      modelProperties: {\n        ...Paths1Q9E32FV3AccountsAccountidAex141TokensGetResponses200ContentApplicationJsonSchemaAllof0\n          .type.modelProperties,\n        ...PaginatedResponse.type.modelProperties,\n      },\n    },\n  };\n\nexport const PathsKm52GqV3AccountsAccountidAex9BalancesGetResponses200ContentApplicationJsonSchema: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"PathsKm52GqV3AccountsAccountidAex9BalancesGetResponses200ContentApplicationJsonSchema\",\n      modelProperties: {\n        ...PaginatedResponse.type.modelProperties,\n        ...PathsZ92TkfV3AccountsAccountidAex9BalancesGetResponses200ContentApplicationJsonSchemaAllof1\n          .type.modelProperties,\n      },\n    },\n  };\n\nexport const PathsZpy8S9V3AccountsAccountidDexSwapsGetResponses200ContentApplicationJsonSchema: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"PathsZpy8S9V3AccountsAccountidDexSwapsGetResponses200ContentApplicationJsonSchema\",\n      modelProperties: {\n        ...Paths10R8Q7PV3AccountsAccountidDexSwapsGetResponses200ContentApplicationJsonSchemaAllof0\n          .type.modelProperties,\n        ...PaginatedResponse.type.modelProperties,\n      },\n    },\n  };\n\nexport const Paths16Cyh9EV3AccountsAccountidNamesClaimsGetResponses200ContentApplicationJsonSchema: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths16Cyh9EV3AccountsAccountidNamesClaimsGetResponses200ContentApplicationJsonSchema\",\n      modelProperties: {\n        ...Paths16G4GzrV3AccountsAccountidNamesClaimsGetResponses200ContentApplicationJsonSchemaAllof0\n          .type.modelProperties,\n        ...PaginatedResponse.type.modelProperties,\n      },\n    },\n  };\n\nexport const Paths1Mheci5V3AccountsAccountidNamesPointeesGetResponses200ContentApplicationJsonSchema: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths1Mheci5V3AccountsAccountidNamesPointeesGetResponses200ContentApplicationJsonSchema\",\n      modelProperties: {\n        ...PathsA60QxwV3AccountsAccountidNamesPointeesGetResponses200ContentApplicationJsonSchemaAllof0\n          .type.modelProperties,\n        ...PaginatedResponse.type.modelProperties,\n      },\n    },\n  };\n\nexport const Paths1XwlyjtV3Aex141GetResponses200ContentApplicationJsonSchema: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths1XwlyjtV3Aex141GetResponses200ContentApplicationJsonSchema\",\n      modelProperties: {\n        ...Paths8I0YgwV3Aex141GetResponses200ContentApplicationJsonSchemaAllof0\n          .type.modelProperties,\n        ...PaginatedResponse.type.modelProperties,\n      },\n    },\n  };\n\nexport const Paths181AjwxV3Aex141ContractidTemplatesGetResponses200ContentApplicationJsonSchema: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths181AjwxV3Aex141ContractidTemplatesGetResponses200ContentApplicationJsonSchema\",\n      modelProperties: {\n        ...PathsWkpcwaV3Aex141ContractidTemplatesGetResponses200ContentApplicationJsonSchemaAllof0\n          .type.modelProperties,\n        ...PaginatedResponse.type.modelProperties,\n      },\n    },\n  };\n\nexport const Paths15Mi2TaV3Aex141ContractidTemplatesTemplateidTokensGetResponses200ContentApplicationJsonSchema: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths15Mi2TaV3Aex141ContractidTemplatesTemplateidTokensGetResponses200ContentApplicationJsonSchema\",\n      modelProperties: {\n        ...PathsRay4X0V3Aex141ContractidTemplatesTemplateidTokensGetResponses200ContentApplicationJsonSchemaAllof0\n          .type.modelProperties,\n        ...PaginatedResponse.type.modelProperties,\n      },\n    },\n  };\n\nexport const PathsWl652MV3Aex141ContractidTokensGetResponses200ContentApplicationJsonSchema: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"PathsWl652MV3Aex141ContractidTokensGetResponses200ContentApplicationJsonSchema\",\n      modelProperties: {\n        ...Paths1TkisghV3Aex141ContractidTokensGetResponses200ContentApplicationJsonSchemaAllof0\n          .type.modelProperties,\n        ...PaginatedResponse.type.modelProperties,\n      },\n    },\n  };\n\nexport const Paths1O7Q6IhV3Aex141ContractidTransfersGetResponses200ContentApplicationJsonSchema: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths1O7Q6IhV3Aex141ContractidTransfersGetResponses200ContentApplicationJsonSchema\",\n      modelProperties: {\n        ...Paths1A8Ah39V3Aex141ContractidTransfersGetResponses200ContentApplicationJsonSchemaAllof0\n          .type.modelProperties,\n        ...PaginatedResponse.type.modelProperties,\n      },\n    },\n  };\n\nexport const Paths1Vr3Y2EV3Aex9GetResponses200ContentApplicationJsonSchema: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths1Vr3Y2EV3Aex9GetResponses200ContentApplicationJsonSchema\",\n      modelProperties: {\n        ...Paths1Uqqby0V3Aex9GetResponses200ContentApplicationJsonSchemaAllof0\n          .type.modelProperties,\n        ...PaginatedResponse.type.modelProperties,\n      },\n    },\n  };\n\nexport const Paths1N61UurV3Aex9ContractidBalancesGetResponses200ContentApplicationJsonSchema: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths1N61UurV3Aex9ContractidBalancesGetResponses200ContentApplicationJsonSchema\",\n      modelProperties: {\n        ...PathsEeiffwV3Aex9ContractidBalancesGetResponses200ContentApplicationJsonSchemaAllof0\n          .type.modelProperties,\n        ...PaginatedResponse.type.modelProperties,\n      },\n    },\n  };\n\nexport const Paths1Uybd4PV3Aex9ContractidBalancesAccountidHistoryGetResponses200ContentApplicationJsonSchema: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths1Uybd4PV3Aex9ContractidBalancesAccountidHistoryGetResponses200ContentApplicationJsonSchema\",\n      modelProperties: {\n        ...PaginatedResponse.type.modelProperties,\n        ...Paths108B3VtV3Aex9ContractidBalancesAccountidHistoryGetResponses200ContentApplicationJsonSchemaAllof1\n          .type.modelProperties,\n      },\n    },\n  };\n\nexport const Paths3EzhapV3ChannelsGetResponses200ContentApplicationJsonSchema: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths3EzhapV3ChannelsGetResponses200ContentApplicationJsonSchema\",\n      modelProperties: {\n        ...PathsQmewnaV3ChannelsGetResponses200ContentApplicationJsonSchemaAllof0\n          .type.modelProperties,\n        ...PaginatedResponse.type.modelProperties,\n      },\n    },\n  };\n\nexport const Paths1Txblx8V3ContractsCallsGetResponses200ContentApplicationJsonSchema: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths1Txblx8V3ContractsCallsGetResponses200ContentApplicationJsonSchema\",\n      modelProperties: {\n        ...Paths18L84JcV3ContractsCallsGetResponses200ContentApplicationJsonSchemaAllof0\n          .type.modelProperties,\n        ...PaginatedResponse.type.modelProperties,\n      },\n    },\n  };\n\nexport const Paths7A1M6RV3ContractsLogsGetResponses200ContentApplicationJsonSchema: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths7A1M6RV3ContractsLogsGetResponses200ContentApplicationJsonSchema\",\n      modelProperties: {\n        ...Paths10Kk1UxV3ContractsLogsGetResponses200ContentApplicationJsonSchemaAllof0\n          .type.modelProperties,\n        ...PaginatedResponse.type.modelProperties,\n      },\n    },\n  };\n\nexport const Paths1Di8FnjV3DexSwapsGetResponses200ContentApplicationJsonSchema: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths1Di8FnjV3DexSwapsGetResponses200ContentApplicationJsonSchema\",\n      modelProperties: {\n        ...Paths9Yfxl2V3DexSwapsGetResponses200ContentApplicationJsonSchemaAllof0\n          .type.modelProperties,\n        ...PaginatedResponse.type.modelProperties,\n      },\n    },\n  };\n\nexport const PathsKwxlzlV3DexContractIdSwapsGetResponses200ContentApplicationJsonSchema: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"PathsKwxlzlV3DexContractIdSwapsGetResponses200ContentApplicationJsonSchema\",\n      modelProperties: {\n        ...Paths6Vze8ZV3DexContractIdSwapsGetResponses200ContentApplicationJsonSchemaAllof0\n          .type.modelProperties,\n        ...PaginatedResponse.type.modelProperties,\n      },\n    },\n  };\n\nexport const Paths194Lg3IV3HyperchainEpochsGetResponses200ContentApplicationJsonSchema: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths194Lg3IV3HyperchainEpochsGetResponses200ContentApplicationJsonSchema\",\n      modelProperties: {\n        ...Paths1F8GzwrV3HyperchainEpochsGetResponses200ContentApplicationJsonSchemaAllof0\n          .type.modelProperties,\n        ...PaginatedResponse.type.modelProperties,\n      },\n    },\n  };\n\nexport const Paths1S5Zlt1V3HyperchainScheduleGetResponses200ContentApplicationJsonSchema: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths1S5Zlt1V3HyperchainScheduleGetResponses200ContentApplicationJsonSchema\",\n      modelProperties: {\n        ...Paths7W5O80V3HyperchainScheduleGetResponses200ContentApplicationJsonSchemaAllof0\n          .type.modelProperties,\n        ...PaginatedResponse.type.modelProperties,\n      },\n    },\n  };\n\nexport const Paths1Ibn686V3HyperchainValidatorsGetResponses200ContentApplicationJsonSchema: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths1Ibn686V3HyperchainValidatorsGetResponses200ContentApplicationJsonSchema\",\n      modelProperties: {\n        ...Paths1Qg7SclV3HyperchainValidatorsGetResponses200ContentApplicationJsonSchemaAllof0\n          .type.modelProperties,\n        ...PaginatedResponse.type.modelProperties,\n      },\n    },\n  };\n\nexport const Paths1I4U8D5V3HyperchainValidatorsValidatorDelegatesGetResponses200ContentApplicationJsonSchema: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths1I4U8D5V3HyperchainValidatorsValidatorDelegatesGetResponses200ContentApplicationJsonSchema\",\n      modelProperties: {\n        ...Paths7Ks32NV3HyperchainValidatorsValidatorDelegatesGetResponses200ContentApplicationJsonSchemaAllof0\n          .type.modelProperties,\n        ...PaginatedResponse.type.modelProperties,\n      },\n    },\n  };\n\nexport const Paths15K0AlgV3HyperchainValidatorsValidatorDelegatesTopGetResponses200ContentApplicationJsonSchema: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths15K0AlgV3HyperchainValidatorsValidatorDelegatesTopGetResponses200ContentApplicationJsonSchema\",\n      modelProperties: {\n        ...PathsDwhnfdV3HyperchainValidatorsValidatorDelegatesTopGetResponses200ContentApplicationJsonSchemaAllof0\n          .type.modelProperties,\n        ...PaginatedResponse.type.modelProperties,\n      },\n    },\n  };\n\nexport const Paths277OngV3KeyBlocksGetResponses200ContentApplicationJsonSchema: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths277OngV3KeyBlocksGetResponses200ContentApplicationJsonSchema\",\n      modelProperties: {\n        ...PathsEue6HzV3KeyBlocksGetResponses200ContentApplicationJsonSchemaAllof0\n          .type.modelProperties,\n        ...PaginatedResponse.type.modelProperties,\n      },\n    },\n  };\n\nexport const Paths1159W94V3KeyBlocksHashOrKbiMicroBlocksGetResponses200ContentApplicationJsonSchema: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths1159W94V3KeyBlocksHashOrKbiMicroBlocksGetResponses200ContentApplicationJsonSchema\",\n      modelProperties: {\n        ...PathsNn60D7V3KeyBlocksHashOrKbiMicroBlocksGetResponses200ContentApplicationJsonSchemaAllof0\n          .type.modelProperties,\n        ...PaginatedResponse.type.modelProperties,\n      },\n    },\n  };\n\nexport const Paths15Bkk50V3MicroBlocksHashTransactionsGetResponses200ContentApplicationJsonSchema: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths15Bkk50V3MicroBlocksHashTransactionsGetResponses200ContentApplicationJsonSchema\",\n      modelProperties: {\n        ...PathsXhlqwrV3MicroBlocksHashTransactionsGetResponses200ContentApplicationJsonSchemaAllof0\n          .type.modelProperties,\n        ...PaginatedResponse.type.modelProperties,\n      },\n    },\n  };\n\nexport const Paths12S1Nd4V3NamesGetResponses200ContentApplicationJsonSchema: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths12S1Nd4V3NamesGetResponses200ContentApplicationJsonSchema\",\n      modelProperties: {\n        ...Paths181Cs9V3NamesGetResponses200ContentApplicationJsonSchemaAllof0\n          .type.modelProperties,\n        ...PaginatedResponse.type.modelProperties,\n      },\n    },\n  };\n\nexport const PathsKjq4D4V3NamesAuctionsGetResponses200ContentApplicationJsonSchema: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"PathsKjq4D4V3NamesAuctionsGetResponses200ContentApplicationJsonSchema\",\n      modelProperties: {\n        ...Paths1R08F8HV3NamesAuctionsGetResponses200ContentApplicationJsonSchemaAllof0\n          .type.modelProperties,\n        ...PaginatedResponse.type.modelProperties,\n      },\n    },\n  };\n\nexport const Paths1F98AqgV3NamesIdClaimsGetResponses200ContentApplicationJsonSchema: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths1F98AqgV3NamesIdClaimsGetResponses200ContentApplicationJsonSchema\",\n      modelProperties: {\n        ...PathsMyl4W2V3NamesIdClaimsGetResponses200ContentApplicationJsonSchemaAllof0\n          .type.modelProperties,\n        ...PaginatedResponse.type.modelProperties,\n      },\n    },\n  };\n\nexport const Paths1Raw8PV3NamesIdTransfersGetResponses200ContentApplicationJsonSchema: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths1Raw8PV3NamesIdTransfersGetResponses200ContentApplicationJsonSchema\",\n      modelProperties: {\n        ...Paths1Ukwk06V3NamesIdTransfersGetResponses200ContentApplicationJsonSchemaAllof0\n          .type.modelProperties,\n        ...PaginatedResponse.type.modelProperties,\n      },\n    },\n  };\n\nexport const Paths1Ec8CltV3NamesIdUpdatesGetResponses200ContentApplicationJsonSchema: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths1Ec8CltV3NamesIdUpdatesGetResponses200ContentApplicationJsonSchema\",\n      modelProperties: {\n        ...PathsRcnvllV3NamesIdUpdatesGetResponses200ContentApplicationJsonSchemaAllof0\n          .type.modelProperties,\n        ...PaginatedResponse.type.modelProperties,\n      },\n    },\n  };\n\nexport const Paths1E14NekV3OraclesGetResponses200ContentApplicationJsonSchema: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths1E14NekV3OraclesGetResponses200ContentApplicationJsonSchema\",\n      modelProperties: {\n        ...PathsGcr9MrV3OraclesGetResponses200ContentApplicationJsonSchemaAllof0\n          .type.modelProperties,\n        ...PaginatedResponse.type.modelProperties,\n      },\n    },\n  };\n\nexport const Paths1L5C64RV3OraclesIdExtendsGetResponses200ContentApplicationJsonSchema: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths1L5C64RV3OraclesIdExtendsGetResponses200ContentApplicationJsonSchema\",\n      modelProperties: {\n        ...PathsZ4L2QlV3OraclesIdExtendsGetResponses200ContentApplicationJsonSchemaAllof0\n          .type.modelProperties,\n        ...PaginatedResponse.type.modelProperties,\n      },\n    },\n  };\n\nexport const Paths8722JhV3OraclesIdQueriesGetResponses200ContentApplicationJsonSchema: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths8722JhV3OraclesIdQueriesGetResponses200ContentApplicationJsonSchema\",\n      modelProperties: {\n        ...Paths1Uni7AtV3OraclesIdQueriesGetResponses200ContentApplicationJsonSchemaAllof0\n          .type.modelProperties,\n        ...PaginatedResponse.type.modelProperties,\n      },\n    },\n  };\n\nexport const PathsVron83V3OraclesIdResponsesGetResponses200ContentApplicationJsonSchema: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"PathsVron83V3OraclesIdResponsesGetResponses200ContentApplicationJsonSchema\",\n      modelProperties: {\n        ...Paths1Tcj5A9V3OraclesIdResponsesGetResponses200ContentApplicationJsonSchemaAllof0\n          .type.modelProperties,\n        ...PaginatedResponse.type.modelProperties,\n      },\n    },\n  };\n\nexport const PathsCgzmimV3StatsActiveAccountsGetResponses200ContentApplicationJsonSchema: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"PathsCgzmimV3StatsActiveAccountsGetResponses200ContentApplicationJsonSchema\",\n      modelProperties: {\n        ...PathsFso5IiV3StatsActiveAccountsGetResponses200ContentApplicationJsonSchemaAllof0\n          .type.modelProperties,\n        ...PaginatedResponse.type.modelProperties,\n      },\n    },\n  };\n\nexport const Paths1UxyhelV3StatsAex9TransfersGetResponses200ContentApplicationJsonSchema: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths1UxyhelV3StatsAex9TransfersGetResponses200ContentApplicationJsonSchema\",\n      modelProperties: {\n        ...Paths1Fl1Lh2V3StatsAex9TransfersGetResponses200ContentApplicationJsonSchemaAllof0\n          .type.modelProperties,\n        ...PaginatedResponse.type.modelProperties,\n      },\n    },\n  };\n\nexport const Paths1Sxjoy0V3StatsBlocksGetResponses200ContentApplicationJsonSchema: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths1Sxjoy0V3StatsBlocksGetResponses200ContentApplicationJsonSchema\",\n      modelProperties: {\n        ...Paths1A27TirV3StatsBlocksGetResponses200ContentApplicationJsonSchemaAllof0\n          .type.modelProperties,\n        ...PaginatedResponse.type.modelProperties,\n      },\n    },\n  };\n\nexport const PathsWbrhqnV3StatsContractsGetResponses200ContentApplicationJsonSchema: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"PathsWbrhqnV3StatsContractsGetResponses200ContentApplicationJsonSchema\",\n      modelProperties: {\n        ...Paths72Dp44V3StatsContractsGetResponses200ContentApplicationJsonSchemaAllof0\n          .type.modelProperties,\n        ...PaginatedResponse.type.modelProperties,\n      },\n    },\n  };\n\nexport const Paths5Xf9ScV3StatsDeltaGetResponses200ContentApplicationJsonSchema: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths5Xf9ScV3StatsDeltaGetResponses200ContentApplicationJsonSchema\",\n      modelProperties: {\n        ...Paths1J83O75V3StatsDeltaGetResponses200ContentApplicationJsonSchemaAllof0\n          .type.modelProperties,\n        ...PaginatedResponse.type.modelProperties,\n      },\n    },\n  };\n\nexport const Paths1D7Up0DV3StatsDifficultyGetResponses200ContentApplicationJsonSchema: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths1D7Up0DV3StatsDifficultyGetResponses200ContentApplicationJsonSchema\",\n      modelProperties: {\n        ...Paths1Qw6KhfV3StatsDifficultyGetResponses200ContentApplicationJsonSchemaAllof0\n          .type.modelProperties,\n        ...PaginatedResponse.type.modelProperties,\n      },\n    },\n  };\n\nexport const PathsR51VshV3StatsHashrateGetResponses200ContentApplicationJsonSchema: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"PathsR51VshV3StatsHashrateGetResponses200ContentApplicationJsonSchema\",\n      modelProperties: {\n        ...Paths1IskjkV3StatsHashrateGetResponses200ContentApplicationJsonSchemaAllof0\n          .type.modelProperties,\n        ...PaginatedResponse.type.modelProperties,\n      },\n    },\n  };\n\nexport const PathsA8Q6T7V3StatsMinersGetResponses200ContentApplicationJsonSchema: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"PathsA8Q6T7V3StatsMinersGetResponses200ContentApplicationJsonSchema\",\n      modelProperties: {\n        ...Paths50Qhc7V3StatsMinersGetResponses200ContentApplicationJsonSchemaAllof0\n          .type.modelProperties,\n        ...PaginatedResponse.type.modelProperties,\n      },\n    },\n  };\n\nexport const PathsCeyhpaV3StatsNamesGetResponses200ContentApplicationJsonSchema: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"PathsCeyhpaV3StatsNamesGetResponses200ContentApplicationJsonSchema\",\n      modelProperties: {\n        ...PathsD92Xl6V3StatsNamesGetResponses200ContentApplicationJsonSchemaAllof0\n          .type.modelProperties,\n        ...PaginatedResponse.type.modelProperties,\n      },\n    },\n  };\n\nexport const PathsJoz7P5V3StatsTotalGetResponses200ContentApplicationJsonSchema: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"PathsJoz7P5V3StatsTotalGetResponses200ContentApplicationJsonSchema\",\n      modelProperties: {\n        ...Paths1K55ZdgV3StatsTotalGetResponses200ContentApplicationJsonSchemaAllof0\n          .type.modelProperties,\n        ...PaginatedResponse.type.modelProperties,\n      },\n    },\n  };\n\nexport const Paths15F3FfuV3StatsTotalAccountsGetResponses200ContentApplicationJsonSchema: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths15F3FfuV3StatsTotalAccountsGetResponses200ContentApplicationJsonSchema\",\n      modelProperties: {\n        ...Paths3Bfys0V3StatsTotalAccountsGetResponses200ContentApplicationJsonSchemaAllof0\n          .type.modelProperties,\n        ...PaginatedResponse.type.modelProperties,\n      },\n    },\n  };\n\nexport const Paths1IfhshmV3StatsTransactionsGetResponses200ContentApplicationJsonSchema: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths1IfhshmV3StatsTransactionsGetResponses200ContentApplicationJsonSchema\",\n      modelProperties: {\n        ...Paths6PaqluV3StatsTransactionsGetResponses200ContentApplicationJsonSchemaAllof0\n          .type.modelProperties,\n        ...PaginatedResponse.type.modelProperties,\n      },\n    },\n  };\n\nexport const Paths1Pymq07V3TransactionsGetResponses200ContentApplicationJsonSchema: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"Paths1Pymq07V3TransactionsGetResponses200ContentApplicationJsonSchema\",\n      modelProperties: {\n        ...PathsHa9C78V3TransactionsGetResponses200ContentApplicationJsonSchemaAllof0\n          .type.modelProperties,\n        ...PaginatedResponse.type.modelProperties,\n      },\n    },\n  };\n\nexport const PathsUq0T7JV3TransactionsPendingGetResponses200ContentApplicationJsonSchema: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"PathsUq0T7JV3TransactionsPendingGetResponses200ContentApplicationJsonSchema\",\n      modelProperties: {\n        ...PathsI72FylV3TransactionsPendingGetResponses200ContentApplicationJsonSchemaAllof0\n          .type.modelProperties,\n        ...PaginatedResponse.type.modelProperties,\n      },\n    },\n  };\n\nexport const PathsA7P0KiV3TransfersGetResponses200ContentApplicationJsonSchema: coreClient.CompositeMapper =\n  {\n    type: {\n      name: \"Composite\",\n      className:\n        \"PathsA7P0KiV3TransfersGetResponses200ContentApplicationJsonSchema\",\n      modelProperties: {\n        ...PathsVdg67V3TransfersGetResponses200ContentApplicationJsonSchemaAllof0\n          .type.modelProperties,\n        ...PaginatedResponse.type.modelProperties,\n      },\n    },\n  };\n\nexport const AuctionLastBidTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"AuctionLastBidTx\",\n    modelProperties: {\n      ...NameClaimTx.type.modelProperties,\n      ...Components17W16A5SchemasAuctionPropertiesLastBidPropertiesTxAllof1.type\n        .modelProperties,\n    },\n  },\n};\n\nexport const KeyBlockExtended: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"KeyBlockExtended\",\n    modelProperties: {\n      ...KeyBlock.type.modelProperties,\n      beneficiaryReward: {\n        serializedName: \"beneficiary_reward\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      flags: {\n        constraints: {\n          Pattern: new RegExp(\"^ba_\\\\w+$\"),\n        },\n        serializedName: \"flags\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n      microBlocksCount: {\n        serializedName: \"micro_blocks_count\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      transactionsCount: {\n        serializedName: \"transactions_count\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n    },\n  },\n};\n\nexport const MicroBlockExtended: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"MicroBlockExtended\",\n    modelProperties: {\n      ...MicroBlockHeader.type.modelProperties,\n      microBlockIndex: {\n        serializedName: \"micro_block_index\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      transactionsCount: {\n        serializedName: \"transactions_count\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      gas: {\n        serializedName: \"gas\",\n        required: true,\n        type: {\n          name: \"Number\",\n        },\n      },\n      flags: {\n        constraints: {\n          Pattern: new RegExp(\"^ba_\\\\w+$\"),\n        },\n        serializedName: \"flags\",\n        required: true,\n        type: {\n          name: \"String\",\n        },\n      },\n    },\n  },\n};\n\nexport const NameTxTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"NameTxTx\",\n    modelProperties: {\n      ...NameRevokeTx.type.modelProperties,\n      ...Components171VsjiSchemasNametxPropertiesTxAllof1.type.modelProperties,\n    },\n  },\n};\n\nexport const OracleTxTx: coreClient.CompositeMapper = {\n  type: {\n    name: \"Composite\",\n    className: \"OracleTxTx\",\n    modelProperties: {\n      ...OracleRegisterTx.type.modelProperties,\n      ...Components1Viuqa3SchemasOracletxPropertiesTxAllof1.type\n        .modelProperties,\n    },\n  },\n};\n\nexport let discriminators = {\n  \"OffChainUpdate.OffChainUpdate\": OffChainUpdate,\n};\n","import { createSerializer } from \"../../utils/autorest.js\";\nimport * as coreClient from \"@azure/core-client\";\nimport * as Parameters from \"./models/parameters.js\";\nimport * as Mappers from \"./models/mappers.js\";\nimport {\n  MiddlewareOptionalParams,\n  GetAccountActivitiesOptionalParams,\n  GetAccountActivitiesResponse,\n  GetAex141OwnedTokensOptionalParams,\n  GetAex141OwnedTokensResponse,\n  GetAex9AccountBalancesOptionalParams,\n  GetAex9AccountBalancesResponse,\n  GetAccountDexSwapsOptionalParams,\n  GetAccountDexSwapsResponse,\n  GetAccountNameClaimsOptionalParams,\n  GetAccountNameClaimsResponse,\n  GetAccountPointeesOptionalParams,\n  GetAccountPointeesResponse,\n  GetAccountTransactionsCountOptionalParams,\n  GetAccountTransactionsCountResponse,\n  GetSortedAex141ContractsOptionalParams,\n  GetSortedAex141ContractsResponse,\n  GetAex141ContractTemplatesOptionalParams,\n  GetAex141ContractTemplatesResponse,\n  GetAex141TemplateTokensOptionalParams,\n  GetAex141TemplateTokensResponse,\n  GetAex141ContractTokensOptionalParams,\n  GetAex141ContractTokensResponse,\n  GetAex141TokenOwnerOptionalParams,\n  GetAex141TokenOwnerResponse,\n  GetAex141ContractTransfersOptionalParams,\n  GetAex141ContractTransfersResponse,\n  GetAex141ByContractOptionalParams,\n  GetAex141ByContractResponse,\n  GetSortedAex9TokensOptionalParams,\n  GetSortedAex9TokensResponse,\n  GetAex9TokensCountOptionalParams,\n  GetAex9TokensCountResponse,\n  GetAex9ContractBalancesOptionalParams,\n  GetAex9ContractBalancesResponse,\n  GetAex9ContractAccountBalanceOptionalParams,\n  GetAex9ContractAccountBalanceResponse,\n  GetAex9ContractAccountBalanceHistoryOptionalParams,\n  GetAex9ContractAccountBalanceHistoryResponse,\n  GetAex9ByContractOptionalParams,\n  GetAex9ByContractResponse,\n  GetChannelsOptionalParams,\n  GetChannelsResponse,\n  GetChannelOptionalParams,\n  GetChannelResponse,\n  GetContractCallsOptionalParams,\n  GetContractCallsResponse,\n  GetContractLogsOptionalParams,\n  GetContractLogsResponse,\n  GetContractOptionalParams,\n  GetContractResponse,\n  GetDexSwapsOptionalParams,\n  GetDexSwapsResponse,\n  GetDexSwapsByContractIdOptionalParams,\n  GetDexSwapsByContractIdResponse,\n  GetEpochsOptionalParams,\n  GetEpochsResponse,\n  GetEpochTopOptionalParams,\n  GetEpochTopResponse,\n  GetSchedulesOptionalParams,\n  GetSchedulesResponse,\n  GetScheduleOptionalParams,\n  GetScheduleResponse,\n  GetValidatorsOptionalParams,\n  GetValidatorsResponse,\n  GetValidatorOptionalParams,\n  GetValidatorResponse,\n  GetValidatorDelegatesOptionalParams,\n  GetValidatorDelegatesResponse,\n  GetTopValidatorDelegatesOptionalParams,\n  GetTopValidatorDelegatesResponse,\n  GetKeyBlocksOptionalParams,\n  GetKeyBlocksResponse,\n  GetKeyBlockOptionalParams,\n  GetKeyBlockResponse,\n  GetKeyBlockMicroBlocksOptionalParams,\n  GetKeyBlockMicroBlocksResponse,\n  GetMicroBlockOptionalParams,\n  GetMicroBlockResponse,\n  GetMicroBlockTransactionsOptionalParams,\n  GetMicroBlockTransactionsResponse,\n  GetNamesOptionalParams,\n  GetNamesResponse,\n  GetNamesAuctionsOptionalParams,\n  GetNamesAuctionsResponse,\n  GetNameAuctionOptionalParams,\n  GetNameAuctionResponse,\n  GetNameAuctionClaimsOptionalParams,\n  GetNameAuctionClaimsResponse,\n  GetNamesCountOptionalParams,\n  GetNamesCountResponse,\n  GetNameOptionalParams,\n  GetNameResponse,\n  GetNameClaimsOptionalParams,\n  GetNameClaimsResponse,\n  GetNameTransfersOptionalParams,\n  GetNameTransfersResponse,\n  GetNameUpdatesOptionalParams,\n  GetNameUpdatesResponse,\n  GetOraclesOptionalParams,\n  GetOraclesResponse,\n  GetOracleOptionalParams,\n  GetOracleResponse,\n  GetOracleExtendsOptionalParams,\n  GetOracleExtendsResponse,\n  GetOracleQueriesOptionalParams,\n  GetOracleQueriesResponse,\n  GetOracleResponsesOptionalParams,\n  GetOracleResponsesResponse,\n  GetStatsOptionalParams,\n  GetStatsResponse,\n  GetActiveAccountsStatsOptionalParams,\n  GetActiveAccountsStatsResponse,\n  GetAex9TransfersStatsOptionalParams,\n  GetAex9TransfersStatsResponse,\n  GetBlocksStatsOptionalParams,\n  GetBlocksStatsResponse,\n  GetContractsStatsOptionalParams,\n  GetContractsStatsResponse,\n  GetDeltaStatsOptionalParams,\n  GetDeltaStatsResponse,\n  GetDifficultyStatsOptionalParams,\n  GetDifficultyStatsResponse,\n  GetHashrateStatsOptionalParams,\n  GetHashrateStatsResponse,\n  GetMinerStatsOptionalParams,\n  GetMinerStatsResponse,\n  GetNamesStatsOptionalParams,\n  GetNamesStatsResponse,\n  GetTotalStatsOptionalParams,\n  GetTotalStatsResponse,\n  GetTotalAccountsStatsOptionalParams,\n  GetTotalAccountsStatsResponse,\n  GetTransactionsStatsOptionalParams,\n  GetTransactionsStatsResponse,\n  GetStatusOptionalParams,\n  GetStatusResponse,\n  GetTransactionsOptionalParams,\n  GetTransactionsResponse,\n  GetTransactionsCountOptionalParams,\n  GetTransactionsCountResponse,\n  GetPendingTransactionsOptionalParams,\n  GetPendingTransactionsResponse,\n  GetPendingTransactionsCountOptionalParams,\n  GetPendingTransactionsCountResponse,\n  GetTransactionOptionalParams,\n  GetTransactionResponse,\n  GetTransfersOptionalParams,\n  GetTransfersResponse,\n} from \"./models/index.js\";\n\nexport class Middleware extends coreClient.ServiceClient {\n  readonly $host: string;\n\n  /**\n   * Initializes a new instance of the Middleware class.\n   * @param $host server parameter\n   * @param options The parameter options\n   */\n  constructor($host: string, options?: MiddlewareOptionalParams) {\n    if ($host === undefined) {\n      throw new Error(\"'$host' cannot be null\");\n    }\n\n    // Initializing default values for options\n    if (!options) {\n      options = {};\n    }\n    const defaults: MiddlewareOptionalParams = {\n      requestContentType: \"application/json; charset=utf-8\",\n    };\n\n    const packageDetails = `azsdk-js-middleware/1.0.0-beta.1`;\n    const userAgentPrefix =\n      options.userAgentOptions && options.userAgentOptions.userAgentPrefix\n        ? `${options.userAgentOptions.userAgentPrefix} ${packageDetails}`\n        : `${packageDetails}`;\n\n    const optionsWithDefaults = {\n      ...defaults,\n      ...options,\n      userAgentOptions: {\n        userAgentPrefix,\n      },\n      endpoint: options.endpoint ?? options.baseUri ?? \"{$host}\",\n    };\n    super(optionsWithDefaults);\n    // Parameter assignments\n    this.$host = $host;\n  }\n\n  /**\n   * Get an account activities.\n   * @param accountId The account address Account address\n   * @param options The options parameters.\n   */\n  getAccountActivities(\n    accountId: `ak_${string}`,\n    options?: GetAccountActivitiesOptionalParams,\n  ): Promise<GetAccountActivitiesResponse> {\n    return this.sendOperationRequest(\n      { accountId, options },\n      getAccountActivitiesOperationSpec,\n    );\n  }\n\n  /**\n   * Get tokens owned by an account.\n   * @param accountId The account id Account address\n   * @param options The options parameters.\n   */\n  getAex141OwnedTokens(\n    accountId: `ak_${string}`,\n    options?: GetAex141OwnedTokensOptionalParams,\n  ): Promise<GetAex141OwnedTokensResponse> {\n    return this.sendOperationRequest(\n      { accountId, options },\n      getAex141OwnedTokensOperationSpec,\n    );\n  }\n\n  /**\n   * Get all AEX9 balances for an account on the last block.\n   * @param accountId Account id Account address\n   * @param options The options parameters.\n   */\n  getAex9AccountBalances(\n    accountId: `ak_${string}`,\n    options?: GetAex9AccountBalancesOptionalParams,\n  ): Promise<GetAex9AccountBalancesResponse> {\n    return this.sendOperationRequest(\n      { accountId, options },\n      getAex9AccountBalancesOperationSpec,\n    );\n  }\n\n  /**\n   * Get DEX swap tokens\n   * @param accountId The account id Account address\n   * @param options The options parameters.\n   */\n  getAccountDexSwaps(\n    accountId: `ak_${string}`,\n    options?: GetAccountDexSwapsOptionalParams,\n  ): Promise<GetAccountDexSwapsResponse> {\n    return this.sendOperationRequest(\n      { accountId, options },\n      getAccountDexSwapsOperationSpec,\n    );\n  }\n\n  /**\n   * Get all name claims of an account\n   * @param accountId The account that made the claims Account address\n   * @param options The options parameters.\n   */\n  getAccountNameClaims(\n    accountId: `ak_${string}`,\n    options?: GetAccountNameClaimsOptionalParams,\n  ): Promise<GetAccountNameClaimsResponse> {\n    return this.sendOperationRequest(\n      { accountId, options },\n      getAccountNameClaimsOperationSpec,\n    );\n  }\n\n  /**\n   * Get account pointees\n   * @param accountId The account that names point to Account address\n   * @param options The options parameters.\n   */\n  getAccountPointees(\n    accountId: `ak_${string}`,\n    options?: GetAccountPointeesOptionalParams,\n  ): Promise<GetAccountPointeesResponse> {\n    return this.sendOperationRequest(\n      { accountId, options },\n      getAccountPointeesOperationSpec,\n    );\n  }\n\n  /**\n   * Get transactions count and its type for given aeternity ID.\n   * @param accountId The ID of the address/name/oracle/etc Account address\n   * @param options The options parameters.\n   */\n  getAccountTransactionsCount(\n    accountId: `ak_${string}`,\n    options?: GetAccountTransactionsCountOptionalParams,\n  ): Promise<GetAccountTransactionsCountResponse> {\n    return this.sendOperationRequest(\n      { accountId, options },\n      getAccountTransactionsCountOperationSpec,\n    );\n  }\n\n  /**\n   * Get AEX141 contracts sorted by creation time, name or symbol.\n   * @param options The options parameters.\n   */\n  getSortedAex141Contracts(\n    options?: GetSortedAex141ContractsOptionalParams,\n  ): Promise<GetSortedAex141ContractsResponse> {\n    return this.sendOperationRequest(\n      { options },\n      getSortedAex141ContractsOperationSpec,\n    );\n  }\n\n  /**\n   * Get templates AEX-141 contract tokens.\n   * @param contractId The contract id Contract address\n   * @param options The options parameters.\n   */\n  getAex141ContractTemplates(\n    contractId: `ct_${string}`,\n    options?: GetAex141ContractTemplatesOptionalParams,\n  ): Promise<GetAex141ContractTemplatesResponse> {\n    return this.sendOperationRequest(\n      { contractId, options },\n      getAex141ContractTemplatesOperationSpec,\n    );\n  }\n\n  /**\n   * Get AEX-141 template tokens.\n   * @param contractId Contract id Contract address\n   * @param templateId Template id\n   * @param options The options parameters.\n   */\n  getAex141TemplateTokens(\n    contractId: `ct_${string}`,\n    templateId: number,\n    options?: GetAex141TemplateTokensOptionalParams,\n  ): Promise<GetAex141TemplateTokensResponse> {\n    return this.sendOperationRequest(\n      { contractId, templateId, options },\n      getAex141TemplateTokensOperationSpec,\n    );\n  }\n\n  /**\n   * Get owners of tokens of a AEX-141 contract.\n   * @param contractId The contract id Contract address\n   * @param options The options parameters.\n   */\n  getAex141ContractTokens(\n    contractId: `ct_${string}`,\n    options?: GetAex141ContractTokensOptionalParams,\n  ): Promise<GetAex141ContractTokensResponse> {\n    return this.sendOperationRequest(\n      { contractId, options },\n      getAex141ContractTokensOperationSpec,\n    );\n  }\n\n  /**\n   * Get owner of a NFT (AEX-141 token).\n   * @param contractId The contract id Contract address\n   * @param tokenId The nft token id\n   * @param options The options parameters.\n   */\n  getAex141TokenOwner(\n    contractId: `ct_${string}`,\n    tokenId: number,\n    options?: GetAex141TokenOwnerOptionalParams,\n  ): Promise<GetAex141TokenOwnerResponse> {\n    return this.sendOperationRequest(\n      { contractId, tokenId, options },\n      getAex141TokenOwnerOperationSpec,\n    );\n  }\n\n  /**\n   * Get AEX-141 transfers on a contract.\n   * @param contractId Contract id Contract address\n   * @param options The options parameters.\n   */\n  getAex141ContractTransfers(\n    contractId: `ct_${string}`,\n    options?: GetAex141ContractTransfersOptionalParams,\n  ): Promise<GetAex141ContractTransfersResponse> {\n    return this.sendOperationRequest(\n      { contractId, options },\n      getAex141ContractTransfersOperationSpec,\n    );\n  }\n\n  /**\n   * Get AEX141 contract meta-info, extensions, limits and stats.\n   * @param id The contract id Contract address\n   * @param options The options parameters.\n   */\n  getAex141ByContract(\n    id: `ct_${string}`,\n    options?: GetAex141ByContractOptionalParams,\n  ): Promise<GetAex141ByContractResponse> {\n    return this.sendOperationRequest(\n      { id, options },\n      getAex141ByContractOperationSpec,\n    );\n  }\n\n  /**\n   * Get AEX9 tokens sorted by creation time, name or symbol.\n   * @param options The options parameters.\n   */\n  getSortedAex9Tokens(\n    options?: GetSortedAex9TokensOptionalParams,\n  ): Promise<GetSortedAex9TokensResponse> {\n    return this.sendOperationRequest(\n      { options },\n      getSortedAex9TokensOperationSpec,\n    );\n  }\n\n  /**\n   * Get AEX9 tokens count.\n   * @param options The options parameters.\n   */\n  getAex9TokensCount(\n    options?: GetAex9TokensCountOptionalParams,\n  ): Promise<GetAex9TokensCountResponse> {\n    return this.sendOperationRequest(\n      { options },\n      getAex9TokensCountOperationSpec,\n    );\n  }\n\n  /**\n   * Get AEX9 balances on a contract.\n   * @param contractId Contract id Contract address\n   * @param options The options parameters.\n   */\n  getAex9ContractBalances(\n    contractId: `ct_${string}`,\n    options?: GetAex9ContractBalancesOptionalParams,\n  ): Promise<GetAex9ContractBalancesResponse> {\n    return this.sendOperationRequest(\n      { contractId, options },\n      getAex9ContractBalancesOperationSpec,\n    );\n  }\n\n  /**\n   * Get AEX9 balance for an account on a contract.\n   * @param contractId Contract id Contract address\n   * @param accountId Account id Account address\n   * @param options The options parameters.\n   */\n  getAex9ContractAccountBalance(\n    contractId: `ct_${string}`,\n    accountId: `ak_${string}`,\n    options?: GetAex9ContractAccountBalanceOptionalParams,\n  ): Promise<GetAex9ContractAccountBalanceResponse> {\n    return this.sendOperationRequest(\n      { contractId, accountId, options },\n      getAex9ContractAccountBalanceOperationSpec,\n    );\n  }\n\n  /**\n   * Get AEX9 account balance on a contract throughout all heights when changed.\n   * @param contractId Contract id Contract address\n   * @param accountId Account id Account address\n   * @param options The options parameters.\n   */\n  getAex9ContractAccountBalanceHistory(\n    contractId: `ct_${string}`,\n    accountId: `ak_${string}`,\n    options?: GetAex9ContractAccountBalanceHistoryOptionalParams,\n  ): Promise<GetAex9ContractAccountBalanceHistoryResponse> {\n    return this.sendOperationRequest(\n      { contractId, accountId, options },\n      getAex9ContractAccountBalanceHistoryOperationSpec,\n    );\n  }\n\n  /**\n   * Get AEX9 creation and meta_info information by contract id.\n   * @param id The contract id Contract address\n   * @param options The options parameters.\n   */\n  getAex9ByContract(\n    id: `ct_${string}`,\n    options?: GetAex9ByContractOptionalParams,\n  ): Promise<GetAex9ByContractResponse> {\n    return this.sendOperationRequest(\n      { id, options },\n      getAex9ByContractOperationSpec,\n    );\n  }\n\n  /**\n   * Get multiple channels.\n   * @param options The options parameters.\n   */\n  getChannels(\n    options?: GetChannelsOptionalParams,\n  ): Promise<GetChannelsResponse> {\n    return this.sendOperationRequest({ options }, getChannelsOperationSpec);\n  }\n\n  /**\n   * Get a single channel.\n   * @param id The channel Channel ID\n   * @param options The options parameters.\n   */\n  getChannel(\n    id: `ch_${string}`,\n    options?: GetChannelOptionalParams,\n  ): Promise<GetChannelResponse> {\n    return this.sendOperationRequest({ id, options }, getChannelOperationSpec);\n  }\n\n  /**\n   * Get contract calls.\n   * @param options The options parameters.\n   */\n  getContractCalls(\n    options?: GetContractCallsOptionalParams,\n  ): Promise<GetContractCallsResponse> {\n    return this.sendOperationRequest(\n      { options },\n      getContractCallsOperationSpec,\n    );\n  }\n\n  /**\n   * Get contract logs.\n   * @param options The options parameters.\n   */\n  getContractLogs(\n    options?: GetContractLogsOptionalParams,\n  ): Promise<GetContractLogsResponse> {\n    return this.sendOperationRequest({ options }, getContractLogsOperationSpec);\n  }\n\n  /**\n   * Gets contract creation info.\n   * @param id Contract that emitted the logs Contract address\n   * @param options The options parameters.\n   */\n  getContract(\n    id: `ct_${string}`,\n    options?: GetContractOptionalParams,\n  ): Promise<GetContractResponse> {\n    return this.sendOperationRequest({ id, options }, getContractOperationSpec);\n  }\n\n  /**\n   * Get DEX swap tokens\n   * @param options The options parameters.\n   */\n  getDexSwaps(\n    options?: GetDexSwapsOptionalParams,\n  ): Promise<GetDexSwapsResponse> {\n    return this.sendOperationRequest({ options }, getDexSwapsOperationSpec);\n  }\n\n  /**\n   * Get DEX swap tokens\n   * @param contractId The contract id Contract address\n   * @param options The options parameters.\n   */\n  getDexSwapsByContractId(\n    contractId: `ct_${string}`,\n    options?: GetDexSwapsByContractIdOptionalParams,\n  ): Promise<GetDexSwapsByContractIdResponse> {\n    return this.sendOperationRequest(\n      { contractId, options },\n      getDexSwapsByContractIdOperationSpec,\n    );\n  }\n\n  /**\n   * Get Epoch information\n   * @param options The options parameters.\n   */\n  getEpochs(options?: GetEpochsOptionalParams): Promise<GetEpochsResponse> {\n    return this.sendOperationRequest({ options }, getEpochsOperationSpec);\n  }\n\n  /**\n   * Get Top Epoch information\n   * @param options The options parameters.\n   */\n  getEpochTop(\n    options?: GetEpochTopOptionalParams,\n  ): Promise<GetEpochTopResponse> {\n    return this.sendOperationRequest({ options }, getEpochTopOperationSpec);\n  }\n\n  /**\n   * Get Schedule information\n   * @param options The options parameters.\n   */\n  getSchedules(\n    options?: GetSchedulesOptionalParams,\n  ): Promise<GetSchedulesResponse> {\n    return this.sendOperationRequest({ options }, getSchedulesOperationSpec);\n  }\n\n  /**\n   * Get Schedule information\n   * @param height Schedule height\n   * @param options The options parameters.\n   */\n  getSchedule(\n    height: number,\n    options?: GetScheduleOptionalParams,\n  ): Promise<GetScheduleResponse> {\n    return this.sendOperationRequest(\n      { height, options },\n      getScheduleOperationSpec,\n    );\n  }\n\n  /**\n   * Get Validators information\n   * @param options The options parameters.\n   */\n  getValidators(\n    options?: GetValidatorsOptionalParams,\n  ): Promise<GetValidatorsResponse> {\n    return this.sendOperationRequest({ options }, getValidatorsOperationSpec);\n  }\n\n  /**\n   * Get Validator information\n   * @param validator Validator address Account address\n   * @param options The options parameters.\n   */\n  getValidator(\n    validator: `ak_${string}`,\n    options?: GetValidatorOptionalParams,\n  ): Promise<GetValidatorResponse> {\n    return this.sendOperationRequest(\n      { validator, options },\n      getValidatorOperationSpec,\n    );\n  }\n\n  /**\n   * Get Delegates information for validator\n   * @param validator Validator address Account address\n   * @param options The options parameters.\n   */\n  getValidatorDelegates(\n    validator: `ak_${string}`,\n    options?: GetValidatorDelegatesOptionalParams,\n  ): Promise<GetValidatorDelegatesResponse> {\n    return this.sendOperationRequest(\n      { validator, options },\n      getValidatorDelegatesOperationSpec,\n    );\n  }\n\n  /**\n   * Get top Delegates information for validator\n   * @param validator Validator address Account address\n   * @param options The options parameters.\n   */\n  getTopValidatorDelegates(\n    validator: `ak_${string}`,\n    options?: GetTopValidatorDelegatesOptionalParams,\n  ): Promise<GetTopValidatorDelegatesResponse> {\n    return this.sendOperationRequest(\n      { validator, options },\n      getTopValidatorDelegatesOperationSpec,\n    );\n  }\n\n  /**\n   * Get multiple key blocks.\n   * @param options The options parameters.\n   */\n  getKeyBlocks(\n    options?: GetKeyBlocksOptionalParams,\n  ): Promise<GetKeyBlocksResponse> {\n    return this.sendOperationRequest({ options }, getKeyBlocksOperationSpec);\n  }\n\n  /**\n   * Get a single key block.\n   * @param hashOrKbi The key block encoded hash or key block index \n   * @param options The options parameters.\n   */\n  getKeyBlock(\n    hashOrKbi: `kh_${string}` | number,\n    options?: GetKeyBlockOptionalParams,\n  ): Promise<GetKeyBlockResponse> {\n    return this.sendOperationRequest(\n      { hashOrKbi, options },\n      getKeyBlockOperationSpec,\n    );\n  }\n\n  /**\n   * Get the key block micro blocks.\n   * @param hashOrKbi The key block encoded hash or key block index \n   * @param options The options parameters.\n   */\n  getKeyBlockMicroBlocks(\n    hashOrKbi: `kh_${string}` | number,\n    options?: GetKeyBlockMicroBlocksOptionalParams,\n  ): Promise<GetKeyBlockMicroBlocksResponse> {\n    return this.sendOperationRequest(\n      { hashOrKbi, options },\n      getKeyBlockMicroBlocksOperationSpec,\n    );\n  }\n\n  /**\n   * Get a micro block\n   * @param hash The micro block encoded hash Micro block hash\n   * @param options The options parameters.\n   */\n  getMicroBlock(\n    hash: `mh_${string}`,\n    options?: GetMicroBlockOptionalParams,\n  ): Promise<GetMicroBlockResponse> {\n    return this.sendOperationRequest(\n      { hash, options },\n      getMicroBlockOperationSpec,\n    );\n  }\n\n  /**\n   * Get a micro block transactions\n   * @param hash The micro block encoded hash Micro block hash\n   * @param options The options parameters.\n   */\n  getMicroBlockTransactions(\n    hash: `mh_${string}`,\n    options?: GetMicroBlockTransactionsOptionalParams,\n  ): Promise<GetMicroBlockTransactionsResponse> {\n    return this.sendOperationRequest(\n      { hash, options },\n      getMicroBlockTransactionsOperationSpec,\n    );\n  }\n\n  /**\n   * Get multiple names.\n   * @param options The options parameters.\n   */\n  getNames(options?: GetNamesOptionalParams): Promise<GetNamesResponse> {\n    return this.sendOperationRequest({ options }, getNamesOperationSpec);\n  }\n\n  /**\n   * Get multiple names.\n   * @param options The options parameters.\n   */\n  getNamesAuctions(\n    options?: GetNamesAuctionsOptionalParams,\n  ): Promise<GetNamesAuctionsResponse> {\n    return this.sendOperationRequest(\n      { options },\n      getNamesAuctionsOperationSpec,\n    );\n  }\n\n  /**\n   * Get name auction\n   * @param id The name \n   * @param options The options parameters.\n   */\n  getNameAuction(\n    id: `${string}.chain` | `nm_${string}`,\n    options?: GetNameAuctionOptionalParams,\n  ): Promise<GetNameAuctionResponse> {\n    return this.sendOperationRequest(\n      { id, options },\n      getNameAuctionOperationSpec,\n    );\n  }\n\n  /**\n   * Get name auction claims\n   * @param id The name \n   * @param options The options parameters.\n   */\n  getNameAuctionClaims(\n    id: `${string}.chain` | `nm_${string}`,\n    options?: GetNameAuctionClaimsOptionalParams,\n  ): Promise<GetNameAuctionClaimsResponse> {\n    return this.sendOperationRequest(\n      { id, options },\n      getNameAuctionClaimsOperationSpec,\n    );\n  }\n\n  /**\n   * Get the total number of active names.\n   * @param options The options parameters.\n   */\n  getNamesCount(\n    options?: GetNamesCountOptionalParams,\n  ): Promise<GetNamesCountResponse> {\n    return this.sendOperationRequest({ options }, getNamesCountOperationSpec);\n  }\n\n  /**\n   * Get a single name.\n   * @param id The name \n   * @param options The options parameters.\n   */\n  getName(\n    id: `${string}.chain` | `nm_${string}`,\n    options?: GetNameOptionalParams,\n  ): Promise<GetNameResponse> {\n    return this.sendOperationRequest({ id, options }, getNameOperationSpec);\n  }\n\n  /**\n   * Get name claims\n   * @param id The name or name hash \n   * @param options The options parameters.\n   */\n  getNameClaims(\n    id: `${string}.chain` | `nm_${string}`,\n    options?: GetNameClaimsOptionalParams,\n  ): Promise<GetNameClaimsResponse> {\n    return this.sendOperationRequest(\n      { id, options },\n      getNameClaimsOperationSpec,\n    );\n  }\n\n  /**\n   * Get name transfers\n   * @param id The name or name hash \n   * @param options The options parameters.\n   */\n  getNameTransfers(\n    id: `${string}.chain` | `nm_${string}`,\n    options?: GetNameTransfersOptionalParams,\n  ): Promise<GetNameTransfersResponse> {\n    return this.sendOperationRequest(\n      { id, options },\n      getNameTransfersOperationSpec,\n    );\n  }\n\n  /**\n   * Get name updates\n   * @param id The name or name hash \n   * @param options The options parameters.\n   */\n  getNameUpdates(\n    id: `${string}.chain` | `nm_${string}`,\n    options?: GetNameUpdatesOptionalParams,\n  ): Promise<GetNameUpdatesResponse> {\n    return this.sendOperationRequest(\n      { id, options },\n      getNameUpdatesOperationSpec,\n    );\n  }\n\n  /**\n   * Get multiple oracles.\n   * @param options The options parameters.\n   */\n  getOracles(options?: GetOraclesOptionalParams): Promise<GetOraclesResponse> {\n    return this.sendOperationRequest({ options }, getOraclesOperationSpec);\n  }\n\n  /**\n   * Get a single oracle.\n   * @param id The oracle Oracle address\n   * @param options The options parameters.\n   */\n  getOracle(\n    id: `ok_${string}`,\n    options?: GetOracleOptionalParams,\n  ): Promise<GetOracleResponse> {\n    return this.sendOperationRequest({ id, options }, getOracleOperationSpec);\n  }\n\n  /**\n   * Get an oracle's extensions.\n   * @param id The oracle Oracle address\n   * @param options The options parameters.\n   */\n  getOracleExtends(\n    id: `ok_${string}`,\n    options?: GetOracleExtendsOptionalParams,\n  ): Promise<GetOracleExtendsResponse> {\n    return this.sendOperationRequest(\n      { id, options },\n      getOracleExtendsOperationSpec,\n    );\n  }\n\n  /**\n   * Get an oracle's queries.\n   * @param id The oracle Oracle address\n   * @param options The options parameters.\n   */\n  getOracleQueries(\n    id: `ok_${string}`,\n    options?: GetOracleQueriesOptionalParams,\n  ): Promise<GetOracleQueriesResponse> {\n    return this.sendOperationRequest(\n      { id, options },\n      getOracleQueriesOperationSpec,\n    );\n  }\n\n  /**\n   * Get an oracle's responses.\n   * @param id The oracle Oracle address\n   * @param options The options parameters.\n   */\n  getOracleResponses(\n    id: `ok_${string}`,\n    options?: GetOracleResponsesOptionalParams,\n  ): Promise<GetOracleResponsesResponse> {\n    return this.sendOperationRequest(\n      { id, options },\n      getOracleResponsesOperationSpec,\n    );\n  }\n\n  /**\n   * Get stats.\n   * @param options The options parameters.\n   */\n  getStats(options?: GetStatsOptionalParams): Promise<GetStatsResponse> {\n    return this.sendOperationRequest({ options }, getStatsOperationSpec);\n  }\n\n  /**\n   * Get active accounts stats.\n   * @param options The options parameters.\n   */\n  getActiveAccountsStats(\n    options?: GetActiveAccountsStatsOptionalParams,\n  ): Promise<GetActiveAccountsStatsResponse> {\n    return this.sendOperationRequest(\n      { options },\n      getActiveAccountsStatsOperationSpec,\n    );\n  }\n\n  /**\n   * Get total AEx9 token transfers.\n   * @param options The options parameters.\n   */\n  getAex9TransfersStats(\n    options?: GetAex9TransfersStatsOptionalParams,\n  ): Promise<GetAex9TransfersStatsResponse> {\n    return this.sendOperationRequest(\n      { options },\n      getAex9TransfersStatsOperationSpec,\n    );\n  }\n\n  /**\n   * Get total blocks count stats.\n   * @param options The options parameters.\n   */\n  getBlocksStats(\n    options?: GetBlocksStatsOptionalParams,\n  ): Promise<GetBlocksStatsResponse> {\n    return this.sendOperationRequest({ options }, getBlocksStatsOperationSpec);\n  }\n\n  /**\n   * Get the created contracts count per interval.\n   * @param options The options parameters.\n   */\n  getContractsStats(\n    options?: GetContractsStatsOptionalParams,\n  ): Promise<GetContractsStatsResponse> {\n    return this.sendOperationRequest(\n      { options },\n      getContractsStatsOperationSpec,\n    );\n  }\n\n  /**\n   * Get delta stats.\n   * @param options The options parameters.\n   */\n  getDeltaStats(\n    options?: GetDeltaStatsOptionalParams,\n  ): Promise<GetDeltaStatsResponse> {\n    return this.sendOperationRequest({ options }, getDeltaStatsOperationSpec);\n  }\n\n  /**\n   * Get total blocks difficulty stats.\n   * @param options The options parameters.\n   */\n  getDifficultyStats(\n    options?: GetDifficultyStatsOptionalParams,\n  ): Promise<GetDifficultyStatsResponse> {\n    return this.sendOperationRequest(\n      { options },\n      getDifficultyStatsOperationSpec,\n    );\n  }\n\n  /**\n   * Get total blocks hashrate stats.\n   * @param options The options parameters.\n   */\n  getHashrateStats(\n    options?: GetHashrateStatsOptionalParams,\n  ): Promise<GetHashrateStatsResponse> {\n    return this.sendOperationRequest(\n      { options },\n      getHashrateStatsOperationSpec,\n    );\n  }\n\n  /**\n   * Get miners list with total rewards obtained through mining.\n   * @param options The options parameters.\n   */\n  getMinerStats(\n    options?: GetMinerStatsOptionalParams,\n  ): Promise<GetMinerStatsResponse> {\n    return this.sendOperationRequest({ options }, getMinerStatsOperationSpec);\n  }\n\n  /**\n   * Get total names count stats.\n   * @param options The options parameters.\n   */\n  getNamesStats(\n    options?: GetNamesStatsOptionalParams,\n  ): Promise<GetNamesStatsResponse> {\n    return this.sendOperationRequest({ options }, getNamesStatsOperationSpec);\n  }\n\n  /**\n   * Get total accumulated stats.\n   * @param options The options parameters.\n   */\n  getTotalStats(\n    options?: GetTotalStatsOptionalParams,\n  ): Promise<GetTotalStatsResponse> {\n    return this.sendOperationRequest({ options }, getTotalStatsOperationSpec);\n  }\n\n  /**\n   * Get total accounts created per interval stats.\n   * @param options The options parameters.\n   */\n  getTotalAccountsStats(\n    options?: GetTotalAccountsStatsOptionalParams,\n  ): Promise<GetTotalAccountsStatsResponse> {\n    return this.sendOperationRequest(\n      { options },\n      getTotalAccountsStatsOperationSpec,\n    );\n  }\n\n  /**\n   * Get total transactions count stats.\n   * @param options The options parameters.\n   */\n  getTransactionsStats(\n    options?: GetTransactionsStatsOptionalParams,\n  ): Promise<GetTransactionsStatsResponse> {\n    return this.sendOperationRequest(\n      { options },\n      getTransactionsStatsOperationSpec,\n    );\n  }\n\n  /**\n   * Gets the current syncing status of both middleware and the node\n   * @param options The options parameters.\n   */\n  getStatus(options?: GetStatusOptionalParams): Promise<GetStatusResponse> {\n    return this.sendOperationRequest({ options }, getStatusOperationSpec);\n  }\n\n  /**\n   * Get multiple transactions.\n   * @param options The options parameters.\n   */\n  getTransactions(\n    options?: GetTransactionsOptionalParams,\n  ): Promise<GetTransactionsResponse> {\n    return this.sendOperationRequest({ options }, getTransactionsOperationSpec);\n  }\n\n  /**\n   * Get count of transactions at the latest height.\n   * @param options The options parameters.\n   */\n  getTransactionsCount(\n    options?: GetTransactionsCountOptionalParams,\n  ): Promise<GetTransactionsCountResponse> {\n    return this.sendOperationRequest(\n      { options },\n      getTransactionsCountOperationSpec,\n    );\n  }\n\n  /**\n   * Get pending transactions.\n   * @param options The options parameters.\n   */\n  getPendingTransactions(\n    options?: GetPendingTransactionsOptionalParams,\n  ): Promise<GetPendingTransactionsResponse> {\n    return this.sendOperationRequest(\n      { options },\n      getPendingTransactionsOperationSpec,\n    );\n  }\n\n  /**\n   * Get count of pending transactions.\n   * @param options The options parameters.\n   */\n  getPendingTransactionsCount(\n    options?: GetPendingTransactionsCountOptionalParams,\n  ): Promise<GetPendingTransactionsCountResponse> {\n    return this.sendOperationRequest(\n      { options },\n      getPendingTransactionsCountOperationSpec,\n    );\n  }\n\n  /**\n   * Get a single transaction.\n   * @param hash The transaction encoded hash Transaction hash\n   * @param options The options parameters.\n   */\n  getTransaction(\n    hash: `th_${string}`,\n    options?: GetTransactionOptionalParams,\n  ): Promise<GetTransactionResponse> {\n    return this.sendOperationRequest(\n      { hash, options },\n      getTransactionOperationSpec,\n    );\n  }\n\n  /**\n   * Get multiple transfers.\n   * @param options The options parameters.\n   */\n  getTransfers(\n    options?: GetTransfersOptionalParams,\n  ): Promise<GetTransfersResponse> {\n    return this.sendOperationRequest({ options }, getTransfersOperationSpec);\n  }\n}\n// Operation Specifications\nconst serializer = createSerializer(Mappers, /* isXml */ false);\n\nconst getAccountActivitiesOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/accounts/{accountId}/activities\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper:\n        Mappers.Paths1EfdbjrV3AccountsAccountidActivitiesGetResponses200ContentApplicationJsonSchema,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n  },\n  queryParameters: [\n    Parameters.ownedOnly,\n    Parameters.typeParam,\n    Parameters.limit,\n    Parameters.scope,\n    Parameters.direction,\n  ],\n  urlParameters: [Parameters.$host, Parameters.accountId],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getAex141OwnedTokensOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/accounts/{accountId}/aex141/tokens\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper:\n        Mappers.Paths3Hsv3GV3AccountsAccountidAex141TokensGetResponses200ContentApplicationJsonSchema,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n  },\n  queryParameters: [\n    Parameters.limit,\n    Parameters.direction1,\n    Parameters.contract,\n  ],\n  urlParameters: [Parameters.$host, Parameters.accountId],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getAex9AccountBalancesOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/accounts/{accountId}/aex9/balances\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper:\n        Mappers.PathsKm52GqV3AccountsAccountidAex9BalancesGetResponses200ContentApplicationJsonSchema,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n  },\n  urlParameters: [Parameters.$host, Parameters.accountId],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getAccountDexSwapsOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/accounts/{accountId}/dex/swaps\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper:\n        Mappers.PathsZpy8S9V3AccountsAccountidDexSwapsGetResponses200ContentApplicationJsonSchema,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n  },\n  queryParameters: [Parameters.direction2],\n  urlParameters: [Parameters.$host, Parameters.accountId],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getAccountNameClaimsOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/accounts/{accountId}/names/claims\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper:\n        Mappers.Paths16Cyh9EV3AccountsAccountidNamesClaimsGetResponses200ContentApplicationJsonSchema,\n    },\n    404: {\n      bodyMapper: Mappers.NotFoundResponse,\n      isError: true,\n    },\n  },\n  queryParameters: [Parameters.limit, Parameters.scope, Parameters.direction3],\n  urlParameters: [Parameters.$host, Parameters.accountId],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getAccountPointeesOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/accounts/{accountId}/names/pointees\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper:\n        Mappers.Paths1Mheci5V3AccountsAccountidNamesPointeesGetResponses200ContentApplicationJsonSchema,\n    },\n    404: {\n      bodyMapper: Mappers.NotFoundResponse,\n      isError: true,\n    },\n  },\n  urlParameters: [Parameters.$host, Parameters.accountId],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getAccountTransactionsCountOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/accounts/{accountId}/transactions/count\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper:\n        Mappers.PathsXcg812V3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchema,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n  },\n  urlParameters: [Parameters.$host, Parameters.accountId],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getSortedAex141ContractsOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/aex141\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper:\n        Mappers.Paths1XwlyjtV3Aex141GetResponses200ContentApplicationJsonSchema,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n  },\n  queryParameters: [\n    Parameters.limit,\n    Parameters.direction4,\n    Parameters.by,\n    Parameters.prefix,\n    Parameters.exact,\n  ],\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getAex141ContractTemplatesOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/aex141/{contractId}/templates\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper:\n        Mappers.Paths181AjwxV3Aex141ContractidTemplatesGetResponses200ContentApplicationJsonSchema,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n  },\n  queryParameters: [Parameters.limit, Parameters.direction5],\n  urlParameters: [Parameters.$host, Parameters.contractId],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getAex141TemplateTokensOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/aex141/{contractId}/templates/{templateId}/tokens\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper:\n        Mappers.Paths15Mi2TaV3Aex141ContractidTemplatesTemplateidTokensGetResponses200ContentApplicationJsonSchema,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n  },\n  queryParameters: [Parameters.limit, Parameters.direction6],\n  urlParameters: [\n    Parameters.$host,\n    Parameters.contractId,\n    Parameters.templateId,\n  ],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getAex141ContractTokensOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/aex141/{contractId}/tokens\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper:\n        Mappers.PathsWl652MV3Aex141ContractidTokensGetResponses200ContentApplicationJsonSchema,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n  },\n  queryParameters: [Parameters.limit, Parameters.direction7],\n  urlParameters: [Parameters.$host, Parameters.contractId],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getAex141TokenOwnerOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/aex141/{contractId}/tokens/{tokenId}\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.Aex141TokenDetailResponse,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n  },\n  urlParameters: [Parameters.$host, Parameters.contractId, Parameters.tokenId],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getAex141ContractTransfersOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/aex141/{contractId}/transfers\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper:\n        Mappers.Paths1O7Q6IhV3Aex141ContractidTransfersGetResponses200ContentApplicationJsonSchema,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n  },\n  queryParameters: [\n    Parameters.limit,\n    Parameters.direction8,\n    Parameters.fromParam,\n    Parameters.to,\n  ],\n  urlParameters: [Parameters.$host, Parameters.contractId],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getAex141ByContractOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/aex141/{id}\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.Aex141Response,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n  },\n  urlParameters: [Parameters.$host, Parameters.id],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getSortedAex9TokensOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/aex9\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper:\n        Mappers.Paths1Vr3Y2EV3Aex9GetResponses200ContentApplicationJsonSchema,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n  },\n  queryParameters: [\n    Parameters.limit,\n    Parameters.prefix,\n    Parameters.exact,\n    Parameters.direction9,\n    Parameters.by1,\n  ],\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getAex9TokensCountOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/aex9/count\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper:\n        Mappers.Paths19IxhsmV3Aex9CountGetResponses200ContentApplicationJsonSchema,\n    },\n  },\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getAex9ContractBalancesOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/aex9/{contractId}/balances\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper:\n        Mappers.Paths1N61UurV3Aex9ContractidBalancesGetResponses200ContentApplicationJsonSchema,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n  },\n  queryParameters: [\n    Parameters.limit,\n    Parameters.direction10,\n    Parameters.by2,\n    Parameters.blockHash,\n  ],\n  urlParameters: [Parameters.$host, Parameters.contractId],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getAex9ContractAccountBalanceOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/aex9/{contractId}/balances/{accountId}\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper:\n        Mappers.PathsKr825V3Aex9ContractidBalancesAccountidGetResponses200ContentApplicationJsonSchema,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n  },\n  queryParameters: [Parameters.hash],\n  urlParameters: [\n    Parameters.$host,\n    Parameters.accountId,\n    Parameters.contractId,\n  ],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getAex9ContractAccountBalanceHistoryOperationSpec: coreClient.OperationSpec =\n  {\n    path: \"/v3/aex9/{contractId}/balances/{accountId}/history\",\n    httpMethod: \"GET\",\n    responses: {\n      200: {\n        bodyMapper:\n          Mappers.Paths1Uybd4PV3Aex9ContractidBalancesAccountidHistoryGetResponses200ContentApplicationJsonSchema,\n      },\n      400: {\n        bodyMapper: Mappers.ErrorResponse,\n        isError: true,\n      },\n    },\n    queryParameters: [\n      Parameters.limit,\n      Parameters.scope,\n      Parameters.direction11,\n    ],\n    urlParameters: [\n      Parameters.$host,\n      Parameters.accountId,\n      Parameters.contractId,\n    ],\n    headerParameters: [Parameters.accept],\n    serializer,\n  };\nconst getAex9ByContractOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/aex9/{id}\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.Aex9Response,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n  },\n  urlParameters: [Parameters.$host, Parameters.id],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getChannelsOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/channels\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper:\n        Mappers.Paths3EzhapV3ChannelsGetResponses200ContentApplicationJsonSchema,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n  },\n  queryParameters: [\n    Parameters.limit,\n    Parameters.scope,\n    Parameters.direction12,\n    Parameters.state,\n  ],\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getChannelOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/channels/{id}\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.Channel,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n    404: {\n      bodyMapper: Mappers.NotFoundResponse,\n      isError: true,\n    },\n  },\n  urlParameters: [Parameters.$host, Parameters.id1],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getContractCallsOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/contracts/calls\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper:\n        Mappers.Paths1Txblx8V3ContractsCallsGetResponses200ContentApplicationJsonSchema,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n  },\n  queryParameters: [Parameters.limit, Parameters.scope, Parameters.direction13],\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getContractLogsOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/contracts/logs\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper:\n        Mappers.Paths7A1M6RV3ContractsLogsGetResponses200ContentApplicationJsonSchema,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n  },\n  queryParameters: [\n    Parameters.limit,\n    Parameters.scope,\n    Parameters.contractId1,\n    Parameters.event,\n    Parameters.functionParam,\n    Parameters.functionPrefix,\n    Parameters.data,\n    Parameters.aexnArgs,\n    Parameters.direction14,\n  ],\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getContractOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/contracts/{id}\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.Contract,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n    404: {\n      bodyMapper: Mappers.NotFoundResponse,\n      isError: true,\n    },\n  },\n  urlParameters: [Parameters.$host, Parameters.id],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getDexSwapsOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/dex/swaps\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper:\n        Mappers.Paths1Di8FnjV3DexSwapsGetResponses200ContentApplicationJsonSchema,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n  },\n  queryParameters: [Parameters.direction15],\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getDexSwapsByContractIdOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/dex/{contract_id}/swaps\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper:\n        Mappers.PathsKwxlzlV3DexContractIdSwapsGetResponses200ContentApplicationJsonSchema,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n  },\n  queryParameters: [Parameters.direction16],\n  urlParameters: [Parameters.$host, Parameters.contractId2],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getEpochsOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/hyperchain/epochs\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper:\n        Mappers.Paths194Lg3IV3HyperchainEpochsGetResponses200ContentApplicationJsonSchema,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n  },\n  queryParameters: [\n    Parameters.limit,\n    Parameters.direction17,\n    Parameters.scope1,\n  ],\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getEpochTopOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/hyperchain/epochs/top\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.EpochInfo,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n  },\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getSchedulesOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/hyperchain/schedule\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper:\n        Mappers.Paths1S5Zlt1V3HyperchainScheduleGetResponses200ContentApplicationJsonSchema,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n  },\n  queryParameters: [\n    Parameters.limit,\n    Parameters.scope1,\n    Parameters.direction18,\n  ],\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getScheduleOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/hyperchain/schedule/height/{height}\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.Schedule,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n  },\n  urlParameters: [Parameters.$host, Parameters.height],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getValidatorsOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/hyperchain/validators\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper:\n        Mappers.Paths1Ibn686V3HyperchainValidatorsGetResponses200ContentApplicationJsonSchema,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n  },\n  queryParameters: [\n    Parameters.limit,\n    Parameters.scope1,\n    Parameters.direction19,\n  ],\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getValidatorOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/hyperchain/validators/{validator}\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.Validator,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n  },\n  urlParameters: [Parameters.$host, Parameters.validator],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getValidatorDelegatesOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/hyperchain/validators/{validator}/delegates\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper:\n        Mappers.Paths1I4U8D5V3HyperchainValidatorsValidatorDelegatesGetResponses200ContentApplicationJsonSchema,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n  },\n  queryParameters: [\n    Parameters.limit,\n    Parameters.scope1,\n    Parameters.direction20,\n  ],\n  urlParameters: [Parameters.$host, Parameters.validator],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getTopValidatorDelegatesOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/hyperchain/validators/{validator}/delegates/top\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper:\n        Mappers.Paths15K0AlgV3HyperchainValidatorsValidatorDelegatesTopGetResponses200ContentApplicationJsonSchema,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n  },\n  queryParameters: [\n    Parameters.limit,\n    Parameters.scope1,\n    Parameters.direction21,\n  ],\n  urlParameters: [Parameters.$host, Parameters.validator],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getKeyBlocksOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/key-blocks\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper:\n        Mappers.Paths277OngV3KeyBlocksGetResponses200ContentApplicationJsonSchema,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n  },\n  queryParameters: [Parameters.limit, Parameters.scope, Parameters.direction22],\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getKeyBlockOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/key-blocks/{hash_or_kbi}\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.KeyBlockExtended,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n    404: {\n      bodyMapper: Mappers.NotFoundResponse,\n      isError: true,\n    },\n  },\n  urlParameters: [Parameters.$host, Parameters.hashOrKbi],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getKeyBlockMicroBlocksOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/key-blocks/{hash_or_kbi}/micro-blocks\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper:\n        Mappers.Paths1159W94V3KeyBlocksHashOrKbiMicroBlocksGetResponses200ContentApplicationJsonSchema,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n  },\n  queryParameters: [Parameters.limit, Parameters.scope, Parameters.direction23],\n  urlParameters: [Parameters.$host, Parameters.hashOrKbi],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getMicroBlockOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/micro-blocks/{hash}\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.MicroBlockExtended,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n    404: {\n      bodyMapper: Mappers.NotFoundResponse,\n      isError: true,\n    },\n  },\n  urlParameters: [Parameters.$host, Parameters.hash1],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getMicroBlockTransactionsOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/micro-blocks/{hash}/transactions\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper:\n        Mappers.Paths15Bkk50V3MicroBlocksHashTransactionsGetResponses200ContentApplicationJsonSchema,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n  },\n  urlParameters: [Parameters.$host, Parameters.hash1],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getNamesOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/names\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper:\n        Mappers.Paths12S1Nd4V3NamesGetResponses200ContentApplicationJsonSchema,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n  },\n  queryParameters: [\n    Parameters.limit,\n    Parameters.prefix,\n    Parameters.by2,\n    Parameters.ownedBy,\n    Parameters.state1,\n    Parameters.direction24,\n  ],\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getNamesAuctionsOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/names/auctions\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper:\n        Mappers.PathsKjq4D4V3NamesAuctionsGetResponses200ContentApplicationJsonSchema,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n  },\n  queryParameters: [Parameters.limit, Parameters.scope, Parameters.direction25],\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getNameAuctionOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/names/auctions/{id}\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.Auction,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n    404: {\n      bodyMapper: Mappers.NotFoundResponse,\n      isError: true,\n    },\n  },\n  queryParameters: [Parameters.limit, Parameters.scope, Parameters.direction26],\n  urlParameters: [Parameters.$host, Parameters.id2],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getNameAuctionClaimsOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/names/auctions/{id}/claims\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper:\n        Mappers.PathsCrb9BgV3NamesAuctionsIdClaimsGetResponses200ContentApplicationJsonSchema,\n    },\n    404: {\n      bodyMapper: Mappers.NotFoundResponse,\n      isError: true,\n    },\n  },\n  queryParameters: [Parameters.limit, Parameters.scope, Parameters.direction27],\n  urlParameters: [Parameters.$host, Parameters.id2],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getNamesCountOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/names/count\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: { type: { name: \"Number\" } },\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n  },\n  queryParameters: [Parameters.ownedBy],\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getNameOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/names/{id}\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.Name,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n    404: {\n      bodyMapper: Mappers.NotFoundResponse,\n      isError: true,\n    },\n  },\n  urlParameters: [Parameters.$host, Parameters.id2],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getNameClaimsOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/names/{id}/claims\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper:\n        Mappers.Paths1F98AqgV3NamesIdClaimsGetResponses200ContentApplicationJsonSchema,\n    },\n    404: {\n      bodyMapper: Mappers.NotFoundResponse,\n      isError: true,\n    },\n  },\n  queryParameters: [Parameters.limit, Parameters.scope, Parameters.direction28],\n  urlParameters: [Parameters.$host, Parameters.id2],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getNameTransfersOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/names/{id}/transfers\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper:\n        Mappers.Paths1Raw8PV3NamesIdTransfersGetResponses200ContentApplicationJsonSchema,\n    },\n    404: {\n      bodyMapper: Mappers.NotFoundResponse,\n      isError: true,\n    },\n  },\n  queryParameters: [Parameters.limit, Parameters.scope, Parameters.direction29],\n  urlParameters: [Parameters.$host, Parameters.id2],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getNameUpdatesOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/names/{id}/updates\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper:\n        Mappers.Paths1Ec8CltV3NamesIdUpdatesGetResponses200ContentApplicationJsonSchema,\n    },\n    404: {\n      bodyMapper: Mappers.NotFoundResponse,\n      isError: true,\n    },\n  },\n  queryParameters: [Parameters.limit, Parameters.scope, Parameters.direction30],\n  urlParameters: [Parameters.$host, Parameters.id2],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getOraclesOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/oracles\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper:\n        Mappers.Paths1E14NekV3OraclesGetResponses200ContentApplicationJsonSchema,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n  },\n  queryParameters: [\n    Parameters.limit,\n    Parameters.scope,\n    Parameters.state1,\n    Parameters.direction31,\n  ],\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getOracleOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/oracles/{id}\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.Oracle,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n    404: {\n      bodyMapper: Mappers.NotFoundResponse,\n      isError: true,\n    },\n  },\n  urlParameters: [Parameters.$host, Parameters.id3],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getOracleExtendsOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/oracles/{id}/extends\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper:\n        Mappers.Paths1L5C64RV3OraclesIdExtendsGetResponses200ContentApplicationJsonSchema,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n    404: {\n      bodyMapper: Mappers.NotFoundResponse,\n      isError: true,\n    },\n  },\n  urlParameters: [Parameters.$host, Parameters.id3],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getOracleQueriesOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/oracles/{id}/queries\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper:\n        Mappers.Paths8722JhV3OraclesIdQueriesGetResponses200ContentApplicationJsonSchema,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n    404: {\n      bodyMapper: Mappers.NotFoundResponse,\n      isError: true,\n    },\n  },\n  urlParameters: [Parameters.$host, Parameters.id3],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getOracleResponsesOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/oracles/{id}/responses\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper:\n        Mappers.PathsVron83V3OraclesIdResponsesGetResponses200ContentApplicationJsonSchema,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n    404: {\n      bodyMapper: Mappers.NotFoundResponse,\n      isError: true,\n    },\n  },\n  urlParameters: [Parameters.$host, Parameters.id3],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getStatsOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/stats\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.Stats,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n  },\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getActiveAccountsStatsOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/stats/active-accounts\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper:\n        Mappers.PathsCgzmimV3StatsActiveAccountsGetResponses200ContentApplicationJsonSchema,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n  },\n  queryParameters: [\n    Parameters.limit,\n    Parameters.intervalBy,\n    Parameters.direction32,\n  ],\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getAex9TransfersStatsOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/stats/aex9-transfers\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper:\n        Mappers.Paths1UxyhelV3StatsAex9TransfersGetResponses200ContentApplicationJsonSchema,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n  },\n  queryParameters: [\n    Parameters.limit,\n    Parameters.intervalBy1,\n    Parameters.minStartDate,\n    Parameters.maxStartDate,\n    Parameters.direction33,\n  ],\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getBlocksStatsOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/stats/blocks\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper:\n        Mappers.Paths1Sxjoy0V3StatsBlocksGetResponses200ContentApplicationJsonSchema,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n  },\n  queryParameters: [\n    Parameters.limit,\n    Parameters.minStartDate,\n    Parameters.maxStartDate,\n    Parameters.intervalBy2,\n    Parameters.typeParam1,\n    Parameters.direction34,\n  ],\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getContractsStatsOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/stats/contracts\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper:\n        Mappers.PathsWbrhqnV3StatsContractsGetResponses200ContentApplicationJsonSchema,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n  },\n  queryParameters: [\n    Parameters.limit,\n    Parameters.minStartDate,\n    Parameters.maxStartDate,\n    Parameters.intervalBy3,\n    Parameters.direction35,\n  ],\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getDeltaStatsOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/stats/delta\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper:\n        Mappers.Paths5Xf9ScV3StatsDeltaGetResponses200ContentApplicationJsonSchema,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n  },\n  queryParameters: [Parameters.limit, Parameters.scope, Parameters.direction36],\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getDifficultyStatsOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/stats/difficulty\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper:\n        Mappers.Paths1D7Up0DV3StatsDifficultyGetResponses200ContentApplicationJsonSchema,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n  },\n  queryParameters: [\n    Parameters.limit,\n    Parameters.minStartDate,\n    Parameters.maxStartDate,\n    Parameters.intervalBy4,\n    Parameters.direction37,\n  ],\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getHashrateStatsOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/stats/hashrate\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper:\n        Mappers.PathsR51VshV3StatsHashrateGetResponses200ContentApplicationJsonSchema,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n  },\n  queryParameters: [\n    Parameters.limit,\n    Parameters.minStartDate,\n    Parameters.maxStartDate,\n    Parameters.intervalBy5,\n    Parameters.direction38,\n  ],\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getMinerStatsOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/stats/miners\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper:\n        Mappers.PathsA8Q6T7V3StatsMinersGetResponses200ContentApplicationJsonSchema,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n  },\n  queryParameters: [Parameters.limit, Parameters.direction39],\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getNamesStatsOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/stats/names\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper:\n        Mappers.PathsCeyhpaV3StatsNamesGetResponses200ContentApplicationJsonSchema,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n  },\n  queryParameters: [\n    Parameters.limit,\n    Parameters.minStartDate,\n    Parameters.maxStartDate,\n    Parameters.intervalBy6,\n    Parameters.direction40,\n  ],\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getTotalStatsOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/stats/total\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper:\n        Mappers.PathsJoz7P5V3StatsTotalGetResponses200ContentApplicationJsonSchema,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n  },\n  queryParameters: [Parameters.limit, Parameters.scope, Parameters.direction41],\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getTotalAccountsStatsOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/stats/total-accounts\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper:\n        Mappers.Paths15F3FfuV3StatsTotalAccountsGetResponses200ContentApplicationJsonSchema,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n  },\n  queryParameters: [\n    Parameters.limit,\n    Parameters.intervalBy7,\n    Parameters.direction42,\n  ],\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getTransactionsStatsOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/stats/transactions\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper:\n        Mappers.Paths1IfhshmV3StatsTransactionsGetResponses200ContentApplicationJsonSchema,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n  },\n  queryParameters: [\n    Parameters.limit,\n    Parameters.minStartDate,\n    Parameters.maxStartDate,\n    Parameters.intervalBy8,\n    Parameters.txType,\n    Parameters.direction43,\n  ],\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getStatusOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/status\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.Status,\n    },\n  },\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getTransactionsOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/transactions\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper:\n        Mappers.Paths1Pymq07V3TransactionsGetResponses200ContentApplicationJsonSchema,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n  },\n  queryParameters: [\n    Parameters.limit,\n    Parameters.contract,\n    Parameters.typeParam2,\n    Parameters.typeGroup,\n    Parameters.account,\n    Parameters.channel,\n    Parameters.oracle,\n    Parameters.senderId,\n    Parameters.recipientId,\n    Parameters.entrypoint,\n    Parameters.scope2,\n    Parameters.direction44,\n  ],\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getTransactionsCountOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/transactions/count\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: { type: { name: \"Number\" } },\n    },\n  },\n  queryParameters: [Parameters.scope, Parameters.txType, Parameters.id4],\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getPendingTransactionsOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/transactions/pending\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper:\n        Mappers.PathsUq0T7JV3TransactionsPendingGetResponses200ContentApplicationJsonSchema,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n  },\n  queryParameters: [Parameters.limit, Parameters.direction45],\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getPendingTransactionsCountOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/transactions/pending/count\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: { type: { name: \"Number\" } },\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n  },\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getTransactionOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/transactions/{hash}\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper: Mappers.Transaction,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n    404: {\n      bodyMapper: Mappers.NotFoundResponse,\n      isError: true,\n    },\n  },\n  urlParameters: [Parameters.$host, Parameters.hash2],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\nconst getTransfersOperationSpec: coreClient.OperationSpec = {\n  path: \"/v3/transfers\",\n  httpMethod: \"GET\",\n  responses: {\n    200: {\n      bodyMapper:\n        Mappers.PathsA7P0KiV3TransfersGetResponses200ContentApplicationJsonSchema,\n    },\n    400: {\n      bodyMapper: Mappers.ErrorResponse,\n      isError: true,\n    },\n  },\n  queryParameters: [Parameters.limit, Parameters.scope, Parameters.direction46],\n  urlParameters: [Parameters.$host],\n  headerParameters: [Parameters.accept],\n  serializer,\n};\n\nexport const operationSpecs = [\n  getAccountActivitiesOperationSpec,\n  getAex141OwnedTokensOperationSpec,\n  getAex9AccountBalancesOperationSpec,\n  getAccountDexSwapsOperationSpec,\n  getAccountNameClaimsOperationSpec,\n  getAccountPointeesOperationSpec,\n  getAccountTransactionsCountOperationSpec,\n  getSortedAex141ContractsOperationSpec,\n  getAex141ContractTemplatesOperationSpec,\n  getAex141TemplateTokensOperationSpec,\n  getAex141ContractTokensOperationSpec,\n  getAex141TokenOwnerOperationSpec,\n  getAex141ContractTransfersOperationSpec,\n  getAex141ByContractOperationSpec,\n  getSortedAex9TokensOperationSpec,\n  getAex9TokensCountOperationSpec,\n  getAex9ContractBalancesOperationSpec,\n  getAex9ContractAccountBalanceOperationSpec,\n  getAex9ByContractOperationSpec,\n  getChannelsOperationSpec,\n  getChannelOperationSpec,\n  getContractCallsOperationSpec,\n  getContractLogsOperationSpec,\n  getContractOperationSpec,\n  getDexSwapsOperationSpec,\n  getDexSwapsByContractIdOperationSpec,\n  getEpochsOperationSpec,\n  getEpochTopOperationSpec,\n  getSchedulesOperationSpec,\n  getScheduleOperationSpec,\n  getValidatorsOperationSpec,\n  getValidatorOperationSpec,\n  getValidatorDelegatesOperationSpec,\n  getTopValidatorDelegatesOperationSpec,\n  getKeyBlocksOperationSpec,\n  getKeyBlockOperationSpec,\n  getKeyBlockMicroBlocksOperationSpec,\n  getMicroBlockOperationSpec,\n  getMicroBlockTransactionsOperationSpec,\n  getNamesOperationSpec,\n  getNamesAuctionsOperationSpec,\n  getNameAuctionOperationSpec,\n  getNameAuctionClaimsOperationSpec,\n  getNamesCountOperationSpec,\n  getNameOperationSpec,\n  getNameClaimsOperationSpec,\n  getNameTransfersOperationSpec,\n  getNameUpdatesOperationSpec,\n  getOraclesOperationSpec,\n  getOracleOperationSpec,\n  getOracleExtendsOperationSpec,\n  getOracleQueriesOperationSpec,\n  getOracleResponsesOperationSpec,\n  getStatsOperationSpec,\n  getActiveAccountsStatsOperationSpec,\n  getAex9TransfersStatsOperationSpec,\n  getBlocksStatsOperationSpec,\n  getContractsStatsOperationSpec,\n  getDeltaStatsOperationSpec,\n  getDifficultyStatsOperationSpec,\n  getHashrateStatsOperationSpec,\n  getMinerStatsOperationSpec,\n  getNamesStatsOperationSpec,\n  getTotalStatsOperationSpec,\n  getTotalAccountsStatsOperationSpec,\n  getTransactionsStatsOperationSpec,\n  getStatusOperationSpec,\n  getTransactionsOperationSpec,\n  getTransactionsCountOperationSpec,\n  getPendingTransactionsOperationSpec,\n  getPendingTransactionsCountOperationSpec,\n  getTransactionOperationSpec,\n  getTransfersOperationSpec,\n] as const;\n","/* eslint-disable max-classes-per-file */\nimport type Middleware from '../Middleware.js';\nimport { BaseError } from './errors.js';\n\ninterface MiddlewareRawPage<T = unknown> {\n  data: T[];\n  next: string | null;\n  prev: string | null;\n}\n\nexport function isMiddlewareRawPage(maybePage: unknown): maybePage is MiddlewareRawPage {\n  const testPage = maybePage as MiddlewareRawPage;\n  return (\n    testPage?.data != null &&\n    Array.isArray(testPage.data) &&\n    'next' in testPage &&\n    'prev' in testPage\n  );\n}\n\n/**\n * @category exception\n */\nexport class MiddlewarePageMissed extends BaseError {\n  constructor(isNext: boolean) {\n    super(`There is no ${isNext ? 'next' : 'previous'} page`);\n    this.name = 'MiddlewarePageMissed';\n  }\n}\n\n/**\n * A wrapper around the middleware's page allowing to get the next/previous pages.\n */\nexport class MiddlewarePage<Item> {\n  readonly data: Item[];\n\n  readonly nextPath: null | string;\n\n  readonly prevPath: null | string;\n\n  readonly #middleware: Middleware;\n\n  constructor(rawPage: MiddlewareRawPage<Item>, middleware: Middleware) {\n    this.data = rawPage.data;\n    this.nextPath = rawPage.next;\n    this.prevPath = rawPage.prev;\n    this.#middleware = middleware;\n  }\n\n  /**\n   * Get the next page.\n   * Check the presence of `nextPath` to not fall outside existing pages.\n   * @throws MiddlewarePageMissed\n   */\n  async next(): Promise<MiddlewarePage<Item>> {\n    if (this.nextPath == null) throw new MiddlewarePageMissed(true);\n    return this.#middleware.requestByPath(this.nextPath);\n  }\n\n  /**\n   * Get the previous page.\n   * Check the presence of `prevPath` to not fall outside existing pages.\n   * @throws MiddlewarePageMissed\n   */\n  async prev(): Promise<MiddlewarePage<Item>> {\n    if (this.prevPath == null) throw new MiddlewarePageMissed(false);\n    return this.#middleware.requestByPath(this.prevPath);\n  }\n}\n","import { OperationArguments, OperationOptions, OperationSpec } from '@azure/core-client';\nimport { userAgentPolicyName, setClientRequestIdPolicyName } from '@azure/core-rest-pipeline';\nimport {\n  genRequestQueuesPolicy,\n  genCombineGetRequestsPolicy,\n  genErrorFormatterPolicy,\n  parseBigIntPolicy,\n  genVersionCheckPolicy,\n  genRetryOnFailurePolicy,\n} from './utils/autorest.js';\nimport {\n  Middleware as MiddlewareApi,\n  MiddlewareOptionalParams,\n  ErrorResponse,\n} from './apis/middleware/index.js';\nimport { operationSpecs } from './apis/middleware/middleware.js';\nimport { IllegalArgumentError, InternalError } from './utils/errors.js';\nimport { MiddlewarePage, isMiddlewareRawPage } from './utils/MiddlewarePage.js';\n\n/**\n * @category middleware\n */\nexport default class Middleware extends MiddlewareApi {\n  /**\n   * @param url - Url for middleware API\n   * @param options - Options\n   * @param options.ignoreVersion - Print warning instead of throwing exception if middleware\n   * is not supported, use with caution\n   * @param options.retryCount - Amount of extra requests to do in case of failure\n   * @param options.retryOverallDelay - Time in ms to wait between all retries\n   */\n  constructor(\n    url: string,\n    {\n      ignoreVersion = false,\n      retryCount = 3,\n      retryOverallDelay = 800,\n      ...options\n    }: MiddlewareOptionalParams & {\n      ignoreVersion?: boolean;\n      retryCount?: number;\n      retryOverallDelay?: number;\n    } = {},\n  ) {\n    let version: string | undefined;\n    const getVersion = async (opts: OperationOptions): Promise<string> => {\n      if (version != null) return version;\n      version = (await this.getStatus(opts)).mdwVersion;\n      return version;\n    };\n\n    // eslint-disable-next-line constructor-super\n    super(url, {\n      allowInsecureConnection: true,\n      additionalPolicies: [\n        genVersionCheckPolicy('middleware', getVersion, '1.81.0', '2.0.0', ignoreVersion),\n        genRequestQueuesPolicy(),\n        genCombineGetRequestsPolicy(),\n        genRetryOnFailurePolicy(retryCount, retryOverallDelay),\n        genErrorFormatterPolicy((body: ErrorResponse) => ` ${body.error}`),\n      ],\n      ...options,\n    });\n    this.pipeline.addPolicy(parseBigIntPolicy, { phase: 'Deserialize' });\n    this.pipeline.removePolicy({ name: userAgentPolicyName });\n    this.pipeline.removePolicy({ name: setClientRequestIdPolicyName });\n    // TODO: use instead our retry policy\n    this.pipeline.removePolicy({ name: 'defaultRetryPolicy' });\n  }\n\n  /**\n   * Get a middleware response by path instead of a method name and arguments.\n   * @param pathWithQuery - a path to request starting with `/v3/`\n   */\n  async requestByPath<Response = unknown>(pathWithQuery: string): Promise<Response> {\n    const queryPos = pathWithQuery.indexOf('?');\n    const path = pathWithQuery.slice(0, queryPos === -1 ? pathWithQuery.length : queryPos);\n    const query = pathWithQuery.slice(queryPos === -1 ? pathWithQuery.length : queryPos + 1);\n\n    const operationSpec = operationSpecs.find((os) => {\n      let p = path;\n      if (os.path == null) return false;\n      const groups = os.path.replace(/{\\w+}/g, '{param}').split('{param}');\n      while (groups.length > 0) {\n        const part = groups.shift();\n        if (part == null) throw new InternalError(`Unexpected operation spec path: ${os.path}`);\n        if (!p.startsWith(part)) return false;\n        p = p.replace(part, '');\n        if (groups.length > 0) p = p.replace(/^[\\w.]+/, '');\n      }\n      return p === '';\n    });\n    if (operationSpec == null) {\n      throw new IllegalArgumentError(`Can't find operation spec corresponding to ${path}`);\n    }\n\n    return this.sendOperationRequest(\n      {},\n      {\n        ...operationSpec,\n        path,\n        urlParameters: operationSpec.urlParameters?.filter(\n          ({ parameterPath }) => parameterPath === '$host',\n        ),\n        queryParameters: Array.from(new URLSearchParams(query)).map(([key, value]) => ({\n          parameterPath: ['options', key],\n          mapper: {\n            defaultValue: value.toString(),\n            serializedName: key,\n            type: {\n              name: 'String',\n            },\n          },\n        })),\n      },\n    );\n  }\n\n  override async sendOperationRequest<T>(\n    operationArguments: OperationArguments,\n    operationSpec: OperationSpec,\n  ): Promise<T> {\n    const response = await super.sendOperationRequest(operationArguments, operationSpec);\n    if (!isMiddlewareRawPage(response)) return response as T;\n    return new MiddlewarePage(response, this) as T;\n  }\n}\n","import BrowserConnection from './connection/Browser.js';\n\n/**\n * Browser connection proxy\n * Provide functionality to easily forward messages from one connection to another and back\n * @category aepp wallet communication\n * @param con1 - first connection\n * @param con2 - second connection\n * @returns a function to stop proxying\n */\nexport default (con1: BrowserConnection, con2: BrowserConnection): (() => void) => {\n  con1.connect(\n    (msg: any) => con2.sendMessage(msg),\n    () => con2.disconnect(),\n  );\n  con2.connect(\n    (msg: any) => con1.sendMessage(msg),\n    () => con1.disconnect(),\n  );\n\n  return () => {\n    con1.disconnect();\n    con2.disconnect();\n  };\n};\n","import { AlreadyConnectedError, NoWalletConnectedError } from '../../utils/errors.js';\n\n/**\n * Browser connection base interface\n * @category aepp wallet communication\n */\nexport default abstract class BrowserConnection {\n  debug: boolean;\n\n  protected constructor({ debug = false }: { debug?: boolean }) {\n    this.debug = debug;\n  }\n\n  /**\n   * Connect\n   * @param onMessage - Message handler\n   * @param onDisconnect - trigger when runtime connection in closed\n   */\n  connect(\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    onMessage: (message: any, origin: string, source: any) => void,\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    onDisconnect: () => void,\n  ): void {\n    if (this.isConnected()) throw new AlreadyConnectedError('You already connected');\n  }\n\n  /**\n   * Disconnect\n   */\n  disconnect(): void {\n    if (!this.isConnected())\n      throw new NoWalletConnectedError('You dont have connection. Please connect before');\n  }\n\n  /**\n   * Receive message\n   */\n  protected receiveMessage(message: any): void {\n    if (this.debug) console.log('Receive message:', message);\n  }\n\n  /**\n   * Send message\n   */\n  sendMessage(message: any): void {\n    if (this.debug) console.log('Send message:', message);\n  }\n\n  /**\n   * Check if connected\n   * @returns Is connected\n   */\n  abstract isConnected(): boolean;\n}\n","import BrowserConnection from './Browser.js';\nimport { MESSAGE_DIRECTION } from '../schema.js';\nimport { InternalError, RpcConnectionError } from '../../utils/errors.js';\n\nexport type ImplPostMessage = Pick<\n  Window,\n  'addEventListener' | 'removeEventListener' | 'postMessage'\n>;\n\n/**\n * Browser window Post Message connector module\n * @category aepp wallet communication\n */\nexport default class BrowserWindowMessageConnection extends BrowserConnection {\n  origin?: string;\n\n  sendDirection?: MESSAGE_DIRECTION;\n\n  receiveDirection: MESSAGE_DIRECTION;\n\n  listener?: (this: Window, ev: MessageEvent<any>) => void;\n\n  #onDisconnect?: () => void;\n\n  readonly #target?: ImplPostMessage;\n\n  readonly #self: ImplPostMessage;\n\n  /**\n   * @param options - Options\n   * @param options.target Target window for message\n   * @param options.self Host window for message\n   * @param options.origin Origin of receiver\n   * @param options.sendDirection Wrapping messages into additional struct\n   * `({ type: 'to_aepp' || 'to_waellet', data })`\n   * Used for handling messages between content script and page\n   * @param options.receiveDirection Unwrapping messages from additional struct\n   */\n  constructor({\n    target,\n    self = window,\n    origin,\n    sendDirection,\n    receiveDirection = MESSAGE_DIRECTION.to_aepp,\n    ...options\n  }: {\n    target?: ImplPostMessage;\n    self?: ImplPostMessage;\n    origin?: string;\n    sendDirection?: MESSAGE_DIRECTION;\n    receiveDirection?: MESSAGE_DIRECTION;\n    debug?: boolean;\n  } = {}) {\n    super(options);\n    this.#target = target;\n    this.#self = self;\n    this.origin = origin;\n    this.sendDirection = sendDirection;\n    this.receiveDirection = receiveDirection;\n  }\n\n  isConnected(): boolean {\n    return this.listener != null;\n  }\n\n  override connect(\n    onMessage: (message: any, origin: string, source: MessageEventSource | null) => void,\n    onDisconnect: () => void,\n  ): void {\n    super.connect(onMessage, onDisconnect);\n    this.listener = (message: MessageEvent<any>) => {\n      // TODO: strict validate origin and source instead of checking message structure\n      if (\n        typeof message.data !== 'object' ||\n        (message.data.jsonrpc ?? message.data.data?.jsonrpc) !== '2.0'\n      )\n        return;\n      if (this.origin != null && this.origin !== message.origin) return;\n      if (this.#target != null && this.#target !== message.source) return;\n      this.receiveMessage(message);\n      let { data } = message;\n      if (data.type != null) {\n        if (message.data.type !== this.receiveDirection) return;\n        data = data.data;\n      }\n      onMessage(data, message.origin, message.source);\n    };\n    this.#self.addEventListener('message', this.listener);\n    this.#onDisconnect = onDisconnect;\n  }\n\n  override disconnect(): void {\n    super.disconnect();\n    if (this.listener == null || this.#onDisconnect == null) {\n      throw new InternalError('Expected to not happen, required for TS');\n    }\n    this.#self.removeEventListener('message', this.listener);\n    delete this.listener;\n    this.#onDisconnect();\n    this.#onDisconnect = undefined;\n  }\n\n  override sendMessage(msg: any): void {\n    if (this.#target == null) throw new RpcConnectionError(\"Can't send messages without target\");\n    const message = this.sendDirection != null ? { type: this.sendDirection, data: msg } : msg;\n    super.sendMessage(message);\n    this.#target.postMessage(message, this.origin ?? '*');\n  }\n}\n","import BrowserConnection from './connection/Browser.js';\nimport BrowserWindowMessageConnection from './connection/BrowserWindowMessage.js';\nimport { MESSAGE_DIRECTION, METHODS } from './schema.js';\nimport { WalletInfo } from './rpc/types.js';\nimport { UnsupportedPlatformError } from '../utils/errors.js';\n\ninterface Wallet {\n  info: WalletInfo;\n  getConnection: () => BrowserWindowMessageConnection;\n}\ninterface Wallets {\n  [key: string]: Wallet;\n}\n\n/**\n * A function to detect available wallets\n * @category aepp wallet communication\n * @param connection - connection to use to detect wallets\n * @param onDetected - call-back function which trigger on new wallet\n * @returns a function to stop scanning\n */\nexport default (\n  connection: BrowserConnection,\n  onDetected: ({ wallets, newWallet }: { wallets: Wallets; newWallet: Wallet }) => void,\n): (() => void) => {\n  if (window == null)\n    throw new UnsupportedPlatformError(\n      'Window object not found, you can run wallet detector only in browser',\n    );\n  const wallets: Wallets = {};\n\n  connection.connect(\n    (\n      { method, params }: { method: string; params: WalletInfo },\n      origin: string,\n      source: Window,\n    ) => {\n      if (method !== METHODS.readyToConnect || wallets[params.id] != null) return;\n\n      const wallet = {\n        info: params,\n        getConnection() {\n          return new BrowserWindowMessageConnection({\n            target: source,\n            ...(params.type === 'extension'\n              ? {\n                  sendDirection: MESSAGE_DIRECTION.to_waellet,\n                  receiveDirection: MESSAGE_DIRECTION.to_aepp,\n                  ...(window.origin !== 'null' && { origin: window.origin }),\n                }\n              : {\n                  origin: params.origin,\n                }),\n          });\n        },\n      };\n      wallets[wallet.info.id] = wallet;\n      onDetected({ wallets, newWallet: wallet });\n    },\n    () => {},\n  );\n\n  return () => connection.disconnect();\n};\n","import { Runtime } from 'webextension-polyfill';\nimport BrowserConnection from './Browser.js';\nimport { UnexpectedTsError } from '../../utils/errors.js';\n\n/**\n * BrowserRuntimeConnection\n * Handle browser runtime communication\n * @category aepp wallet communication\n */\nexport default class BrowserRuntimeConnection extends BrowserConnection {\n  port: Runtime.Port;\n\n  #listeners?: [(message: any, port: Runtime.Port) => void, () => void];\n\n  /**\n   * @param options - Options\n   */\n  constructor({ port, ...options }: { port: Runtime.Port; debug?: boolean }) {\n    super(options);\n    this.port = port;\n  }\n\n  override disconnect(): void {\n    super.disconnect();\n    this.port.disconnect();\n    if (this.#listeners == null) throw new UnexpectedTsError();\n    this.port.onMessage.removeListener(this.#listeners[0]);\n    this.port.onDisconnect.removeListener(this.#listeners[1]);\n    this.#listeners = undefined;\n  }\n\n  override connect(\n    onMessage: (message: any, origin: string, source: Runtime.Port) => void,\n    onDisconnect: () => void,\n  ): void {\n    super.connect(onMessage, onDisconnect);\n    this.#listeners = [\n      (message, port) => {\n        this.receiveMessage(message);\n        // TODO: make `origin` optional because sender url is not available on aepp side\n        onMessage(message, port.sender?.url ?? '', port);\n      },\n      onDisconnect,\n    ];\n    this.port.onMessage.addListener(this.#listeners[0]);\n    this.port.onDisconnect.addListener(this.#listeners[1]);\n  }\n\n  override sendMessage(message: any): void {\n    super.sendMessage(message);\n    this.port.postMessage(message);\n  }\n\n  isConnected(): boolean {\n    return this.#listeners != null;\n  }\n}\n"],"names":["root","factory","exports","module","define","amd","self","byteLength","b64","lens","getLens","validLen","placeHoldersLen","toByteArray","tmp","i","arr","Arr","_byteLength","curByte","len","revLookup","charCodeAt","fromByteArray","uint8","length","extraBytes","parts","maxChunkLength","len2","push","encodeChunk","lookup","join","Uint8Array","Array","code","Error","indexOf","start","end","num","output","BigNumber","isNumeric","mathceil","Math","ceil","mathfloor","floor","bignumberError","tooManyDigits","BASE","LOG_BASE","MAX_SAFE_INTEGER","POWS_TEN","SQRT_BASE","MAX","bitFloor","n","coeffToString","a","s","z","j","r","slice","compare","x","y","b","xc","c","yc","k","e","l","intCheck","min","max","name","String","isOdd","toExponential","str","charAt","toFixedPoint","zs","clone","configObject","div","convertBase","parseNumeric","pow2_53","random53bitInt","basePrefix","dotAfter","dotBefore","isInfinityOrNaN","whitespaceOrPlus","P","prototype","constructor","toString","valueOf","ONE","DECIMAL_PLACES","ROUNDING_MODE","TO_EXP_NEG","TO_EXP_POS","MIN_EXP","MAX_EXP","CRYPTO","MODULO_MODE","POW_PRECISION","FORMAT","prefix","groupSize","secondaryGroupSize","groupSeparator","decimalSeparator","fractionGroupSize","fractionGroupSeparator","suffix","ALPHABET","alphabetHasNormalDecimalDigits","v","alphabet","caseChanged","isNum","this","_isBigNumber","test","replace","search","substring","round","DEBUG","toUpperCase","toLowerCase","format","rm","id","c0","ne","maxOrMin","args","normalise","pop","sd","d","ni","rd","pows10","out","ROUND_UP","ROUND_DOWN","ROUND_CEIL","ROUND_FLOOR","ROUND_HALF_UP","ROUND_HALF_DOWN","ROUND_HALF_EVEN","ROUND_HALF_CEIL","ROUND_HALF_FLOOR","EUCLID","config","set","obj","p","hasOwnProperty","crypto","getRandomValues","randomBytes","EXPONENTIAL_AT","RANGE","isBigNumber","call","maximum","arguments","minimum","random","dp","rand","Uint32Array","copy","splice","sum","plus","decimal","toBaseOut","baseIn","baseOut","arrL","reverse","sign","callerIsToString","pow","concat","multiply","base","m","temp","xlo","xhi","carry","klo","khi","aL","bL","cmp","subtract","more","prod","prodL","q","qc","rem","remL","rem0","xi","xL","yc0","yL","yz","NaN","isNaN","p1","p2","absoluteValue","abs","comparedTo","decimalPlaces","dividedBy","dividedToIntegerBy","idiv","exponentiatedBy","half","isModExp","nIsBig","nIsNeg","nIsOdd","isInteger","mod","times","integerValue","isEqualTo","eq","isFinite","isGreaterThan","gt","isGreaterThanOrEqualTo","gte","isLessThan","lt","isLessThanOrEqualTo","lte","isNegative","isPositive","isZero","minus","t","xLTy","xe","ye","modulo","multipliedBy","xcL","ycL","ylo","yhi","zc","sqrtBase","negated","precision","shiftedBy","squareRoot","sqrt","rep","toFixed","toFormat","split","g1","g2","intPart","fractionPart","isNeg","intDigits","substr","RegExp","toFraction","md","d0","d1","d2","exp","n0","n1","toNumber","toPrecision","toJSON","util","ADD64AA","o0","o1","ADD64AC","b0","b1","B2B_GET32","B2B_G","ix","iy","x0","x1","y0","y1","xor0","xor1","BLAKE2B_IV32","SIGMA82","map","blake2bCompress","ctx","last","h","parameterBlock","blake2bInit","outlen","key","salt","personal","fill","blake2bUpdate","input","blake2bFinal","blake2b","normalizeInput","blake2bHex","toHex","uint32ToHex","val","ret","TextEncoder","encode","bytes","debugPrint","label","size","msg","console","log","testSpeed","hashFn","N","M","startMs","Date","getTime","genMs","hashHex","hashMs","ms","base64","ieee754","customInspectSymbol","Symbol","Buffer","SlowBuffer","alloc","INSPECT_MAX_BYTES","K_MAX_LENGTH","createBuffer","RangeError","buf","Object","setPrototypeOf","arg","encodingOrOffset","TypeError","allocUnsafe","from","value","string","encoding","isEncoding","actual","write","fromString","ArrayBuffer","isView","arrayView","isInstance","fromArrayBuffer","buffer","byteOffset","fromArrayLike","fromArrayView","SharedArrayBuffer","isBuffer","checked","undefined","numberIsNaN","type","isArray","data","fromObject","toPrimitive","assertSize","array","mustMatch","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","dir","arrayIndexOf","lastIndexOf","indexSize","arrLength","valLength","read","readUInt16BE","foundIndex","found","hexWrite","offset","Number","remaining","strLen","parsed","parseInt","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","base64Write","ucs2Write","units","hi","lo","utf16leToBytes","res","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","codePoints","MAX_ARGUMENTS_LENGTH","fromCharCode","apply","decodeCodePointsArray","kMaxLength","TYPED_ARRAY_SUPPORT","proto","foo","typedArraySupport","error","defineProperty","enumerable","get","poolSize","allocUnsafeSlow","_isBuffer","list","pos","swap16","swap32","swap64","toLocaleString","equals","inspect","trim","target","thisStart","thisEnd","thisCopy","targetCopy","includes","_arr","hexSliceLookupTable","checkOffset","ext","checkInt","wrtBigUInt64LE","checkIntBI","BigInt","wrtBigUInt64BE","checkIEEE754","writeFloat","littleEndian","noAssert","writeDouble","newBuf","subarray","readUintLE","readUIntLE","mul","readUintBE","readUIntBE","readUint8","readUInt8","readUint16LE","readUInt16LE","readUint16BE","readUint32LE","readUInt32LE","readUint32BE","readUInt32BE","readBigUInt64LE","defineBigIntMethod","validateNumber","first","boundsError","readBigUInt64BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readBigInt64LE","readBigInt64BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUintLE","writeUIntLE","writeUintBE","writeUIntBE","writeUint8","writeUInt8","writeUint16LE","writeUInt16LE","writeUint16BE","writeUInt16BE","writeUint32LE","writeUInt32LE","writeUint32BE","writeUInt32BE","writeBigUInt64LE","writeBigUInt64BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeBigInt64LE","writeBigInt64BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","copyWithin","errors","E","sym","getMessage","Base","super","writable","configurable","stack","message","addNumericalSeparator","range","ERR_OUT_OF_RANGE","checkBounds","ERR_INVALID_ARG_TYPE","ERR_BUFFER_OUT_OF_BOUNDS","received","INVALID_BASE64_RE","Infinity","leadSurrogate","base64clean","src","dst","table","i16","fn","BufferBigIntNotDefined","bind","$apply","$call","$reflectApply","actualApply","Function","$TypeError","$actualApply","Reflect","setFunctionLength","$defineProperty","callBindBasic","applyBind","originalFunction","func","adjustedLength","GetIntrinsic","$indexOf","allowMissing","intrinsic","serialize","object","JSON","stringify","reduce","cv","ci","keys","sort","$SyntaxError","gopd","property","nonEnumerable","nonWritable","nonConfigurable","loose","desc","hasProtoAccessor","callBind","gOPD","__proto__","$Object","$getPrototypeOf","getPrototypeOf","EvalError","ReferenceError","SyntaxError","URIError","naiveFallback","window","globalThis","__global__","has","Events","EE","context","once","addListener","emitter","event","listener","evt","_events","_eventsCount","clearEvent","EventEmitter","create","eventNames","events","names","getOwnPropertySymbols","listeners","handlers","ee","listenerCount","emit","a1","a2","a3","a4","a5","removeListener","on","removeAllListeners","off","prefixed","ReflectOwnKeys","R","ReflectApply","receiver","ownKeys","getOwnPropertyNames","NumberIsNaN","init","Promise","resolve","reject","errorListener","err","resolver","eventTargetAgnosticAddListener","handler","addErrorHandlerIfEventEmitter","_maxListeners","defaultMaxListeners","checkListener","_getMaxListeners","that","_addListener","prepend","existing","warning","newListener","unshift","warned","w","count","warn","onceWrapper","fired","wrapFn","_onceWrap","state","wrapped","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","flags","addEventListener","wrapListener","removeEventListener","setMaxListeners","getMaxListeners","doError","er","prependListener","prependOnceListener","position","originalListener","shift","index","spliceOne","rawListeners","isCallable","toStr","iterator","thisArg","forEachArray","forEachString","forEachObject","concatty","bound","arrLike","slicy","boundLength","boundArgs","joiny","result","Empty","implementation","$Error","$EvalError","$RangeError","$ReferenceError","$URIError","$Function","getEvalledConstructor","expressionSyntax","$gOPD","throwTypeError","ThrowTypeError","calleeThrows","gOPDthrows","hasSymbols","getProto","$ObjectGPO","$ReflectGPO","needsEval","TypedArray","INTRINSICS","AggregateError","Atomics","BigInt64Array","BigUint64Array","Boolean","DataView","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","eval","Float16Array","Float32Array","Float64Array","FinalizationRegistry","Int8Array","Int16Array","Int32Array","Map","parseFloat","Proxy","Set","Uint8ClampedArray","Uint16Array","WeakMap","WeakRef","WeakSet","errorProto","doEval","gen","LEGACY_ALIASES","hasOwn","$concat","$spliceApply","$replace","$strSlice","$exec","exec","rePropName","reEscapeChar","getBaseIntrinsic","alias","intrinsicName","match","number","quote","subString","stringToPath","intrinsicBaseName","intrinsicRealName","skipFurtherCaching","isOwn","part","reflectGetProto","originalGetProto","getDunderProto","O","getOwnPropertyDescriptor","hasPropertyDescriptors","hasArrayLengthDefineBug","origSymbol","hasSymbolSham","symObj","_","syms","propertyIsEnumerable","descriptor","toStringTag","$hasOwn","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","rt","LN2","ctor","superCtor","super_","TempCtor","badArrayLike","isCallableMarker","fnToStr","reflectApply","constructorRegex","isES6ClassFn","fnStr","tryFunctionObject","hasToStringTag","isIE68","isDDA","document","all","strClass","whichTypedArray","json_stringify","json_parse","options","parse","suspectProtoRx","suspectConstructorRx","_options","strict","storeAsString","alwaysParseAsBig","useNativeBigInt","protoAction","constructorAction","at","ch","text","escapee","f","next","hex","uffff","startAt","white","word","source","reviver","walk","holder","forEach","gap","indent","escapable","meta","lastIndex","partial","mind","replacer","space","$isNaN","cachedSetTimeout","cachedClearTimeout","process","defaultSetTimout","defaultClearTimeout","runTimeout","fun","setTimeout","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","run","marker","runClearTimeout","Item","noop","nextTick","title","browser","env","argv","version","versions","binding","cwd","chdir","umask","concatBytes","encodeLength","inputBuf","toBytes","safeSlice","decodeLength","parseHexByte","bytesToHex","hexLength","numberToHex","hexToBytes","decode","stream","decoded","_decode","remainder","llength","innerRemainder","totalLength","utils","cachedHexes","_v","padStart","uint8a","hexByte","byte","arrays","pad","utf","integer","isHexPrefixed","RLP","copyProps","SafeBuffer","hasDescriptors","$floor","functionLengthIsConfigurable","functionLengthIsWritable","toBuffer","Hash","blockSize","finalSize","_block","_finalSize","_blockSize","_len","update","enc","block","accum","assigned","_update","digest","bits","lowBits","highBits","hash","_hash","inherits","K","W","Sha256","_w","maj","sigma0","sigma1","gamma0","_a","_b","_c","_d","_e","_f","_g","_h","g","T1","T2","H","typedArrayBuffer","useUint8Array","useArrayBuffer","useFromArrayBuffer","isArr","nacl","auth","BLOCK_SIZE","hmac","innerHash","full","authLength","authFullLength","keyLength","gf","randombytes","_0","_9","gf0","gf1","_121665","D","D2","X","Y","I","ts64","vn","yi","crypto_verify_16","crypto_verify_32","crypto_core_salsa20","inp","o","u","j0","j1","j2","j3","j4","j5","j6","j7","j8","j9","j10","j11","j12","j13","j14","j15","x2","x3","x4","x5","x6","x7","x8","x9","x10","x11","x12","x13","x14","x15","core_salsa20","crypto_core_hsalsa20","core_hsalsa20","sigma","crypto_stream_salsa20_xor","cpos","mpos","crypto_stream_salsa20","crypto_stream","sn","crypto_stream_xor","poly1305","t0","t1","t2","t3","t4","t5","t6","t7","leftover","fin","crypto_onetimeauth","outpos","finish","crypto_onetimeauth_verify","hpos","crypto_secretbox","crypto_secretbox_open","set25519","car25519","sel25519","pack25519","neq25519","par25519","unpack25519","A","Z","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","t19","t20","t21","t22","t23","t24","t25","t26","t27","t28","t29","t30","b2","b3","b4","b5","b6","b7","b8","b9","b10","b11","b12","b13","b14","b15","S","inv25519","pow2523","crypto_scalarmult","x32","x16","crypto_scalarmult_base","crypto_box_keypair","crypto_box_beforenm","blocks","d3","d4","d5","d6","d7","d8","d9","hibit","h0","h1","h2","h3","h4","h5","h6","h7","h8","h9","r0","r1","r2","r3","r4","r5","r6","r7","r8","r9","mac","macpos","mask","want","crypto_box_afternm","crypto_box_open_afternm","crypto_hashblocks_hl","hh","hl","bh0","bh1","bh2","bh3","bh4","bh5","bh6","bh7","bl0","bl1","bl2","bl3","bl4","bl5","bl6","bl7","th","tl","wh","wl","ah0","ah1","ah2","ah3","ah4","ah5","ah6","ah7","al0","al1","al2","al3","al4","al5","al6","al7","crypto_hash","add","cswap","pack","tx","ty","zi","scalarmult","scalarbase","crypto_sign_keypair","pk","sk","seeded","L","modL","crypto_sign","sm","smlen","crypto_sign_open","chk","den","den2","den4","den6","unpackneg","crypto_sign_BYTES","crypto_sign_PUBLICKEYBYTES","crypto_sign_SECRETKEYBYTES","checkLengths","checkArrayTypes","cleanup","lowlevel","crypto_box","crypto_box_open","crypto_secretbox_KEYBYTES","crypto_secretbox_NONCEBYTES","crypto_secretbox_ZEROBYTES","crypto_secretbox_BOXZEROBYTES","crypto_scalarmult_BYTES","crypto_scalarmult_SCALARBYTES","crypto_box_PUBLICKEYBYTES","crypto_box_SECRETKEYBYTES","crypto_box_BEFORENMBYTES","crypto_box_NONCEBYTES","crypto_box_ZEROBYTES","crypto_box_BOXZEROBYTES","crypto_sign_SEEDBYTES","crypto_hash_BYTES","secretbox","nonce","open","box","nonceLength","overheadLength","scalarMult","scalarLength","groupElementLength","publicKey","secretKey","before","checkBoxLengths","after","keyPair","fromSecretKey","publicKeyLength","secretKeyLength","sharedKeyLength","signedMsg","mlen","detached","sig","verify","fromSeed","seed","seedLength","signatureLength","hashLength","setPRNG","msCrypto","$typedArrayBuffer","callBound","isTypedArray","_globalThis","NativeWebSocket","WebSocket","MozWebSocket","websocket_version","W3CWebSocket","uri","protocols","prop","availableTypedArrays","$toString","typedArrays","$slice","cache","typedArray","superProto","tag","getter","trySlices","tryTypedArrays","possibleNames","parent","it","sham","path","WrappedWellKnownSymbolModule","tryToString","argument","isPossiblePrototype","$String","isObject","toIndexedObject","toAbsoluteIndex","lengthOfArrayLike","createMethod","IS_INCLUDES","$this","el","fromIndex","uncurryThis","IndexedObject","toObject","arraySpeciesCreate","TYPE","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","callbackfn","specificCreate","boundFunction","filter","some","every","find","findIndex","filterReject","fails","wellKnownSymbol","V8_VERSION","SPECIES","METHOD_NAME","isConstructor","$Array","originalArray","C","arraySpeciesConstructor","stringSlice","TO_STRING_TAG_SUPPORT","classofRaw","TO_STRING_TAG","CORRECT_ARGUMENTS","tryGet","callee","F","done","DESCRIPTORS","definePropertyModule","createPropertyDescriptor","bitmap","createNonEnumerableProperty","EXISTS","createElement","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","navigator","userAgent","Deno","v8","isForced","wrapConstructor","NativeConstructor","Wrapper","FORCED","USE_NATIVE","VIRTUAL_PROTOTYPE","sourceProperty","targetProperty","nativeProperty","resultProperty","TARGET","GLOBAL","global","STATIC","stat","PROTO","nativeSource","targetPrototype","forced","dontCallGetSet","wrap","real","NATIVE_BIND","FunctionPrototype","aCallable","getDescriptor","PROPER","CONFIGURABLE","method","uncurryThisWithBind","aFunction","variable","namespace","classof","rawLength","element","keysLength","isNullOrUndefined","V","check","getBuiltIn","store","functionToString","inspectSource","NATIVE_WEAK_MAP","shared","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","metadata","facade","STATE","enforce","getterFor","documentAll","construct","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","called","replacement","feature","detection","normalize","POLYFILL","NATIVE","isPrototypeOf","USE_SYMBOL_AS_UID","$Symbol","IteratorPrototype","setToStringTag","Iterators","returnThis","IteratorConstructor","NAME","ENUMERABLE_NEXT","$","IS_PURE","FunctionName","createIteratorConstructor","defineBuiltIn","IteratorsCore","PROPER_FUNCTION_NAME","CONFIGURABLE_FUNCTION_NAME","BUGGY_SAFARI_ITERATORS","ITERATOR","KEYS","VALUES","ENTRIES","Iterable","DEFAULT","IS_SET","CurrentIteratorPrototype","methods","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","entries","values","PrototypeOfArrayIteratorPrototype","arrayIterator","toLength","trunc","activeXDocument","anObject","definePropertiesModule","enumBugKeys","html","documentCreateElement","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","content","LT","NullProtoObjectViaActiveX","close","parentWindow","NullProtoObject","ActiveXObject","iframeDocument","iframe","JS","domain","style","display","appendChild","contentWindow","Properties","V8_PROTOTYPE_DEFINE_BUG","objectKeys","defineProperties","props","IE8_DOM_DEFINE","toPropertyKey","$getOwnPropertyDescriptor","ENUMERABLE","WRITABLE","Attributes","current","propertyIsEnumerableModule","$getOwnPropertyNames","arraySlice","windowNames","getWindowNames","internalObjectKeys","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","$propertyIsEnumerable","NASHORN_BUG","uncurryThisAccessor","requireObjectCoercible","aPossiblePrototype","setter","CORRECT_SETTER","pref","TAG","SET_METHOD","uid","defineGlobalProperty","SHARED","mode","copyright","license","toIntegerOrInfinity","CONVERT_TO_STRING","second","codeAt","symbol","SymbolPrototype","TO_PRIMITIVE","hint","arity","keyFor","thisSymbolValue","isRegisteredSymbol","isSymbol","$isWellKnownSymbol","isWellKnownSymbol","WellKnownSymbolsStore","symbolKeys","symbolKeysLength","symbolKey","NATIVE_SYMBOL","getMethod","ordinaryToPrimitive","exoticToPrim","postfix","wrappedWellKnownSymbolModule","createWellKnownSymbol","withoutSetter","doesNotExceedSafeInteger","createProperty","arrayMethodHasSpeciesSupport","IS_CONCAT_SPREADABLE","IS_CONCAT_SPREADABLE_SUPPORT","isConcatSpreadable","spreadable","addToUnscopables","InternalStateModule","defineIterator","createIterResultObject","ARRAY_ITERATOR","setInternalState","getInternalState","iterated","kind","Arguments","getReplacerFunction","$stringify","numberToString","tester","low","WRONG_SYMBOLS_CONVERSION","ILL_FORMED_UNICODE","stringifyWithSymbolsFix","$replacer","fixIllFormed","prev","getOwnPropertySymbolsModule","$getOwnPropertySymbols","STRING_ITERATOR","point","defineWellKnownSymbol","nativeObjectCreate","getOwnPropertyNamesModule","getOwnPropertyNamesExternal","getOwnPropertyDescriptorModule","defineBuiltInAccessor","defineSymbolToPrimitive","$forEach","HIDDEN","SYMBOL","QObject","nativeGetOwnPropertyDescriptor","nativeDefineProperty","nativeGetOwnPropertyNames","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","USE_SETTER","findChild","fallbackDefineProperty","ObjectPrototypeDescriptor","setSymbolDescriptor","description","$defineProperties","properties","IS_OBJECT_PROTOTYPE","unsafe","useSetter","useSimple","NATIVE_SYMBOL_REGISTRY","StringToSymbolRegistry","SymbolToStringRegistry","METADATA","isRegistered","isWellKnown","DOMIterables","COLLECTION_NAME","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","__esModule","definition","for","bigNumber","BaseError","AccountError","AensError","AeppError","ChannelError","CompilerError","ContractError","CryptographyError","NodeError","TransactionError","WalletError","ArgumentError","argumentName","requirement","argumentValue","IllegalArgumentError","ArgumentCountMismatchError","functionName","requiredCount","providedCount","InsufficientBalanceError","MissingParamError","NoSerializerFoundError","RequestTimedOutError","height","TxTimedOutError","UnsupportedPlatformError","UnsupportedProtocolError","NotImplementedError","UnsupportedVersionError","dependency","geVersion","ltVersion","LogicError","InternalError","UnexpectedTsError","UnavailableAccountError","address","AensPointerContextError","nameOrId","InsufficientNameFeeError","nameFee","minNameFee","InvalidAensNameError","InvalidRpcMessageError","MissingCallbackError","UnAuthorizedAccountError","onAccount","UnknownRpcClientError","UnsubscribedAccountError","ChannelCallError","ChannelConnectionError","ChannelPingTimedOutError","UnexpectedChannelMessageError","ChannelIncomingMessageError","handlerError","incomingMessage","UnknownChannelStateError","InvalidAuthDataError","BytecodeMismatchError","details","DuplicateContractError","InactiveContractError","contractAddress","InvalidMethodInvocationError","MissingContractAddressError","MissingContractDefError","MissingFunctionNameError","NodeInvocationError","transaction","NoSuchContractFunctionError","NotPayableFunctionError","amount","MissingEventDefinitionError","eventNameHash","eventAddress","AmbiguousEventDefinitionError","matchedEvents","InvalidChecksumError","MerkleTreeHashMismatchError","MissingNodeInTreeError","UnknownNodeLengthError","nodeLength","UnknownPathNibbleError","nibble","DuplicateNodeError","NodeNotFoundError","DecodeError","PayloadLengthError","DryRunError","IllegalBidFeeError","InvalidSignatureError","PrefixNotFoundError","SchemaNotFoundError","TagNotFoundError","TxNotInChainError","txHash","AlreadyConnectedError","NoWalletConnectedError","RpcConnectionError","AE_AMOUNT_FORMATS","DENOMINATION_MAGNITUDE","AE","MILI_AE","MICRO_AE","NANO_AE","PICO_AE","FEMTO_AE","AETTOS","formatAmount","denomination","targetDenomination","toAe","toAettos","prefixes","magnitude","getNearestPrefix","exponent","getLowerBoundPrefix","_prefixes$find","prefixedAmount","rawValue","_value$e","ValidPhaseNames","HttpPipeline","policies","_policies","_orderedPolicies","addPolicy","policy","phase","afterPhase","removePolicy","removedPolicies","policyDescriptor","sendRequest","httpClient","request","getOrderedPolicies","reduceRight","req","pipeline","orderPolicies","policyMap","createPhase","hasRun","hasAfterPolicies","serializePhase","noPhase","deserializePhase","retryPhase","signPhase","orderedPhases","getPhase","policyName","node","dependsOn","dependants","afterPolicies","afterPolicyName","afterNode","beforePolicies","beforePolicyName","beforeNode","walkPhase","dependant","delete","walkPhases","iteration","initialResultLength","debugEnvVariable","enabledString","enabledNamespaces","skippedNamespaces","debuggers","enable","debugObj","assign","createDebugger","enabled","disable","firstArg","info","debug","namespaces","wildcard","namespaceList","ns","startsWith","instance","endsWith","skipped","enabledNamespace","newDebugger","destroy","extend","registeredLoggers","logLevelFromEnv","AZURE_LOG_LEVEL","azureLogLevel","AzureLogger","AZURE_LOG_LEVELS","isAzureLogLevel","level","logger","shouldEnable","setLogLevel","levelMap","verbose","createClientLogger","clientRootLogger","patchLogMethod","createLogger","child","logLevel","AbortError","isError","hasName","hasMessage","getErrorMessage","stringified","stringToUint8Array","utf8StringToUint8Array","base64ToUint8Array","base64UrlToUint8Array","highNibble","lowNibble","hexDigits","hexStringToUint8Array","atob","uuidFunction","randomUUID","uuid","randomNumber","importScripts","deno","Bun","isNodeLike","RedactedString","product","defaultAllowedHeaderNames","defaultAllowedQueryParameters","Sanitizer","additionalAllowedHeaderNames","allowedHeaderNames","additionalAllowedQueryParameters","allowedQueryParameters","sanitize","seen","sanitizeHeaders","sanitizeUrl","sanitizeQuery","url","URL","searchParams","sanitized","allowedRedirect","redirectPolicy","maxRetries","response","handleRedirect","async","currentRetries","status","headers","locationHeader","body","SDK_VERSION","getUserAgentValue","runtimeInfo","localNavigator","osPlatform","userAgentData","entropyValues","getHighEntropyValues","architecture","platform","platformVersion","brand","brands","brandOrder","foundBrand","getBrandVersionString","browserRegexes","regex","getBrowserInfo","EdgeRuntime","setPlatformSpecificData","defaultAgent","telemetryInfo","token","getUserAgentString","UserAgentHeaderName","userAgentPolicyName","rawContent","getRawContent","blob","isWebReadableStream","getReader","tee","toBlobPart","Blob","Response","encodeHeaders","getLength","multipartPolicyName","validBoundaryCharacters","multipartPolicy","multipartBody","boundary","contentTypeHeader","parsedHeader","contentType","parsedBoundary","assertValidBoundary","sources","flatMap","contentLength","total","partLength","getTotalLength","buildRequestBody","delayInMs","timer","onAborted","rejectOnAbort","abortErrorMsg","removeListeners","abortSignal","aborted","parseHeaderValueAsNumber","headerName","valueAsNum","RetryAfterHeader","AllRetryAfterHeaders","getRetryAfterInMs","header","retryAfterValue","retryAfterHeader","diff","now","exponentialRetryStrategy","retryInterval","retryDelayInMs","maxRetryInterval","maxRetryDelayInMs","retry","retryCount","responseError","matchedSystemError","ignoreSystemErrors","isExponential","isExponentialRetryResponse","ignoreExponentialResponse","ignoreHttpStatusCodes","unknownResponse","isThrottlingRetryResponse","skipStrategy","retryAttempt","exponentialDelay","clampedDelay","retryAfterInMs","calculateRetryDelay","errorToThrow","retryPolicyLogger","retryPolicy","strategies","retryRequest","requestId","strategiesLoop","strategy","strategyLogger","modifiers","redirectTo","normalizeName","HttpHeadersImpl","rawHeaders","_headersMap","preserveCase","entry","normalizedName","headerIterator","createHttpHeaders","setClientRequestIdPolicyName","knownContextKeys","span","createTracingContext","TracingContextImpl","parentContext","setValue","initialContext","_contextMap","newContext","getValue","deleteValue","instrumenterImplementation","getInstrumenter","createRequestHeaders","parseTraceparentHeader","startSpan","_name","spanOptions","isRecording","recordException","setAttribute","setStatus","addEvent","tracingContext","withContext","_context","callback","callbackArgs","custom","errorSanitizer","RestError","statusCode","isRestError","createPipelineFromOptions","tlsSettings","agent","tlsOptions","proxyPolicy","proxyOptions","decompressResponsePolicy","FormData","formData","formDataMap","formDataToFormDataMap","urlSearchParams","URLSearchParams","subValue","append","wwwFormUrlEncode","fieldName","fileName","prepareFormData","userAgentValue","userAgentPrefix","userAgentPolicy","userAgentOptions","requestIdHeaderName","setClientRequestIdPolicy","telemetryOptions","clientRequestIdHeaderName","defaultRetryPolicy","retryOptions","userAgentPromise","sanitizer","tracingClient","packageName","packageVersion","operationOptions","startSpanResult","tracingOptions","updatedOptions","withSpan","traceparentHeader","createTracingClient","tryCreateTracingClient","spanAttributes","spanKind","tryCreateSpan","serviceRequestId","tryProcessResponse","tryProcessError","tracingPolicy","loggingOptions","redirectOptions","logPolicy","REQUEST_SEND_ERROR","PARSE_ERROR","FetchHttpClient","protocol","allowInsecureConnection","proxySettings","abortController","abortControllerCleanup","AbortController","abortListener","abort","setupAbortSignal","pipelineHeaders","Headers","buildFetchHeaders","streaming","requestBody","buildBodyStream","onProgress","onUploadProgress","requestInit","signal","Request","credentials","withCredentials","duplex","fetch","loadedBytes","httpResponse","responseHeaders","buildPipelineHeaders","bodyStream","onDownloadProgress","onEnd","streamResponseStatusCodes","POSITIVE_INFINITY","enableBrowserStreams","browserStreamBody","responseStream","blobBody","bodyAsText","buildPipelineResponse","makeRequest","getError","readableStream","pipeThrough","TransformStream","isTransformStreamSupported","transform","chunk","controller","enqueue","terminate","flush","reader","ReadableStream","pull","releaseLock","cancel","reason","PipelineRequestImpl","disableKeepAlive","DEFAULT_CYCLER_OPTIONS","forcedRefreshWindowInMs","retryIntervalInMs","refreshWindowInMs","trySendRequest","defaultAuthorizeRequest","scopes","getAccessToken","getTokenOptions","enableCae","accessToken","isChallengeResponse","authorizeRequestOnCaeChallenge","onChallengeOptions","caeClaims","claims","tokenType","getCaeChallengeClaims","challenges","parsedChallenges","challengeRegex","paramRegex","scheme","paramsString","params","paramMatch","parseChallenges","pause","duration","mapObject","fromEntries","concatBuffers","isKeyOfObject","isItemOfArray","item","isAccountNotFoundError","ensureError","wrapWithProxy","valueCb","Encoding","BASE_MAP","LEADER","FACTOR","iFACTOR","decodeUnsafe","psz","zeroes","b256","charCode","it3","it4","vch","pbegin","pend","b58","it1","it2","repeat","sha256hash","base64Types","ContractBytearray","ContractStoreKey","ContractStoreValue","Transaction","OracleQuery","OracleResponse","State","Poi","StateTrees","CallStateTree","Bytearray","base58Types","KeyBlockHash","MicroBlockHash","BlockPofHash","BlockTxHash","BlockStateHash","Channel","ContractAddress","TxHash","OracleAddress","OracleQueryId","AccountAddress","AccountSecretKey","Signature","Commitment","PeerPubkey","Name","byteSizeForType","ensureValidLength","reqLen","getChecksum","payload","addChecksum","getPayload","base58","bs58","parseType","maybeType","base64Type","base58Type","encodedPayload","extra","encoder","isAddressValid","maybeEncoded","encodings","ensureEncoded","isEncoded","genSalt","encodeUnsigned","binary","verifySignature","signature","encodeVarUInt","messagePrefix","messagePrefixLength","hashMessage","verifyMessageSignature","big","hexString","DRY_RUN_ACCOUNT","pub","MAX_AUTH_FUN_GAS","MIN_GAS_PRICE","NAME_FEE_MULTIPLIER","NAME_FEE_BID_INCREMENT","NAME_BID_TIMEOUT_BLOCKS","NAME_MAX_LENGTH_FEE","NAME_BID_RANGES","ConsensusProtocolVersion","VmVersion","AbiVersion","Tag","buildContractId","owner","oracleQueryId","senderId","oracleId","nonceBE","_int32","AENS_SUFFIX","nameToPunycode","maybeName","other","punycode","username","password","port","pathname","host","produceNameId","commitmentHash","readInt","ensureName","isName","encodingToPointerKey","getDefaultPointerKey","identifier","getMinimumNameFee","nameLength","computeBidFee","startFee","increment","computeAuctionEndBlock","claimHeight","_ref","_ref2","_ref3","isAuctionName","_getPollInterval","_expectedMineRate","_microBlockCycle","onNode","networkId","getNetworkId","_isHyperchain","getEventInterval","heightCache","getHeight","cached","_wrappedValue","time","getCurrentKeyBlockHeight","poll","interval","getTransactionByHash","blockHeight","ttl","awaitHeight","currentHeight","waitForTxConfirm","confirm","newBlockHeight","getAccount","getAccountByPubkeyAndHeight","getAccountByPubkeyAndHash","getAccountByPubkey","getBalance","addr","balance","catch","getCurrentGeneration","getGeneration","hashOrHeight","getGenerationByHeight","getGenerationByHash","getMicroBlockTransactions","getMicroBlockTransactionsByHash","transactions","getKeyBlock","getKeyBlockByHeight","getKeyBlockByHash","getMicroBlockHeader","getMicroBlockHeaderByHash","txDryRunRequests","txDryRunHandler","rs","dryRunRes","top","protectedDryRunTxs","txEvents","txs","accounts","accountAddress","pubKey","results","resultPayload","idx","txDryRun","combine","_txDryRunRequests$get","requests","_requests$timeout","getContractByteCode","contractId","getContractCode","getContract","getName","getNameEntryByName","resolveName","resolveByNode","pointer","pointers","ProtocolToVmAbi","Ceres","vmVersion","Fate3","abiVersion","Fate","NoAbi","getProtocolDetails","protocolVersion","_protocol$vmVersion$","Fate2","consensusProtocolVersion","prepare","getNodeInfo","deserialize","vm","abi","_getProtocolDetails","ContractCallTx","GaMetaTx","idTagToEncoding","genAddressField","hashId","idTag","genArrayField","itemHandler","items","buffers","uInt","serializeAettos","genEncodedField","optional","encodedData","genEntryField","txParams","packEntry","unpackEntry","genEnumerationField","enm","gasPriceCache","getCachedIncreasedGasPrice","gasPrice","minGasPrice","utilization","getRecentGasPrices","maxSafeGasPrice","coinAmount","getOracleRelativeTtl","ttlKeys","OracleRegisterTx","OracleExtendTx","OracleQueryTx","OracleRespondTx","buildGas","builtTx","unpackTx","buildTx","txObject","innerTxSize","PayingForTx","encodedTx","txType","_feeFactors","ChannelForceProgressTx","ChannelOffChainTx","ContractCreateTx","GaAttachTx","TX_BASE_GAS","TX_OTHER_GAS","txSize","relativeTtl","gasPricePrefix","_value","rebuildTx","_computingMinFee","_canIncreaseFee","minFee","previousFee","fee","calculateMinFee","shortUInt","_computingGasLimit","gasMax","gasLimitMax","calculateGasLimitMax","gasLimit","field","txFields","parameters","addressName","genNonceField","senderKey","getAccountNextNonce","nextNonce","ID_TAG","DATA_TAG","addressAny","allowRaw","bKey","bId","getOracleByPubkey","queryFee","genShortUIntConstField","constValue","constValueOptional","genTransactionField","absoluteTtl","withDefault","defaultValue","withFormatting","CallReturnType","EntryTag","ORACLE_TTL_TYPES","transactionAny","transactionSignedTx","SignedTx","entryTreesPoi","TreesPoi","clientTtl","nameTtl","NAME_TTL","txSchema","shortUIntConst","signatures","raw","SpendTx","recipientId","encoded","NamePreclaimTx","accountId","commitmentId","NameClaimTx","nameSalt","NameUpdateTx","nameId","NameTransferTx","NameRevokeTx","ownerId","ctVersion","deposit","callData","callerId","queryFormat","responseFormat","oracleTtlType","delta","enumeration","oracleTtlValue","query","queryTtlType","queryTtlValue","responseTtlType","responseTtlValue","queryId","ChannelCreateTx","initiator","initiatorAmount","responder","responderAmount","channelReserve","lockPeriod","initiatorDelegateIds","responderDelegateIds","stateHash","ChannelCloseMutualTx","channelId","fromId","initiatorAmountFinal","responderAmountFinal","ChannelCloseSoloTx","poi","ChannelSlashTx","ChannelDepositTx","ChannelWithdrawTx","toId","ChannelSettleTx","offChainTrees","ChannelSnapshotSoloTx","authFun","gaId","authData","payerId","getSchema","schemas","subSchemas","defaultSchema","schema","packRecord","extraParams","rlpEncode","unpackRecord","encodedRecord","expectedTag","rlpDecode","genMapField","Mtree","MtreeValue","recursiveType","NodeType","_rootHash","_isComplete","_nodes","_encoding","_tag","_unpackEntry","_MPTree_brand","MPTree","isComplete","_classPrivateFieldGet","unpEnt","_classPrivateFieldInitSpec","_classPrivateFieldSet","_nodeHash","_parseNode","Branch","Extension","Leaf","isEqual","tree","mptHash","_assertClassBrand","_getRaw","_entriesRaw","_key","searchFrom","rec","genMPTreeField","genWrappedField","_MPTree","entryMtreeValueArray","mapContracts","Contract","mapAccounts","Account","mapCalls","ContractCall","mapChannels","mapNames","mapOracles","Oracle","gaContract","gaAuthFun","active","boolean","referers","callerNonce","gasUsed","returnValue","returnType","channelAmount","soloRound","lockedUntil","initiatorAuth","responderAuth","ChannelOffChainUpdateTransfer","to","ChannelOffChainUpdateDeposit","ChannelOffChainUpdateWithdraw","ChannelOffChainUpdateCreateContract","ChannelOffChainUpdateCallContract","caller","contract","callStack","mptree","calls","channels","contracts","oracles","ContractsMtree","CallsMtree","ChannelsMtree","NameserviceMtree","OraclesMtree","AccountsMtree","GaMetaTxAuthData","encodingTag","_encodingTag$find$","getSchemaCommon","overrideParams","buildTxAsync","buildTxHash","rawTx","buildContractIdByContractTx","contractTx","encodeByteArray","btoa","decodeString","byteString","XML_ATTRKEY","XML_CHARKEY","validateISODuration","validUuidRegex","flattenResponse","fullResponse","responseSpec","parsedHeaders","parsedBody","bodyMapper","isNullable","nullable","expectedBodyTypeName","readableStreamBody","modelProperties","isPageableResponse","serializedName","arrayResponse","responseObject","combinedHeadersAndBody","hasNullableType","shouldWrapBody","handleNullableResponseAndWrappableBody","mapperTypeName","SerializerImpl","modelMappers","isXML","validateConstraints","mapper","objectName","failValidation","constraintName","constraintValue","constraints","ExclusiveMaximum","ExclusiveMinimum","InclusiveMaximum","InclusiveMinimum","MaxItems","MaxLength","MinItems","MinLength","MultipleOf","Pattern","UniqueItems","pattern","ar","xml","rootName","includeRoot","xmlCharKey","mapperType","isConstant","required","typeName","objectType","pipe","serializeBasicTypes","allowedValues","serializeEnumType","toISOString","toUTCString","dateToUnixTime","isDuration","serializeDateTypes","serializeByteArrayType","trimEnd","bufferToBase64Url","serializeBase64UrlType","serializer","isXml","elementType","className","tempArray","serializedValue","xmlNamespace","xmlnsKey","xmlNamespacePrefix","serializeSequenceType","valueType","tempDictionary","getXmlObjectValue","serializeDictionaryType","getPolymorphicDiscriminatorRecursively","getPolymorphicMapper","modelProps","resolveModelProperties","propertyMapper","readOnly","propName","parentObject","xmlIsWrapped","xmlName","xmlElementName","paths","splitSerializeName","pathName","propertyObjectName","toSerialize","polymorphicDiscriminator","clientName","xmlIsAttribute","additionalPropertiesMapper","additionalProperties","modelMapper","resolveReferencedMapper","resolveAdditionalProperties","propNames","clientPropName","pn","serializeCompositeType","responseBody","ignoreUnknownProperties","handledPropertyNames","headerCollectionPrefix","dictionary","headerKey","xmlIsMsText","propertyName","elementList","propertyInstance","steps","arrayInstance","isAdditionalProperty","responsePropName","isSpecialXmlProperty","deserializeCompositeType","unixTimeToDate","base64UrlToByteArray","deserializeSequenceType","deserializeDictionaryType","createSerializer","classes","partialclass","subwords","polymorphicPropertyName","discriminatorName","discriminatorValue","uberParent","polymorphicMapper","discriminators","typeNamesToCheck","currentName","indexDiscriminator","getIndexDiscriminator","getPolymorphicDiscriminatorSafely","MapperTypeNames","operationRequestMap","getOperationArgumentValueFromParameter","operationArguments","parameter","fallbackObject","parameterPath","parameterMapper","propertySearchResult","getPropertyFromParameterPath","propertyFound","useDefaultValue","propertyValue","parameterPathPart","originalRequestSymbol","getOperationRequestInfo","hasOriginalRequest","defaultJsonContentTypes","defaultXmlContentTypes","getPathStringFromParameter","createClientPipeline","credentialOptions","credential","challengeCallbacks","callbacks","authorizeRequest","authorizeRequestOnChallenge","tokenCyclerOptions","tenantId","refreshWorker","cycler","isRefreshing","shouldRefresh","refreshAfterTimestamp","expiresOnTimestamp","mustRefresh","refresh","refreshTimeout","tryGetAccessToken","finalToken","beginRefresh","getToken","then","_token","tokenOptions","hasClaimChallenge","tenantIdChanged","createTokenCycler","shouldSendRequest","parsedClaim","bearerTokenAuthenticationPolicy","credentialScopes","stringifyXML","operationInfo","operationSpec","headerParameters","headerParameter","headerValue","customHeaders","requestOptions","customHeaderName","serializeHeaders","serializerOptions","requestBodyParameterPathString","isStream","getXmlValueWithNamespace","elementName","xmlNamespaceKey","prepareXMLRootList","mediaType","formDataParameters","formDataParameter","formDataParameterValue","formDataParameterPropertyName","serializeRequestBody","serializationPolicy","serializationOptions","jsonContentTypes","expectedContentTypes","json","xmlContentTypes","parseXML","parsedResponse","operationResponse","opts","contentComponents","component","errCode","shouldDeserialize","shouldDeserializeResponse","responses","operationResponseGetter","getOperationResponseMap","shouldReturnResponse","isSuccessByStatus","isExpectedStatusCode","expectedStatusCodes","isOperationSpecEmpty","errorResponseSpec","default","initialErrorMessage","defaultBodyMapper","defaultHeadersMapper","headersMapper","deserializedError","valueToDeserialize","internalError","defaultError","handleErrorResponse","deserializeError","httpMethod","deserializeResponseBody","deserializationPolicy","deserializationOptions","cachedHttpClient","CollectionFormatToDelimiterMap","CSV","SSV","Multi","TSV","Pipes","getRequestUrl","baseUri","urlReplacements","urlParameters","urlParameter","urlParameterValue","parameterPathString","skipEncoding","calculateUrlReplacements","isAbsolutePath","requestUrl","replaceAll","pathToAppend","parsedUrl","newPath","searchStart","appendPath","queryParams","sequenceParams","queryParameters","queryParameter","queryParameterValue","delimiter","collectionFormat","calculateQueryParameters","noOverwrite","combinedParams","queryString","pairs","pair","existingValue","simpleParseQueryParams","valueSet","searchPieces","appendQueryParams","replacements","searchValue","replaceValue","ServiceClient","_requestContentType","requestContentType","_endpoint","endpoint","_allowInsecureConnection","_httpClient","getCredentialScopes","createDefaultPipeline","additionalPolicies","sendOperationRequest","baseUrl","createPipelineRequest","getStreamingResponseStatusCodes","rawResponse","flatResponse","onResponse","verCmp","getComponents","aComponents","bComponents","componentsToNumber","components","acc","semverSatisfies","bigIntPrefix","createSerializerOrig","safeLength","bigIntPropertyRe","bigIntArrayItemRe","parseBigIntPolicy","matched","genRequestQueuesPolicy","requestQueues","_requestQueues$get","getResponse","genCombineGetRequestsPolicy","pendingGetRequests","_pendingGetRequests$g","genAggressiveCacheGetResponsesPolicy","getRequests","_getRequests$get","genErrorFormatterPolicy","genVersionCheckPolicy","versionCb","ignoreVersion","genRetryOnFailurePolicy","retryOverallDelay","_request$headers$get","retryCode","statusesToNotRetry","intervals","intervalSum","intervalsInMs","attempt","urlParsed","_e$response$status","payable","ErrorModel","errorCode","NextNonceResponse","SignedTxs","blockHash","Tx","initiatorId","responderId","delegateIds","offchainTrees","oracleTtl","queryTtl","responseTtl","gas","Delegates","OffChainUpdate","op","RelativeTTL","Ttl","NamePointer","encodedKey","AuctionEntry","startedAt","endsAt","highestBidder","highestBid","ContractObject","referrerIds","ByteCode","bytecode","PoI","Currency","subunit","subunitsPerUnit","fiatConverstionUrl","fiatConversionUrl","logo","primaryColour","secondaryColour","networkName","Image","DryRunInput","DryRunAccount","DryRunInputItem","callReq","DryRunCallReq","calldata","DryRunCallContext","stateful","DryRunResults","DryRunResult","callObj","ContractCallObject","Event","topics","Generation","keyBlock","microBlocks","KeyBlock","prevHash","prevKeyHash","miner","beneficiary","Header","pofHash","txsHash","PinningTx","epoch","parentPayload","lastLeader","parentType","parentNetworkId","HCContractPubkeys","staking","election","rewards","HashResponse","HeightResponse","MicroBlockHeader","CountResponse","NameEntry","NamePointerComplete","RegisteredOracle","OracleQueries","oracleQueries","senderNonce","PeerPubKey","pubkey","GasPricesItem","minutes","Status","genesisKeyBlockHash","solutions","difficulty","hashrate","syncing","syncProgress","uptime","listening","nodeVersion","nodeRevision","peerCount","peerConnections","pendingTransactionsCount","peerPubkey","topKeyBlockHash","topBlockHeight","Protocol","effectiveAtHeight","PeerConnections","inbound","outbound","SyncStatus","progress","speed","estimate","EncodedTx","PostTxResponse","TxInfoObject","callInfo","gaInfo","txInfo","GAObject","innerObject","ChannelSetDelegatesTx","CheckTxInPoolResponse","CommitmentId","UnsignedTx","GAAttachTx","GAMetaTx","NameHash","PeerDetails","firstSeen","lastSeen","genesisHash","topHash","topDifficulty","nodeVendor","nodeOs","PeerCount","connected","available","blocked","PeerCountConnected","PeerCountAvailable","verified","unverified","Peers","peers","PubKey","TokenSupply","contractOracles","locked","pendingRewards","OffChainCallContract","OffChainDeposit","OffChainNewContract","OffChainTransfer","OffChainWithdrawal","CreateContractUnsignedTx","accept","$host","DryRunInputMapper","body1","EncodedTxMapper","Node","coreClient","_options$endpoint","packageDetails","getAccountByPubkeyOperationSpec","getAccountByPubkeyAndHashOperationSpec","getAccountByPubkeyAndHeightOperationSpec","getAccountNextNonceOperationSpec","getPendingAccountTransactionsByPubkey","getPendingAccountTransactionsByPubkeyOperationSpec","getAuctionEntryByName","getAuctionEntryByNameOperationSpec","getChannelByPubkey","getChannelByPubkeyOperationSpec","getContractOperationSpec","getContractCodeOperationSpec","getContractPoI","getContractPoIOperationSpec","getCurrency","getCurrencyOperationSpec","protectedDryRunTxsOperationSpec","getCurrentGenerationOperationSpec","getGenerationByHashOperationSpec","getGenerationByHeightOperationSpec","getTopHeader","getTopHeaderOperationSpec","getPinningTx","getPinningTxOperationSpec","getHyperchainContractPubkeys","getHyperchainContractPubkeysOperationSpec","getCurrentKeyBlock","getCurrentKeyBlockOperationSpec","getCurrentKeyBlockHash","getCurrentKeyBlockHashOperationSpec","getCurrentKeyBlockHeightOperationSpec","getKeyBlockByHashOperationSpec","getKeyBlockByHeightOperationSpec","getPendingKeyBlock","getPendingKeyBlockOperationSpec","getMicroBlockHeaderByHashOperationSpec","getMicroBlockTransactionsByHashOperationSpec","getMicroBlockTransactionsCountByHash","getMicroBlockTransactionsCountByHashOperationSpec","getMicroBlockTransactionByHashAndIndex","getMicroBlockTransactionByHashAndIndexOperationSpec","getNameEntryByNameOperationSpec","getNameEntryByNameHash","nameHash","getNameEntryByNameHashOperationSpec","getOracleByPubkeyOperationSpec","getOracleQueriesByPubkey","getOracleQueriesByPubkeyOperationSpec","getOracleQueryByPubkeyAndQueryId","getOracleQueryByPubkeyAndQueryIdOperationSpec","getPeerPubkey","getPeerPubkeyOperationSpec","getRecentGasPricesOperationSpec","getStatus","getStatusOperationSpec","getChainEnds","getChainEndsOperationSpec","getSyncStatus","getSyncStatusOperationSpec","postTransaction","postTransactionOperationSpec","getTransactionByHashOperationSpec","getTransactionInfoByHash","getTransactionInfoByHashOperationSpec","Mappers","Parameters","_ignoreVersion","_cachedStatusPromise","_isHyperchainPromise","NodeApi","_getCachedStatus","promise","nodeNetworkId","getTransactionSignerAddress","AccountBase","TypeResolveError","FateTypeBytes","FateTypeOracleAddress","questionType","answerType","FateTypeOracleQueryAddress","FateTypeList","valuesType","FateTypeTuple","valueTypes","FateTypeRecord","FateTypeSet","FateTypeMap","keyType","FateTypeVariant","variants","FateTypeChainTTL","FixedTTL","FateTypeAENSPointee","FateTypeAENSv2Pointee","FateTypeVar","isCustomType","resolveTypeDef","resolveValueTypes","vars","tpl","resolveType","resolvedTypes","typeDef","typeVars","FateTypeAENSName","FateTypeAENSv2Name","resolveVariant","None","Some","FateTypeOption","variant","resolvedArgs","_internalResolver","condition","freeze","SMALL_INT","LONG_STRING","SHORT_STRING","SHORT_LIST","TYPE_INTEGER","TYPE_BOOLEAN","TYPE_LIST","TYPE_TUPLE","TYPE_OBJECT","TYPE_BITS","TYPE_MAP","TYPE_STRING","TYPE_VARIANT","TYPE_BYTES","TYPE_CONTRACT_BYTEARRAY","TYPE_VAR","TYPE_ANY","LONG_TUPLE","SHORT_TUPLE","LONG_LIST","MAP","EMPTY_TUPLE","POS_BITS","EMPTY_STRING","POS_BIG_INT","FALSE","CONTRACT_BYTEARRAY","OBJECT","VARIANT","MAP_ID","NEG_BITS","EMPTY_MAP","NEG_BIG_INT","TRUE","OTYPE_ADDRESS","OTYPE_BYTES","OTYPE_CONTRACT","OTYPE_ORACLE","OTYPE_ORACLE_QUERY","OTYPE_CHANNEL","FatePrefixError","OBJECT_TYPES","FateTag","createType","visitor","visitData","SerializerError","globalSerializer","_data","typeInfo","_rest","deserializeStream","_typeInfo","int2ByteArray","bigInt","byteArrayToHexArray","byteArray2Int","byteArray2Hex","FormatError","FateTypeError","fixedSize","_size","_prefix","visitAddress","rest","bigValue","absVal","small","intSerializer","fateLen","byteArraySerializer","itemsType","_itemsType","visitList","serializedElements","flat","elements","arrayToItem","_keyType","_valueType","_type","visitMap","_valueTypes","_items","prepareItems","visitTuple","visitSet","mapType","listComparator","FateComparator","mapItemComparator","keyComparator","bytesComparator","aList","bList","intComparator","comparators","as","bs","sizeDiff","valTypeA","aDiff","arities","aritiesType","lDiff","aComparator","tDiff","elementsComparator","aItems","bItems","valueComparator","aItem","bItem","kDiff","vDiff","sortedItems","elA","elB","serializedItems","keyRest","valueRest","firstEl","TextDecoder","isUnicodeString","bytesOrString","tuple","variantType","variantName","visitVariant","valueTuple","els","buff","visitBls12381Fr","visitBls12381Fp","bytesSerializer","functionId","argTypes","argsData","_functionId","_argTypes","_args","visitCalldata","funcBytes","argsTuple","calldataTuple","calldataType","argumentTypes","BASIC_TYPES","_intSerializer","basicTypeTag","objectTypeTag","elementsType","rest2","elementTypes","mnemonic","MODIFIERS","_typeSerializer","codeBin","symbolsBin","annotationsBin","symbols","deserializeSymbols","functions","deserializeFunctions","annotations","deserializeAnnotations","deserializeFunction","attributes","deserializeAttributes","rest3","deserializeSignature","instructions","rest4","deserializeInstructions","instruction","deserializeInstruction","opcode","instr","deserializeArguments","numBytes","modBytes","splitArgs","deserializeArgument","attributesInt","attributesByte","deserializeWithType","symbolsMap","_bytecodeSerializer","fateInt","overallSize","stringEncoder","vsn","sourceHash","aevmTypeInfo","compilerVersion","typeFactory","_serializers","_getSerializer","checkSumFn","checksum","payloadWithChecksumData","payloadWithChecksum","newChecksum","TYPES","key_block_hash","micro_block_hash","block_pof_hash","block_tx_hash","block_state_hash","contract_bytearray","contract_pubkey","account_pubkey","account_seckey","channel","oracle_pubkey","oracle_query_id","peer_pubkey","tx_hash","commitment","bytearray","TAG2TYPE","kh","mh","bf","bx","cb","ct","ak","ok","oq","pp","nm","sg","cm","ba","decodeWithType","expectedType","capitalized","capitalizeType","CURVES","xgcd","int2MontBytes","curveType","curve","montBytes2Int","byteArray2IntBE","Rinv","_Y","_D","invmod","_apiEncoder","toCanonical","acceptor","valueFactory","_valueFactory","supports","resolvedValues","resolvedValue","keyLen","isValid","variantCtor","variantArgs","variantTypes","variantValue","createMultiple","DATA_TYPES","_isData","funName","_factories","types","arrs","curr","zip","toInternal","toAddress","toVariant","toMap","toSet","toRecord","toBls12381Fr","toBls12381Fp","isOptionVariant","record","validateBls12381Field","_mapper","internalValue","_serializer","_externalDataFactory","_canonicalMapper","serialized","binData","deserialized","_internalEncoder","encodeWithType","hashJson","_canonicalize","canonicalize","hashDomain","domainType","TypeResolver","option","ContractByteArrayEncoder","hashTypedData","aci","getBufferToSign","innerTx","rlpBinaryTx","_secretKeyDecoded","AccountMemory","generate","unsafeSign","signTransaction","txWithNetworkId","signMessage","signTypedData","dHash","signDelegation","delegation","getExecutionCost","isInitiator","getExecutionCostBySignedTx","isInnerTx","isNotInnerTx","getExecutionCostUsingNode","isMined","isSignedTx","combinedInfo","validators","verifyTransactionInternal","parentTxTypes","account","verifyTransaction","nodeNotCached","txBinary","txHashWithNetworkId","checkedKeys","nestedTx","cost","recipient","oracleCall","contractCreate","contractCall","InvalidTxError","validation","sendTransaction","txUnsigned","waitMined","__queue","pollResult","txData","confirmationHeight","verifyTx","toBase64Url","fromBase64Url","objectToBase64Url","signJwt","originalPayload","sub_jwk","kty","crv","unpackJwt","jwt","_payload$sub_jwk","payloadEncoded","jwk","signer","isJwt","maybeJwt","ensureJwt","verifyJwt","DelegationTag","oracleAddressField","queryIdField","AensWildcard","AensName","AensPreclaim","packDelegation","unpackDelegation","NotAuctionNameError","action","_salt","revoke","opt","_isInternalBuild","extendPointers","allPointers","hasRawPointers","transfer","getState","_options$onNode","nameEntry","getAuctionState","_options$onNode2","extendTtl","claim","preclaim","bid","isOption","getCallTypes","funcAci","getNamespaceAci","getReturnType","returns","getEventType","FateTypeEvent","isStdType","_localType","localType","namespaceData","def","typedefs","type_defs","typedef","_dataFactory","EncoderError","_byteArrayEncoder","_typeResolver","_eventEncoder","decodeContractByteArray","decoder","decodeFateString","decodeEvent","_Contract_brand","_aciContract","_getCallResult","fnName","fnAci","_getFunctionAci","decodedResult","_calldata","decodedEvents","$decodeEvents","_sendAndProcess","$options","$getCallResultByTxHash","_getContractNameByEvent","ctAddress","contractAddressToName","addressToName","_aci","eventName","calcHash","ContractWithMethods","$compile","onCompiler","sourceCode","compileBySourceCode","fileSystem","sourceCodePath","compile","callInfoTyped","_estimateGas","callStatic","$deploy","_opt$gasLimit","_opt$gasLimit2","topOption","txOpt","dryRunOther","omitUnknown","contractName","initialize","validateBytecode","otherOptions","onChanBytecode","validateBySourceCode","validate","aciLast","Calldata","aciArgs","decodeQuery","queryEntry","decodedQuery","decodedResponse","OracleBase","getQueries","getQuery","_handleQueriesPromise","register","pollQueries","onQuery","knownQueryIds","isChecking","checkNewQueries","filtered","includeResponded","idPromise","_opt$interval","setInterval","clearInterval","respondToQuery","handleQueries","queuePromise","respondPromise","stopPoll","OracleClient","postQuery","oracleQueryTx","pollForResponse","responseBuffer","spend","recipientIdOrName","transferFunds","fraction","desiredAmount","payForTransaction","createGeneralizedAccount","authFnName","_options$gasLimit","gaContractId","buildAuthTxHash","buildAuthTxHashByGaMetaTx","_typeof","_defineProperty","chainMethods","spendMethods","contractGaMethods","_wrappedOptions","AeSdkMethods","getContext","mergeWith","AeSdkBase","nodes","addNode","api","compilerApi","_resolveAccount","ensureNodeConnected","pool","selectedNodeName","select","selectNode","isNodeConnected","getNodesInPool","addresses","_options$networkId","AeSdk","addAccount","selectedAddress","selectAccount","removeAccount","MESSAGE_DIRECTION","WALLET_TYPE","SUBSCRIPTION_TYPES","METHODS","RPC_STATUS","rpcErrors","RpcError","RpcErr","cl","RpcInvalidTransactionError","RpcRejectedByUserError","RpcUnsupportedProtocolError","RpcConnectionDenyError","RpcNotAuthorizeError","RpcPermissionDenyError","RpcInternalError","RpcNoNetworkById","RpcMethodNotFoundError","AccountRpc","rpcClient","_rpcClient","dataRaw","returnSigned","signedTransaction","_callbacks","_messageId","_methods","_RpcClient_brand","RpcClient","connection","onDisconnect","connect","_handleMessage","_sendRequest","notify","origin","jsonrpc","_processResponse","methodName","_sendResponse","sendMessage","AeSdkAepp","onAddressChange","onNetworkChange","_ensureConnected","_ensureAccountAccess","_accounts","connectToWallet","connectNode","disconnectParams","updateNetwork","client","updateAddress","closeConnection","disconnect","readyToConnect","walletInfo","disconnectWallet","askAddresses","subscribeAddress","askToSelectNetwork","network","_WalletConnectorFrameBase_brand","WalletConnectorFrameBase","isConnected","_connect","connector","_updateAccounts","_updateNetwork","_getRpcClient","getAccounts","subscribeAccounts","_networkId","WalletConnectorFrame","_node","WalletConnectorFrameWithNode","jsonBig","JsonBig","convertValuesToBigNumbers","bn","AeSdkWallet","onConnection","onSubscription","onAskAccounts","onAskToSelectNetwork","_getAccountsForClient","addressSubscription","_pushAccountsToApps","_clients","clientId","_isRpcClientConnected","_getClient","rpc","_getNode","CONNECTED","_disconnectRpcClient","DISCONNECTED","removeRpcClient","addRpcClient","clientConnection","WAITING_FOR_CONNECTION_REQUEST","icons","getWalletInfo","subscribe","unsubscribe","subscription","aeppOrigin","aeppRpcClientId","transactionHash","shareWalletInfo","location","anumber","isSafeInteger","abytes","lengths","ahash","outputLen","blockLen","aexists","checkFinished","destroyed","finished","clean","createView","asyncLoop","iters","tick","ts","kdfInputToBytes","createHasher","hashCons","hashC","HMAC","iHash","oHash","digestInto","_cloneInto","pbkdf2Init","_password","_opts","defaults","dkLen","asyncTick","checkOpts","DK","PRF","PRFSalt","pbkdf2Output","prfW","HashMD","padOffset","view","take","dataView","roundClean","aoutput","setBigUint64","_32n","_u32_max","setUint32","oview","outLen","SHA512_IV","U32_MASK64","fromBig","le","shrSH","_l","shrSL","rotrSH","rotrSL","rotrBH","rotrBL","Ah","Al","Bh","Bl","add3L","Cl","add3H","Ch","add4L","Dl","add4H","Dh","add5L","El","add5H","Eh","K512","lst","SHA512_Kh","SHA512_Kl","SHA512_W_H","SHA512_W_L","SHA512","Fh","Fl","Gh","Gl","Hh","Hl","getUint32","W15h","W15l","s0h","s0l","W2h","W2l","s1h","s1l","SUMl","SUMh","sigma1h","sigma1l","CHIh","T1ll","T1h","T1l","sigma0h","sigma0l","MAJh","MAJl","All","sha512","nfkd","norm","words","psalt","passphrase","AccountBaseFactory","discover","ED25519_CURVE","deriveKey","tweetnaclAuth","chainCode","derivePathFromKey","segments","segment","indexBuffer","_mnemonicOrWalletOrSeed","_AccountMnemonicFactory_brand","AccountMnemonicFactory","mnemonicOrWalletOrSeed","getWallet","_getWallet","getWalletSync","accountIndex","wallet","_getAccountByWallet","initializeSync","sync","setWalletBySeed","walletKey","ti","Ti","setInt32","ui","pbkdf2","mnemonicToSeedSync","pbkdf2Async","mnemonicToSeed","_authFun","AccountGeneralized","authCallData","gaMetaTx","CLA","AccountLedger","transport","decorateAppAPIMethods","networkIdBuffer","toSend","maxChunkSize","chunkSize","bufferOffset","previous","send","messageStr","_ensureReadyPromise","_AccountLedgerFactory_brand","AccountLedgerFactory","ensureReady","_getAppConfiguration","oldApp","newApp","_enableExperimentalLedgerAppSupport","getAppConfiguration","getAddress","_ensureReady","addressLength","_classPrivateFieldGet2","snapId","invokeSnap","provider","AccountMetamask","derivationPath","snapMinVersion","snapMaxVersion","_provider","_AccountMetamaskFactory_brand","_providerPromise","AccountMetamaskFactory","installSnap","_getProvider","requestSnap","getSnapVersion","snaps","_getMetamaskAsInjected","ethereum","_getMetamaskOverEip","dispatchEvent","detail","rdns","_classPrivateFieldGet3","_await$_assertClassBr","metamaskVersionPrefix","CompilerBase","CompileOpts","srcFile","ErrorPos","file","line","col","CompileResult","warnings","SophiaCallResultInput","function","callResult","callValue","BytecodeCallResultInput","DecodedCallresult","FunctionCallInput","DecodeCalldataBytecode","DecodedCalldata","DecodeCalldataSource","ByteCodeInput","FateAssembler","fateAssembler","ValidateByteCodeInput","CompilerVersion","ApiVersion","apiVersion","SophiaBinaryData","sophiaType","SophiaJsonData","ContractMapper","SophiaCallResultInputMapper","body2","BytecodeCallResultInputMapper","body3","FunctionCallInputMapper","body4","DecodeCalldataBytecodeMapper","body5","DecodeCalldataSourceMapper","body6","ByteCodeInputMapper","body7","ValidateByteCodeInputMapper","Compiler","generateACI","generateACIOperationSpec","compileContract","compileContractOperationSpec","decodeCallResult","decodeCallResultOperationSpec","decodeCallResultBytecode","decodeCallResultBytecodeOperationSpec","encodeCalldata","encodeCalldataOperationSpec","decodeCalldataBytecode","decodeCalldataBytecodeOperationSpec","decodeCalldataSource","decodeCalldataSourceOperationSpec","getFateAssemblerCode","getFateAssemblerCodeOperationSpec","validateByteCode","validateByteCodeOperationSpec","getCompilerVersion","getCompilerVersionOperationSpec","versionOperationSpec","apiVersionOperationSpec","apiOperationSpec","CompilerHttp","compilerUrl","CompilerApi","cmpOut","generateAciBySourceCode","generateAci","snakeToPascal","w3cwebsocket","websocket","_eventEmitter","enterState","nextState","_debug","_fsm","enter","dequeueAction","changeStatus","newStatus","_status","changeState","newState","_state","_websocket","_isActionQueueLocked","_actionQueue","guard","handleMessage","st","updates","_pingTimeoutId","ping","_nextRpcMessageId","_rpcCallbacks","_message$error$data$","appendSignature","signFn","payloadTx","signatures2","signAndNotify","signedTx","signed_tx","handleUnexpectedMessage","_channel","wsMessage","channelOpen","awaitingCompletion","onSuccess","accepted","error_code","errorMessage","error_msg","codes","awaitingConnection","channelInfoStatus","nextStatus","awaitingChannelCreateTx","awaitingOpenConfirmation","_fsmId","fsm_id","channelClosed","awaitingReestablish","message2","state2","awaitingReconnection","role","awaitingOnChainTx","awaitingBlockInclusion","_channelId","channel_id","awaitingTxSignRequest","_message$method$match","awaitingUpdateConflict","awaitingShutdownTx","awaitingLeave","closeTx","channelCounter","_debugId","_initialize","_options$existingFsmI","reconnect","existingFsmId","existingChannelId","reconnectHandler","reestablish","connectionHandler","openHandler","channelOptions","wsUrl","onerror","onopen","onclose","onmessage","_messageQueue","_isMessageQueueLocked","dequeueMessage","onMessage","channelDisconnect","halfSignedTx","trees","fsmId","enqueueAction","leave","shutdown","ChannelSpend","awaitingOffChainTx","_2","balances","awaitingActionTx","awaitingActionCompletion","onOnChainTx","Action","withdraw","onOwnWithdrawLocked","onWithdrawLocked","onOwnDepositLocked","onDepositLocked","onStatusChanged","snakeToPascalObjKeys","ChannelContract","createContract","call_data","vm_version","abi_version","addressKey","callContract","contract_id","forceProgress","gas_price","callContractStatic","getContractCall","caller_id","getContractState","cleanContractCalls","ws","Source","MiddlewareSubscriberError","MiddlewareSubscriberDisconnected","closeEvent","_subscriptions","_requestQueue","_webSocket","_MiddlewareSubscriber_brand","MiddlewareSubscriber","webSocket","_disconnect","errorEvent","_emit","_messageHandler","_classPrivateGetter","_get_targets","_sendSubscribe","subscribeKeyBlocks","_subscribe","Middleware","subscribeKeyBlocksNode","subscribeKeyBlocksAll","subscribeMicroBlocks","subscribeMicroBlocksNode","subscribeMicroBlocksAll","subscribeTransactions","subscribeTransactionsNode","subscribeTransactionsAll","subscribeObject","subscribeObjectNode","subscribeObjectAll","_this","_sendMessage","isSubscribe","onlyReset","scope","exact","fromParam","by2","id1","contractId1","contractId2","scope1","validator","hashOrKbi","hash1","ownedBy","state1","id2","id3","minStartDate","maxStartDate","oracle","scope2","id4","hash2","PathsBx0Ya3V3AccountsAccountidActivitiesGetResponses200ContentApplicationJsonSchemaAllof0","Activity","blockTime","ActivityPayload","microIndex","microTime","logIdx","sender","tokenId","contractTxHash","callTxHash","internalTx","refTxHash","PaginatedResponse","ErrorResponse","Paths1Q9E32FV3AccountsAccountidAex141TokensGetResponses200ContentApplicationJsonSchemaAllof0","Aex141TokenResponse","PathsZ92TkfV3AccountsAccountidAex9BalancesGetResponses200ContentApplicationJsonSchemaAllof1","Aex9BalanceResponse","decimals","tokenName","tokenSymbol","txIndex","Paths10R8Q7PV3AccountsAccountidDexSwapsGetResponses200ContentApplicationJsonSchemaAllof0","DexSwap","amounts","fromToken","toToken","toAccount","fromContract","toContract","fromAmount","toAmount","fromDecimals","toDecimals","DexSwapAmounts","amount0In","amount1In","amount0Out","amount1Out","Paths16G4GzrV3AccountsAccountidNamesClaimsGetResponses200ContentApplicationJsonSchemaAllof0","NameClaim","activeFrom","sourceTxHash","sourceTxType","internalSource","NotFoundResponse","PathsA60QxwV3AccountsAccountidNamesPointeesGetResponses200ContentApplicationJsonSchemaAllof0","Pointee","PathsXcg812V3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchema","contractCreateTx","contractCallTx","gaAttachTx","channelCloseMutualTx","channelCloseSoloTx","channelCreateTx","channelDepositTx","channelForceProgressTx","channelSetDelegatesTx","channelSettleTx","channelSlashTx","channelSnapshotSoloTx","channelWithdrawTx","nameClaimTx","namePreclaimTx","nameRevokeTx","nameTransferTx","nameUpdateTx","oracleExtendTx","oracleRegisterTx","oracleResponseTx","payingForTx","spendTx","channelOffchainTx","Get200ApplicationJsonProperties","PathsEvgmfsV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesContractCallTx","Paths1Mat0BzV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesGaAttachTx","Paths1Smy8TV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesGaMetaTx","PathsTachlnV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesChannelCloseMutualTx","Paths1AeqodeV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesChannelCloseSoloTx","PathsGp6EyrV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesChannelCreateTx","Paths10Z6Jt8V3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesChannelDepositTx","Paths1Jkl3L3V3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesChannelForceProgressTx","PathsN9Iv8YV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesChannelSetDelegatesTx","PathsCsym65V3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesChannelSettleTx","PathsEwav40V3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesChannelSlashTx","Paths5Ehb0PV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesChannelSnapshotSoloTx","Paths1Qk8BkgV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesChannelWithdrawTx","PathsC7WhtoV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesNameClaimTx","Paths1R4Z885V3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesNamePreclaimTx","PathsKrpz02V3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesNameRevokeTx","PathsPs07B4V3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesNameTransferTx","PathsTug6HrV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesNameUpdateTx","Paths17Dchb7V3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesOracleExtendTx","Paths1Ngkd7FV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesOracleQueryTx","PathsMvqgifV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesOracleRegisterTx","Paths1U2Ve7RV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesOracleResponseTx","Paths1N757S0V3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesPayingForTx","Paths11Bqs5V3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesSpendTx","Paths4Pjk8DV3AccountsAccountidTransactionsCountGetResponses200ContentApplicationJsonSchemaPropertiesChannelOffchainTx","Paths8I0YgwV3Aex141GetResponses200ContentApplicationJsonSchemaAllof0","Aex141Response","extensions","limits","invalid","creationTime","PathsWkpcwaV3Aex141ContractidTemplatesGetResponses200ContentApplicationJsonSchemaAllof0","Aex141TemplatesResponse","edition","templateId","PathsRay4X0V3Aex141ContractidTemplatesTemplateidTokensGetResponses200ContentApplicationJsonSchemaAllof0","Aex141TemplateTokensResponse","Paths1TkisghV3Aex141ContractidTokensGetResponses200ContentApplicationJsonSchemaAllof0","Aex141TokenDetailResponse","Paths1A8Ah39V3Aex141ContractidTransfersGetResponses200ContentApplicationJsonSchemaAllof0","Aex141TransferEvent","Paths1Uqqby0V3Aex9GetResponses200ContentApplicationJsonSchemaAllof0","Aex9Response","initialSupply","eventSupply","holders","Paths19IxhsmV3Aex9CountGetResponses200ContentApplicationJsonSchema","PathsEeiffwV3Aex9ContractidBalancesGetResponses200ContentApplicationJsonSchemaAllof0","Aex9ContractBalanceResponse","lastTxHash","lastLogIdx","PathsKr825V3Aex9ContractidBalancesAccountidGetResponses200ContentApplicationJsonSchema","Paths108B3VtV3Aex9ContractidBalancesAccountidHistoryGetResponses200ContentApplicationJsonSchemaAllof1","Get200ApplicationJsonAllOfPropertiesItemsItem","PathsQmewnaV3ChannelsGetResponses200ContentApplicationJsonSchemaAllof0","lastUpdatedHeight","lastUpdatedTxType","lastUpdatedTime","lastUpdatedTxHash","updatesCount","Paths18L84JcV3ContractsCallsGetResponses200ContentApplicationJsonSchemaAllof0","localIdx","Paths10Kk1UxV3ContractsLogsGetResponses200ContentApplicationJsonSchemaAllof0","ContractLog","eventHash","extCallerContractId","extCallerContractTxHash","parentContractId","aexnType","createTx","Paths9Yfxl2V3DexSwapsGetResponses200ContentApplicationJsonSchemaAllof0","Paths6Vze8ZV3DexContractIdSwapsGetResponses200ContentApplicationJsonSchemaAllof0","Paths1F8GzwrV3HyperchainEpochsGetResponses200ContentApplicationJsonSchemaAllof0","EpochInfo","lastPinHeight","parentBlockHash","epochStartTime","EpochInfoValidatorsItem","stake","Paths7W5O80V3HyperchainScheduleGetResponses200ContentApplicationJsonSchemaAllof0","Schedule","leader","Paths1Qg7SclV3HyperchainValidatorsGetResponses200ContentApplicationJsonSchemaAllof0","Validator","totalStakes","delegates","rewardsEarned","pinningHistory","Paths7Ks32NV3HyperchainValidatorsValidatorDelegatesGetResponses200ContentApplicationJsonSchemaAllof0","Delegate","delegate","PathsDwhnfdV3HyperchainValidatorsValidatorDelegatesTopGetResponses200ContentApplicationJsonSchemaAllof0","PathsEue6HzV3KeyBlocksGetResponses200ContentApplicationJsonSchemaAllof0","PathsNn60D7V3KeyBlocksHashOrKbiMicroBlocksGetResponses200ContentApplicationJsonSchemaAllof0","PathsXhlqwrV3MicroBlocksHashTransactionsGetResponses200ContentApplicationJsonSchemaAllof0","Paths181Cs9V3NamesGetResponses200ContentApplicationJsonSchemaAllof0","approximateActivationTime","approximateExpireTime","expireHeight","auction","auctionTimeout","ownership","claimsCount","Auction","auctionEnd","activationTime","lastBid","AuctionLastBid","Components17W16A5SchemasAuctionPropertiesLastBidPropertiesTxAllof1","NameOwnership","original","NameTx","Components171VsjiSchemasNametxPropertiesTxAllof1","Paths1R08F8HV3NamesAuctionsGetResponses200ContentApplicationJsonSchemaAllof0","PathsCrb9BgV3NamesAuctionsIdClaimsGetResponses200ContentApplicationJsonSchema","PathsMyl4W2V3NamesIdClaimsGetResponses200ContentApplicationJsonSchemaAllof0","Paths1Ukwk06V3NamesIdTransfersGetResponses200ContentApplicationJsonSchemaAllof0","NameTransfer","PathsRcnvllV3NamesIdUpdatesGetResponses200ContentApplicationJsonSchemaAllof0","NameUpdate","PathsGcr9MrV3OraclesGetResponses200ContentApplicationJsonSchemaAllof0","registerTime","registerTxHash","OracleFormat","OracleTx","Components1Viuqa3SchemasOracletxPropertiesTxAllof1","PathsZ4L2QlV3OraclesIdExtendsGetResponses200ContentApplicationJsonSchemaAllof0","OracleExtend","Paths1Uni7AtV3OraclesIdQueriesGetResponses200ContentApplicationJsonSchemaAllof0","Paths1Tcj5A9V3OraclesIdResponsesGetResponses200ContentApplicationJsonSchemaAllof0","Stats","minersCount","feesTrend","last24HsAverageTransactionFees","last24HsTransactions","maxTransactionsPerSecond","maxTransactionsPerSecondBlockHash","transactionsTrend","PathsFso5IiV3StatsActiveAccountsGetResponses200ContentApplicationJsonSchemaAllof0","Stat","startDate","endDate","Paths1Fl1Lh2V3StatsAex9TransfersGetResponses200ContentApplicationJsonSchemaAllof0","Paths1A27TirV3StatsBlocksGetResponses200ContentApplicationJsonSchemaAllof0","Paths72Dp44V3StatsContractsGetResponses200ContentApplicationJsonSchemaAllof0","Paths1J83O75V3StatsDeltaGetResponses200ContentApplicationJsonSchemaAllof0","DeltaStat","auctionsStarted","blockReward","burnedInAuctions","channelsClosed","channelsOpened","contractsCreated","devReward","namesActivated","namesExpired","namesRevoked","oraclesExpired","oraclesRegistered","lockedInAuctions","lockedInChannels","Paths1Qw6KhfV3StatsDifficultyGetResponses200ContentApplicationJsonSchemaAllof0","Paths1IskjkV3StatsHashrateGetResponses200ContentApplicationJsonSchemaAllof0","Paths50Qhc7V3StatsMinersGetResponses200ContentApplicationJsonSchemaAllof0","Miner","totalReward","PathsD92Xl6V3StatsNamesGetResponses200ContentApplicationJsonSchemaAllof0","Paths1K55ZdgV3StatsTotalGetResponses200ContentApplicationJsonSchemaAllof0","TotalStat","activeAuctions","activeNames","inactiveNames","activeOracles","inactiveOracles","openChannels","sumBlockReward","sumDevReward","totalTokenSupply","Paths3Bfys0V3StatsTotalAccountsGetResponses200ContentApplicationJsonSchemaAllof0","Paths6PaqluV3StatsTransactionsGetResponses200ContentApplicationJsonSchemaAllof0","mdwAsyncTasks","mdwGensPerMinute","mdwHeight","mdwLastMigration","mdwRevision","mdwSynced","mdwSyncing","mdwTxIndex","mdwVersion","nodeHeight","nodeProgress","nodeSyncing","StatusMdwAsyncTasks","longTasks","producerBuffer","totalPending","PathsHa9C78V3TransactionsGetResponses200ContentApplicationJsonSchemaAllof0","PathsI72FylV3TransactionsPendingGetResponses200ContentApplicationJsonSchemaAllof0","PendingTransaction","failures","PathsVdg67V3TransfersGetResponses200ContentApplicationJsonSchemaAllof0","Transfer","refBlockHash","refTxType","Aex9TransferEvent","Aex9TransferResponse","callTxi","InternalContractCallEvent","InternalTransferEvent","NameClaimEvent","Paths1EfdbjrV3AccountsAccountidActivitiesGetResponses200ContentApplicationJsonSchema","Paths3Hsv3GV3AccountsAccountidAex141TokensGetResponses200ContentApplicationJsonSchema","PathsKm52GqV3AccountsAccountidAex9BalancesGetResponses200ContentApplicationJsonSchema","PathsZpy8S9V3AccountsAccountidDexSwapsGetResponses200ContentApplicationJsonSchema","Paths16Cyh9EV3AccountsAccountidNamesClaimsGetResponses200ContentApplicationJsonSchema","Paths1Mheci5V3AccountsAccountidNamesPointeesGetResponses200ContentApplicationJsonSchema","Paths1XwlyjtV3Aex141GetResponses200ContentApplicationJsonSchema","Paths181AjwxV3Aex141ContractidTemplatesGetResponses200ContentApplicationJsonSchema","Paths15Mi2TaV3Aex141ContractidTemplatesTemplateidTokensGetResponses200ContentApplicationJsonSchema","PathsWl652MV3Aex141ContractidTokensGetResponses200ContentApplicationJsonSchema","Paths1O7Q6IhV3Aex141ContractidTransfersGetResponses200ContentApplicationJsonSchema","Paths1Vr3Y2EV3Aex9GetResponses200ContentApplicationJsonSchema","Paths1N61UurV3Aex9ContractidBalancesGetResponses200ContentApplicationJsonSchema","Paths1Uybd4PV3Aex9ContractidBalancesAccountidHistoryGetResponses200ContentApplicationJsonSchema","Paths3EzhapV3ChannelsGetResponses200ContentApplicationJsonSchema","Paths1Txblx8V3ContractsCallsGetResponses200ContentApplicationJsonSchema","Paths7A1M6RV3ContractsLogsGetResponses200ContentApplicationJsonSchema","Paths1Di8FnjV3DexSwapsGetResponses200ContentApplicationJsonSchema","PathsKwxlzlV3DexContractIdSwapsGetResponses200ContentApplicationJsonSchema","Paths194Lg3IV3HyperchainEpochsGetResponses200ContentApplicationJsonSchema","Paths1S5Zlt1V3HyperchainScheduleGetResponses200ContentApplicationJsonSchema","Paths1Ibn686V3HyperchainValidatorsGetResponses200ContentApplicationJsonSchema","Paths1I4U8D5V3HyperchainValidatorsValidatorDelegatesGetResponses200ContentApplicationJsonSchema","Paths15K0AlgV3HyperchainValidatorsValidatorDelegatesTopGetResponses200ContentApplicationJsonSchema","Paths277OngV3KeyBlocksGetResponses200ContentApplicationJsonSchema","Paths1159W94V3KeyBlocksHashOrKbiMicroBlocksGetResponses200ContentApplicationJsonSchema","Paths15Bkk50V3MicroBlocksHashTransactionsGetResponses200ContentApplicationJsonSchema","Paths12S1Nd4V3NamesGetResponses200ContentApplicationJsonSchema","PathsKjq4D4V3NamesAuctionsGetResponses200ContentApplicationJsonSchema","Paths1F98AqgV3NamesIdClaimsGetResponses200ContentApplicationJsonSchema","Paths1Raw8PV3NamesIdTransfersGetResponses200ContentApplicationJsonSchema","Paths1Ec8CltV3NamesIdUpdatesGetResponses200ContentApplicationJsonSchema","Paths1E14NekV3OraclesGetResponses200ContentApplicationJsonSchema","Paths1L5C64RV3OraclesIdExtendsGetResponses200ContentApplicationJsonSchema","Paths8722JhV3OraclesIdQueriesGetResponses200ContentApplicationJsonSchema","PathsVron83V3OraclesIdResponsesGetResponses200ContentApplicationJsonSchema","PathsCgzmimV3StatsActiveAccountsGetResponses200ContentApplicationJsonSchema","Paths1UxyhelV3StatsAex9TransfersGetResponses200ContentApplicationJsonSchema","Paths1Sxjoy0V3StatsBlocksGetResponses200ContentApplicationJsonSchema","PathsWbrhqnV3StatsContractsGetResponses200ContentApplicationJsonSchema","Paths5Xf9ScV3StatsDeltaGetResponses200ContentApplicationJsonSchema","Paths1D7Up0DV3StatsDifficultyGetResponses200ContentApplicationJsonSchema","PathsR51VshV3StatsHashrateGetResponses200ContentApplicationJsonSchema","PathsA8Q6T7V3StatsMinersGetResponses200ContentApplicationJsonSchema","PathsCeyhpaV3StatsNamesGetResponses200ContentApplicationJsonSchema","PathsJoz7P5V3StatsTotalGetResponses200ContentApplicationJsonSchema","Paths15F3FfuV3StatsTotalAccountsGetResponses200ContentApplicationJsonSchema","Paths1IfhshmV3StatsTransactionsGetResponses200ContentApplicationJsonSchema","Paths1Pymq07V3TransactionsGetResponses200ContentApplicationJsonSchema","PathsUq0T7JV3TransactionsPendingGetResponses200ContentApplicationJsonSchema","PathsA7P0KiV3TransfersGetResponses200ContentApplicationJsonSchema","AuctionLastBidTx","KeyBlockExtended","beneficiaryReward","microBlocksCount","transactionsCount","MicroBlockExtended","microBlockIndex","NameTxTx","OracleTxTx","getAccountActivities","getAccountActivitiesOperationSpec","getAex141OwnedTokens","getAex141OwnedTokensOperationSpec","getAex9AccountBalances","getAex9AccountBalancesOperationSpec","getAccountDexSwaps","getAccountDexSwapsOperationSpec","getAccountNameClaims","getAccountNameClaimsOperationSpec","getAccountPointees","getAccountPointeesOperationSpec","getAccountTransactionsCount","getAccountTransactionsCountOperationSpec","getSortedAex141Contracts","getSortedAex141ContractsOperationSpec","getAex141ContractTemplates","getAex141ContractTemplatesOperationSpec","getAex141TemplateTokens","getAex141TemplateTokensOperationSpec","getAex141ContractTokens","getAex141ContractTokensOperationSpec","getAex141TokenOwner","getAex141TokenOwnerOperationSpec","getAex141ContractTransfers","getAex141ContractTransfersOperationSpec","getAex141ByContract","getAex141ByContractOperationSpec","getSortedAex9Tokens","getSortedAex9TokensOperationSpec","getAex9TokensCount","getAex9TokensCountOperationSpec","getAex9ContractBalances","getAex9ContractBalancesOperationSpec","getAex9ContractAccountBalance","getAex9ContractAccountBalanceOperationSpec","getAex9ContractAccountBalanceHistory","getAex9ContractAccountBalanceHistoryOperationSpec","getAex9ByContract","getAex9ByContractOperationSpec","getChannels","getChannelsOperationSpec","getChannel","getChannelOperationSpec","getContractCalls","getContractCallsOperationSpec","getContractLogs","getContractLogsOperationSpec","getDexSwaps","getDexSwapsOperationSpec","getDexSwapsByContractId","getDexSwapsByContractIdOperationSpec","getEpochs","getEpochsOperationSpec","getEpochTop","getEpochTopOperationSpec","getSchedules","getSchedulesOperationSpec","getSchedule","getScheduleOperationSpec","getValidators","getValidatorsOperationSpec","getValidator","getValidatorOperationSpec","getValidatorDelegates","getValidatorDelegatesOperationSpec","getTopValidatorDelegates","getTopValidatorDelegatesOperationSpec","getKeyBlocks","getKeyBlocksOperationSpec","getKeyBlockOperationSpec","getKeyBlockMicroBlocks","getKeyBlockMicroBlocksOperationSpec","getMicroBlock","getMicroBlockOperationSpec","getMicroBlockTransactionsOperationSpec","getNames","getNamesOperationSpec","getNamesAuctions","getNamesAuctionsOperationSpec","getNameAuction","getNameAuctionOperationSpec","getNameAuctionClaims","getNameAuctionClaimsOperationSpec","getNamesCount","getNamesCountOperationSpec","getNameOperationSpec","getNameClaims","getNameClaimsOperationSpec","getNameTransfers","getNameTransfersOperationSpec","getNameUpdates","getNameUpdatesOperationSpec","getOracles","getOraclesOperationSpec","getOracle","getOracleOperationSpec","getOracleExtends","getOracleExtendsOperationSpec","getOracleQueries","getOracleQueriesOperationSpec","getOracleResponses","getOracleResponsesOperationSpec","getStats","getStatsOperationSpec","getActiveAccountsStats","getActiveAccountsStatsOperationSpec","getAex9TransfersStats","getAex9TransfersStatsOperationSpec","getBlocksStats","getBlocksStatsOperationSpec","getContractsStats","getContractsStatsOperationSpec","getDeltaStats","getDeltaStatsOperationSpec","getDifficultyStats","getDifficultyStatsOperationSpec","getHashrateStats","getHashrateStatsOperationSpec","getMinerStats","getMinerStatsOperationSpec","getNamesStats","getNamesStatsOperationSpec","getTotalStats","getTotalStatsOperationSpec","getTotalAccountsStats","getTotalAccountsStatsOperationSpec","getTransactionsStats","getTransactionsStatsOperationSpec","getTransactions","getTransactionsOperationSpec","getTransactionsCount","getTransactionsCountOperationSpec","getPendingTransactions","getPendingTransactionsOperationSpec","getPendingTransactionsCount","getPendingTransactionsCountOperationSpec","getTransaction","getTransactionOperationSpec","getTransfers","getTransfersOperationSpec","operationSpecs","MiddlewarePageMissed","isNext","_middleware","MiddlewarePage","rawPage","middleware","nextPath","prevPath","requestByPath","MiddlewareApi","pathWithQuery","queryPos","os","groups","maybePage","testPage","isMiddlewareRawPage","con1","con2","BrowserConnection","receiveMessage","_onDisconnect","_target","_self","BrowserWindowMessageConnection","sendDirection","receiveDirection","to_aepp","_message$data$jsonrpc","_this$origin","postMessage","onDetected","wallets","getConnection","to_waellet","newWallet","BrowserRuntimeConnection","_port$sender$url"],"sourceRoot":""}